Direktes Ausführen von Anweisungen (ODBC)
So führen Sie eine Anweisung direkt und nur einmal aus
Wenn die Anweisung über Parametermarkierungen verfügt, verwenden Sie SQLBindParameter, um jeden Parameter an eine Programmvariable zu binden. Füllen Sie die Programmvariablen mit Datenwerten, und richten Sie dann alle Data-at-Execution-Parameter ein.
Rufen Sie SQLExecDirect auf, um die Anweisung auszuführen.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecDirect SQL_NEED_DATA zurück. Senden Sie die Daten in Segmenten mit SQLParamData und SQLPutData.
So führen Sie mit der spaltenweisen Parameterbindung eine Anweisung mehrmals aus
Rufen Sie SQLSetStmtAttr auf, um die folgenden Attribute festzulegen:
Legen Sie SQL_ATTR_PARAMSET_SIZE auf die Anzahl von Sätzen (S) von Parametern fest.
Legen Sie SQL_ATTR_PARAM_BIND_TYPE auf SQL_PARAMETER_BIND_BY_COLUMN fest.
Legen Sie das SQL_ATTR_PARAMS_PROCESSED_PTR-Attribut fest, um auf eine SQLUINTEGER-Variable zu zeigen und die Anzahl der verarbeiteten Parameter zu halten.
Legen Sie SQL_ATTR_PARAMS_STATUS_PTR fest, um auf ein Array [S] aus SQLUSSMALLINT-Variablen zu zeigen und die Parameterstatusindikatoren zu halten.
Führen Sie folgende Aktionen für jeden Parametermarker durch:
Weisen Sie ein Array mit S-Parameterpuffern zu, um Datenwerte zu speichern.
Weisen Sie ein Array mit S-Parameterpuffern zu, um Datenlängen zu speichern.
Rufen Sie SQLBindParameter auf, um den Parameterdatenwert und die Datenlängenarrays an den Anweisungsparameter zu binden.
Richten Sie alle Data-at-Execution-Text- oder Imageparameter ein.
Setzen Sie S-Datenwerte und S-Datenlängen in die gebundenen Parameterarrays ein.
Rufen Sie SQLExecDirect auf, um die Anweisung auszuführen. Der Treiber führt die Anweisung S-mal aus, einmal für jeden Parametersatz.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecDirect SQL_NEED_DATA zurück. Senden Sie die Daten in Segmenten mit SQLParamData und SQLPutData.
So führen Sie mit der zeilenweisen Parameterbindung eine Anweisung mehrmals aus
Ordnen Sie ein Array [S] von Strukturen zu, wobei S der Anzahl von Parametersätzen entspricht. Die Struktur verfügt über ein Element für jeden Parameter, und jedes Element verfügt über zwei Teile:
Der erste Teil ist eine Variable des entsprechenden Datentyps zum Speichern der Parameterdaten.
Der zweite Teil ist eine SQLINTEGER-Variable zum Speichern des Statusindikators.
Rufen Sie SQLSetStmtAttr auf, um die folgenden Attribute festzulegen:
Legen Sie SQL_ATTR_PARAMSET_SIZE auf die Anzahl von Sätzen (S) von Parametern fest.
Legen Sie SQL_ATTR_PARAM_BIND_TYPE auf die Größe der in Schritt 1 zugeordneten Struktur fest.
Legen Sie das SQL_ATTR_PARAMS_PROCESSED_PTR-Attribut fest, um auf eine SQLUINTEGER-Variable zu zeigen und die Anzahl der verarbeiteten Parameter zu halten.
Legen Sie SQL_ATTR_PARAMS_STATUS_PTR fest, um auf ein Array [S] aus SQLUSSMALLINT-Variablen zu zeigen und die Parameterstatusindikatoren zu halten.
Rufen Sie für jeden Parametermarker SQLBindParameter auf, um mit den Datenwert- und den Datenlängenzeigern des Parameters auf die Variablen im ersten Element des Arrays mit Strukturen zu zeigen, die in Schritt 1 zugewiesen wurden. Falls der Parameter ein Data-at-Execution-Parameter ist, richten Sie ihn ein.
Füllen Sie das gebundene Parameterpufferarray mit Datenwerten.
Rufen Sie SQLExecDirect auf, um die Anweisung auszuführen. Der Treiber führt die Anweisung S-mal aus, einmal für jeden Parametersatz.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecDirect SQL_NEED_DATA zurück. Senden Sie die Daten in Segmenten mit SQLParamData und SQLPutData.
Hinweis Die Spalten- und die Zeilenbindung werden eher in Verbindung mit der SQLPrepare-Funktion und SQLExecute als mit SQLExecDirect verwendet.