Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bevor eine Anwendung eine Anweisung ausführen kann, muss sie ein Anweisungshandle zuweisen. Dies geschieht durch Aufrufen von SQLAllocHandle mit dem HandleType-Parameter , der auf SQL_HANDLE_STMT und InputHandle auf ein Verbindungshandle verweist.
Anweisungsattribute sind Merkmale des Anweisungshandle. Beispiel-Anweisungsattribute können textmarken und die Art des Cursors enthalten, der mit dem Resultset der Anweisung verwendet werden soll. Anweisungsattribute werden mit SQLSetStmtAttr festgelegt, und ihre aktuellen Einstellungen werden mithilfe von SQLGetStmtAttr abgerufen. Es besteht keine Anforderung, dass eine Anwendung Alle Anweisungsattribute festgelegt hat; alle Anweisungsattribute weisen Standardwerte auf, und einige sind treiberspezifisch.
Verwenden Sie bei der Verwendung mehrerer ODBC-Anweisungs- und Verbindungsoptionen Vorsicht. Das Aufrufen von SQLSetConnectAttr mit "fOption " auf SQL_ATTR_LOGIN_TIMEOUT steuert die Zeit, zu der eine Anwendung auf einen Verbindungsversuch wartet, während eine Verbindung hergestellt wird (0 gibt eine unendliche Wartezeit an). Websites mit langsamen Reaktionszeiten können diesen Wert hoch festlegen, um sicherzustellen, dass Verbindungen ausreichend Zeit haben, um abgeschlossen zu werden. Das Intervall sollte jedoch immer niedrig genug sein, um dem Benutzer eine Antwort in angemessener Zeit zu geben, wenn der Treiber keine Verbindung herstellen kann.
Das Aufrufen von SQLSetStmtAttr mit fOption auf SQL_ATTR_QUERY_TIMEOUT legt ein Abfragetimeoutintervall fest, um den Server und den Benutzer vor lang ausgeführten Abfragen zu schützen.
Das Aufrufen von SQLSetStmtAttr mit "fOption " auf SQL_ATTR_MAX_LENGTH beschränkt die Menge an Text- und Bilddaten , die eine einzelne Anweisung abrufen kann. Das Aufrufen von SQLSetStmtAttr mit "fOption " auf SQL_ATTR_MAX_ROWS beschränkt auch ein Rowset auf die ersten n Zeilen, wenn dies für die gesamte Anwendung erforderlich ist. Beachten Sie, dass das Festlegen SQL_ATTR_MAX_ROWS bewirkt, dass der Treiber eine SET ROWCOUNT-Anweisung auf dem Server ausgibt. Dies wirkt sich auf alle Microsoft SQL Server-Anweisungen aus, einschließlich Triggern und Updates.
Seien Sie vorsichtig, wenn Sie diese Optionen festlegen. Es ist am besten, wenn alle Anweisungshandles auf einem Verbindungshandle die gleichen Einstellungen für SQL_ATTR_MAX_LENGTH und SQL_ATTR_MAX_ROWS haben. Wenn der Treiber von einem Anweisungshandle zu einem anderen mit unterschiedlichen Werten für diese Optionen wechselt, muss der Treiber die entsprechenden SET TEXTSIZE- und SET ROWCOUNT-Anweisungen generieren, um die Einstellungen zu ändern. Der Treiber kann diese Anweisungen nicht in den gleichen Batch wie die SQL-Anweisung des Benutzers einfügen, da die SQL-Anweisung des Benutzers eine Anweisung enthalten kann, die die erste Anweisung in einem Batch sein muss. Der Treiber muss die SET TEXTSIZE- und SET ROWCOUNT-Anweisungen in einem separaten Batch senden, wodurch automatisch ein zusätzlicher Roundtrip auf den Server generiert wird.