Delen via


ODBC-retourcodes

Elke functie in ODBC retourneert een code, ook wel retourcode genoemd, wat het algehele succes of de mislukking van de functie aangeeft. Programmalogica is over het algemeen gebaseerd op retourcodes.

Met de volgende code wordt bijvoorbeeld SQLFetch aanroepen om de rijen in een resultatenset op te halen. De retourcode van de functie wordt gecontroleerd om te bepalen of het einde van de resultatenset is bereikt (SQL_NO_DATA), als er waarschuwingsinformatie is geretourneerd (SQL_SUCCESS_WITH_INFO) of als er een fout is opgetreden (SQL_ERROR).

SQLRETURN   rc;  
SQLHSTMT    hstmt;  
  
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {  
   if (rc == SQL_SUCCESS_WITH_INFO) {  
      // Call function to display warning information.  
   } else if (rc == SQL_ERROR) {  
      // Call function to display error information.  
      break;  
   }  
   // Process row.  
}  

De retourcode SQL_INVALID_HANDLE geeft altijd een programmeerfout aan en mag nooit tijdens runtime worden aangetroffen. Alle andere retourcodes bieden runtime-informatie, hoewel SQL_ERROR een programmeerfout kan aangeven.

De volgende tabel definieert de retourcodes.

Retourcode Description
SQL_SUCCESS De functie is succesvol voltooid. De toepassing roept SQLGetDiagField aan om aanvullende informatie op te halen uit de headerrecord.
SQL_SUCCESS_WITH_INFO De functie is voltooid, mogelijk met een niet-fatale fout (waarschuwing). De toepassing roept SQLGetDiagRec of SQLGetDiagField aan om aanvullende informatie op te halen.
SQL_ERROR De functie is mislukt. De toepassing roept SQLGetDiagRec of SQLGetDiagField aan om aanvullende informatie op te halen. De inhoud van uitvoerargumenten voor de functie is niet gedefinieerd.
SQL_INVALID_HANDLE De functie is mislukt vanwege een ongeldige omgeving, verbinding, declaratie of descriptorhandle. Dit geeft een programmeerfout aan. Er is geen aanvullende informatie beschikbaar via SQLGetDiagRec of SQLGetDiagField. Deze code wordt alleen geretourneerd wanneer de handle een null-aanwijzer is of van het verkeerde type is, zoals wanneer een statement-handle wordt doorgegeven voor een argument waarvoor een connectie-handle is vereist.
SQL_NO_DATA Er zijn geen gegevens meer beschikbaar. De toepassing roept SQLGetDiagRec of SQLGetDiagField aan om aanvullende informatie op te halen. Een of meer door het stuurprogramma gedefinieerde statusrecords in klasse 02xxx kunnen worden geretourneerd. Opmerking: In ODBC 2. x, deze retourcode heeft de naam SQL_NO_DATA_FOUND.
SQL_NEED_DATA Er zijn meer gegevens nodig, bijvoorbeeld wanneer parametergegevens worden verzonden tijdens de uitvoering of aanvullende verbindingsgegevens zijn vereist. De toepassing roept SQLGetDiagRec of SQLGetDiagField aan om aanvullende informatie op te halen, indien van toepassing.
SQL_STILL_EXECUTING Een functie die asynchroon is gestart, wordt nog steeds uitgevoerd. De toepassing roept SQLGetDiagRec of SQLGetDiagField aan om aanvullende informatie op te halen, indien van toepassing.