將資料移到程式變數

使用資料庫 API 存取 SQL Server 資料庫的應用程式,必須在應用程式變數與下列項目之間移動資料:

  • 結果集資料行

    應用程式必須將資料從結果集內擷取資料列的資料行移入應用程式變數。

  • 傳回碼

    應用程式必須將資料從預存程序結果碼移入應用程式變數。

  • 參數

    應用程式必須將資料在預存程序參數與應用程式變數之間移動。 參數可以是輸入也可以是輸出的參數。 所以資料的移動可能是從變數到參數,也可能是從參數到變數。

  • 參數標記

    ODBC 與 OLE DB 參數標記是在用來在 SQL 陳述式中取代輸入運算式 (如在 WHERE 子句的搜尋條件中),或取代預存程序參數與傳回碼。 應用程式必須從被參數標記取代的應用程式變數與運算式移出資料。 如需詳細資訊,請參閱<參數標記 (Database Engine)>。

繫結

許多資料庫 API 使用繫結 (Bind) 的概念來指定如何在應用程式變數與 SQL Server 物件之間移動資料。 資料庫 API 提供應用程式可呼叫的函數來執行下列工作:

  • 判定結果集資料行、傳回碼、參數或參數標記的資料類型、大小、精確度與小數位數。 應用程式在收到這些資訊後,可以利用相容的屬性配置變數或變數陣列。

  • 將結果集資料行、傳回碼、參數或參數標記繫結 (Bind) 特定變數或變數陣列。 通常,繫結資訊包括下列項目:

    • 變數的位址與屬性 (資料類型、大小、精確度與小數位數)。

    • 資料庫物件的名稱與屬性。

在發生下列任一 動作時,通常會移動資料:

  • 執行 Transact-SQL 陳述式或批次時。

    OLE DB 提供者或 ODBC 驅動程式提取與任何輸入參數或參數標記連結的資料,並將它們包含在封包中以傳送給 SQL Server 的執行個體。

  • 提取結果集資料列時。

    OLE DB 提供者或 ODBC 驅動程式將每個資料行的資料移到連結的變數。

  • 預存程序的所有結果集都已提取或取消時。

    OLE DB 提供者或 ODBC 驅動程式將任何輸出參數的資料或傳回碼移到它們連結的變數。

繫結的應用程式變數不必與繫結它們的 SQL Server 物件同一個資料類型。 如果資料類型不同,OLE DB 提供者或 ODBC 驅動程式會在移動資料時進行轉換。 提供者或驅動程式的文件集會指定每個 OLE DB 提供者與 ODBC 驅動程式支援的轉換集合。