共用方式為


配置陳述式控制代碼

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW)

應用程式必須先配置語句句柄,應用程式才能執行 語句。 它會呼叫 SQLAllocHandle並將 HandleType 參數設定為 SQL_HANDLE_STMT,而 InputHandle 指向連接句柄。

語句屬性是語句句柄的特性。 範例語句屬性可以包含使用書籤,以及要與語句結果集搭配使用的數據指標類型。 語句屬性是使用 SQLSetStmtAttr 來設定,而且會使用 SQLGetStmtAttr 擷取其目前設定。 應用程式不需要設定任何語句屬性;所有語句屬性都有預設值,有些是驅動程式特有的。

在使用數個 ODBC 語句和連接選項時請小心。 呼叫 SQLSetConnectAttr 並將 fOption 設定為 SQL_ATTR_LOGIN_TIMEOUT控制應用程式等候連接嘗試逾時的時間,同時等候建立連線(0 指定無限等候)。 回應時間緩慢的網站可以將此值設定為高,以確保連線有足夠的時間完成。 不過,如果驅動程式無法連線,間隔應該一律足夠低,以合理的時間為使用者提供回應。

呼叫 SQLSetStmtAttr 並將 fOption 設定為 SQL_ATTR_QUERY_TIMEOUT會設定查詢超時時間間隔,以協助保護伺服器和使用者免於長時間執行的查詢。

呼叫設定為 fOption 的 SQLSetStmtAttr,SQL_ATTR_MAX_LENGTH限制個別語句可以擷取的文字影像數據量。 呼叫已將 fOption 設為 SQL_ATTR_MAX_ROWS的 SQLSetStmtAttr,如果這是所有應用程式所需的,則數據列集也會限制為前 n 個數據列。 請注意,設定SQL_ATTR_MAX_ROWS會導致驅動程式向伺服器發出 SET ROWCOUNT 語句。 這會影響所有Microsoft SQL Server 語句,包括觸發程式和更新。

當您設定這些選項時,請小心。 如果連接句柄上的所有語句句柄都有相同的設定,則最好是SQL_ATTR_MAX_LENGTH和SQL_ATTR_MAX_ROWS。 如果驅動程式從語句句柄切換到具有這些選項不同值的另一個,驅動程式必須產生適當的SET TEXTSIZE 和 SET ROWCOUNT 語句來變更設定。 驅動程式無法將這些語句放在與使用者 SQL 語句相同的批次中,因為使用者 SQL 語句可以包含必須是批次中第一個語句的語句。 驅動程式必須在個別批次中傳送 SET TEXTSIZE 和 SET ROWCOUNT 語句,這會自動產生伺服器的額外往返。

另請參閱

執行查詢 (ODBC)