分享方式:


數據指標數據列集大小

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

ODBC 數據指標不限於一次擷取一個數據列。 他們可以在每個 SQLFetch 或 SQLFetchScroll 呼叫中擷取多個數據列。 當您使用用戶端/伺服器資料庫,例如Microsoft SQL Server 時,一次擷取數個數據列會更有效率。 擷取上傳回的數據列數目稱為數據列集大小,並使用 SQLSetStmtAttr 的SQL_ATTR_ROW_ARRAY_SIZE來指定。

SQLUINTEGER uwRowsize;  
SQLSetStmtAttr(m_hstmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)uwRowsetSize, SQL_IS_UINTEGER);  

數據列集大小大於 1 的數據指標稱為區塊數據指標。

區塊數據指標的系結結果集數據行有兩個選項:

  • 數據行明智系結

    每個數據行都會系結至變數數位。 每個陣列都有與數據列集大小相同的元素數目。

  • 資料列取向的繫結

    陣列是使用結構來建置,以保存數據列中所有數據行的數據和指標。 數位的結構數目與數據列集大小相同。

使用數據行或數據列式系結時,每個對 SQLFetchSQLFetchScroll 的呼叫都會以從擷取的數據列集填滿係結數位。

SQLGetData 也可以用來從區塊數據指標擷取數據行數據。 由於 SQLGetData 一次可運作一個數據列, 因此必須先呼叫 SQLSetPos ,才能在呼叫 SQLGetData 之前,將數據列集中的特定數據列設定為目前數據列。

SQL Server Native Client ODBC 驅動程式會使用數據列集提供優化,以快速擷取整個結果集。 若要使用此優化,請在呼叫 SQLExecDirectSQLExecute,將數據指標屬性設定為其預設值(正向、只讀、數據列集大小 = 1)。 SQL Server Native Client ODBC 驅動程式會設定預設結果集。 這比將結果傳送至用戶端而不捲動時的伺服器數據指標更有效率。 執行語句之後,請增加數據列集大小,並使用數據行或數據列系結。 這可讓 SQL Server 使用預設結果集有效率地將結果數據列傳送至用戶端,而 SQL Server Native Client ODBC 驅動程式會持續從用戶端上的網路緩衝區提取數據列。

另請參閱

數據指標屬性