Vorbereiten und Ausführen von Anweisungen (ODBC)
So bereiten Sie eine Anweisung vor und führen sie dann mehrmals aus
Rufen Sie die SQLPrepare-Funktion auf, um die Anweisung vorzubereiten.
Optional rufen Sie auf, um die Parameteranzahl in der vorbereiteten Anweisung zu bestimmen.
Optional führen Sie für jeden Parameter in der vorbereiteten Anweisung Folgendes aus:
Rufen Sie SQLDescribeParam auf, um Parameterinformationen abzurufen.
Binden Sie jeden Parameter mit SQLBindParameter an eine Programmvariable. Richten Sie alle Data-at-Execution-Parameter ein.
Für jede Ausführung einer vorbereiteten Anweisung gilt:
Wenn die Anweisung über Parametermarkierungen verfügt, fügen Sie die Datenwerte in den gebundenen Parameterpuffer ein.
Rufen Sie SQLExecute auf, um die vorbereitete Anweisung auszuführen.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecute SQL_NEED_DATA zurück. Senden Sie die Daten mit SQLParamData und SQLPutData in Ausschnitten.
So bereiten Sie eine Anweisung mit spaltenweiser Parameterbindung vor
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 das SQL_ATTR_PARAMS_STATUS_PTR-Attribut fest, sodass es auf ein Array mit S SQLUSSMALLINT-Variablen zeigt, welche die Parameterstatusindikatoren enthalten.
Rufen Sie SQLPrepare auf, um die Anweisung vorzubereiten.
Optional rufen Sie auf, um die Parameteranzahl in der vorbereiteten Anweisung zu bestimmen.
Optional rufen Sie für jeden Parameter in der vorbereiteten Anweisung SQLDescribeParam auf, um die Parameterinformationen abzurufen.
Führen Sie folgende Aktionen für jede Parametermarkierung durch:
Weisen Sie ein Array mit S Parameterpuffern zum Speichern der Datenwerte zu.
Weisen Sie ein Array mit S-Parameterpuffern zu, um Datenlängen zu speichern.
Rufen Sie SQLBindParameter auf, um die Parameterdatenwert- und die Datenlängenarrays an den Anweisungsparameter zu binden.
Falls der Parameter ein Data-at-Execution-Textparameter oder –Imageparameter ist, richten Sie ihn ein.
Wenn Data-at-Execution-Parameter verwendet werden, richten Sie sie ein.
Für jede Ausführung einer vorbereiteten Anweisung gilt:
Fügen Sie die S Datenwerte und S Datenlängen in die gebundenen Parameterarrays ein.
Rufen Sie SQLExecute auf, um die vorbereitete Anweisung auszuführen.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecute SQL_NEED_DATA zurück. Senden Sie die Daten mit SQLParamData und SQLPutData in Ausschnitten.
So bereiten Sie eine Anweisung mit zeilenweiser Parameterbindung vor
Ordnen Sie ein Array mit S 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 das SQL_ATTR_PARAMS_STATUS_PTR-Attribut fest, sodass es auf ein Array mit S SQLUSSMALLINT-Variablen zeigt, welche die Parameterstatusindikatoren enthalten.
Rufen Sie SQLPrepare auf, um die Anweisung vorzubereiten.
Rufen Sie für jede Parametermarkierung SQLBindParameter auf, damit die Datenwert- und Datenlängenzeiger des Parameters auf ihre Variablen im ersten Element des Arrays mit Strukturen zeigen, die in Schritt 1 zugewiesen wurden. Falls der Parameter ein Data-at-Execution-Parameter ist, richten Sie ihn ein.
Für jede Ausführung einer vorbereiteten Anweisung gilt:
Füllen Sie das gebundene Parameterpufferarray mit Datenwerten aus.
Rufen Sie SQLExecute auf, um die vorbereitete Anweisung auszuführen. Der Treiber führt die SQL-Anweisung S Mal aus, einmal für jeden Parametersatz.
Wenn Data-at-Execution-Eingabeparameter verwendet werden, gibt SQLExecute SQL_NEED_DATA zurück. Senden Sie die Daten mit SQLParamData und SQLPutData in Ausschnitten.