SQLNumResultCols-Funktion
Konformität
Eingeführte Version: ODBC 1.0-Standards Compliance: ISO 92
Zusammenfassung
SQLNumResultCols gibt die Anzahl der Spalten in einem Resultset zurück.
Syntax
SQLRETURN SQLNumResultCols(
SQLHSTMT StatementHandle,
SQLSMALLINT * ColumnCountPtr);
Argumente
StatementHandle
[Eingabe] Anweisungshandle.
ColumnCountPtr
[Ausgabe] Zeiger auf einen Puffer, in dem die Anzahl der Spalten im Resultset zurückgegeben werden soll. Diese Anzahl enthält keine gebundene Lesezeichenspalte.
Gibt zurück
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR oder SQL_INVALID_HANDLE.
Diagnose
Wenn SQLNumResultCols SQL_ERROR oder SQL_SUCCESS_WITH_INFO zurückgibt, kann ein zugeordneter SQLSTATE-Wert abgerufen werden, indem SQLGetDiagRec mit einem HandleType von SQL_HANDLE_STMT und einem Handle von StatementHandle aufgerufen wird. In der folgenden Tabelle sind die SQLSTATE-Werte aufgeführt, die häufig von SQLNumResultCols zurückgegeben werden, und die einzelnen Werte werden im Kontext dieser Funktion erläutert. die Notation "(DM)" steht vor den Beschreibungen von SQLSTATEs, die vom Treiber-Manager zurückgegeben werden. Der Rückgabecode, der jedem SQLSTATE-Wert zugeordnet ist, ist SQL_ERROR, sofern nicht anders angegeben.
SQLSTATE | Fehler | BESCHREIBUNG |
---|---|---|
01000 | Allgemeine Warnung | Treiberspezifische Informationsmeldung. (Funktion gibt SQL_SUCCESS_WITH_INFO zurück.) |
08S01 | Kommunikationslinkfehler | Die Kommunikationsverbindung zwischen dem Treiber und der Datenquelle, mit der der Treiber verbunden wurde, ist fehlgeschlagen, bevor die Verarbeitung der Funktion abgeschlossen wurde. |
HY000 | Allgemeiner Fehler | Es ist ein Fehler aufgetreten, für den kein spezifischer SQLSTATE-Wert vorhanden war und für den keine implementierungsspezifische SQLSTATE definiert wurde. Die von SQLGetDiagRec im *MessageText-Puffer zurückgegebene Fehlermeldung beschreibt den Fehler und seine Ursache. |
HY001 | Fehler bei der Speicherbelegung | Der Treiber konnte keinen Arbeitsspeicher zuordnen, der für die Unterstützung der Ausführung oder Fertigstellung der Funktion erforderlich ist. |
HY008 | Vorgang abgebrochen | Die asynchrone Verarbeitung wurde für statementHandle aktiviert. Die Funktion wurde aufgerufen, und vor Abschluss der Ausführung wurde SQLCancel oder SQLCancelHandle für statementHandle aufgerufen. die Funktion wurde dann erneut für die StatementHandle aufgerufen. Die Funktion wurde aufgerufen, und bevor die Ausführung abgeschlossen wurde, wurde SQLCancel oder SQLCancelHandle für die StatementHandle aus einem anderen Thread in einer Multithreadanwendung aufgerufen. |
HY010 | Funktionssequenzfehler | (DM) Eine asynchron ausgeführte Funktion wurde für das Verbindungshandle aufgerufen, das dem StatementHandle zugeordnet ist. Diese asynchrone Funktion wurde noch ausgeführt, als die FUNKTION SQLNumResultsCols aufgerufen wurde. (DM) SQLExecute, SQLExecDirect oder SQLMoreResults wurde für statementHandle aufgerufen und SQL_PARAM_DATA_AVAILABLE zurückgegeben. Diese Funktion wurde aufgerufen, bevor Daten für alle gestreamten Parameter abgerufen wurden. (DM) Die Funktion wurde vor dem Aufrufen von SQLPrepare oder SQLExecDirect für statementHandle aufgerufen. (DM) Eine asynchron ausgeführte Funktion (nicht diese) wurde für das StatementHandle aufgerufen und wurde noch ausgeführt, als diese Funktion aufgerufen wurde. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations oder SQLSetPos wurde für statementHandle aufgerufen und SQL_NEED_DATA zurückgegeben. Diese Funktion wurde aufgerufen, bevor Daten für alle Daten bei der Ausführungsparameter oder -spalten gesendet wurden. Ausführliche Informationen dazu, wann ein Anweisungshandle freigegeben werden kann, finden Sie unter SQLPrepare-Funktion . |
HY013 | Fehler bei der Speicherverwaltung | Der Funktionsaufruf konnte nicht verarbeitet werden, weil auf die zugrunde liegenden Speicherobjekte nicht zugegriffen werden konnte, möglicherweise aufgrund von geringen Arbeitsspeicherbedingungen. |
HY117 | Die Verbindung wird aufgrund eines unbekannten Transaktionsstatus angehalten. Nur trenn- und schreibgeschützte Funktionen sind zulässig. | (DM) Weitere Informationen zum angehaltenen Zustand finden Sie unter SQLEndTran-Funktion. |
HYT01 | Verbindungstimeout abgelaufen | Der Zeitraum für das Verbindungstimeout ist abgelaufen, bevor die Datenquelle auf die Anforderung geantwortet hat. Der Verbindungstimeoutzeitraum wird über SQLSetConnectAttr festgelegt, SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Treiber unterstützt diese Funktion nicht. | (DM) Der Der StatementHandle zugeordnete Treiber unterstützt die Funktion nicht. |
IM017 | Abruf ist im asynchronen Benachrichtigungsmodus deaktiviert. | Wenn das Benachrichtigungsmodell verwendet wird, wird die Abfrage deaktiviert. |
IM018 | SQLCompleteAsync wurde nicht aufgerufen, um den vorherigen asynchronen Vorgang für dieses Handle abzuschließen. | Wenn der vorherige Funktionsaufruf für das Handle SQL_STILL_EXECUTING zurückgibt und der Benachrichtigungsmodus aktiviert ist, muss SQLCompleteAsync für das Handle aufgerufen werden, um die Nachverarbeitung durchzuführen und den Vorgang abzuschließen. |
SQLNumResultCols kann einen beliebigen SQLSTATE-Wert zurückgeben, der von SQLPrepare oder SQLExecute zurückgegeben werden kann, wenn es nach SQLPrepare und vor SQLExecute aufgerufen wird, je nachdem, wann die Datenquelle die sql-Anweisung auswertet, die der Anweisung zugeordnet ist.
Kommentare
SQLNumResultCols kann nur erfolgreich aufgerufen werden, wenn sich die Anweisung im Zustand vorbereitet, ausgeführt oder positioniert befindet.
Wenn die Anweisung, die StatementHandle zugeordnet ist, keine Spalten zurückgibt, legt SQLNumResultCols *ColumnCountPtr auf 0 fest.
Die Anzahl der spalten, die von SQLNumResultCols zurückgegeben werden, entspricht dem Wert des felds SQL_DESC_COUNT der IRD.
Weitere Informationen finden Sie unter Wurde ein Resultset erstellt? und Wie werden Metadaten verwendet?.
Verwandte Funktionen
Informationen über | Finden Sie unter |
---|---|
Binden eines Puffers an eine Spalte in einem Resultset | SQLBindCol-Funktion |
Abbrechen der Anweisungsverarbeitung | SQLCancel-Funktion |
Zurückgeben von Informationen zu einer Spalte in einem Resultset | SQLColAttribute-Funktion |
Zurückgeben von Informationen zu einer Spalte in einem Resultset | SQLDescribeCol-Funktion |
Ausführen einer SQL-Anweisung | SQLExecDirect-Funktion |
Ausführen einer vorbereiteten SQL-Anweisung | SQLExecute-Funktion |
Abrufen eines Datenblocks oder Scrollen durch ein Resultset | SQLFetchScroll-Funktion |
Abrufen einer einzelnen Zeile oder eines Datenblocks in vorwärtsgerichteter Richtung | SQLFetch-Funktion |
Abrufen eines Teils oder einer gesamten Datenspalte | SQLGetData-Funktion |
Vorbereiten einer SQL-Anweisung für die Ausführung | SQLPrepare-Funktion |
Festlegen von Cursorscrolloptionen | SQLSetStmtAttr-Funktion |