将数据移至程序变量

通过使用数据库 API 访问 SQL Server 数据库的应用程序必须在应用程序变量和下列对象之间移动数据:

  • 结果集列

    应用程序必须将结果集中提取行的各列中的数据移至应用程序变量。

  • 返回代码

    应用程序必须将存储过程返回代码中的数据移至应用程序变量。

  • 参数

    应用程序必须在存储过程参数和应用程序变量之间移动数据。参数可以是输入参数,也可以是输出参数。因此,数据移动可以是从变量到参数,也可以是从参数到变量。

  • 参数标记

    在 SQL 语句中使用 ODBC 参数标记和 OLE DB 参数标记,来代替输入表达式(例如在 WHERE 子句搜索条件中)或存储过程参数和返回代码。应用程序必须在应用程序变量和由参数标记代替的表达式之间移动数据。有关详细信息,请参阅参数标记(数据库引擎)

绑定

许多数据库 API 使用绑定的概念来指定如何在应用程序变量和 SQL Server 对象之间移动数据。数据库 API 提供了一些函数,应用程序可以调用这些函数来执行下列操作:

  • 确定数据类型、大小、精度和结果集列的小数位数、返回代码、参数或参数标记。当应用程序接收到这些信息后,它可以分配变量或具有兼容属性的变量数组。

  • 将结果集列、返回代码、参数或参数标记绑定到特定变量或变量数组。绑定信息通常包括下列内容:

    • 变量的地址和特性(数据类型、大小、精度和小数位数)。

    • 数据库对象的名称和属性。

执行下列任一操作时通常会移动数据:

  • 执行 Transact-SQL 语句或批处理。

    OLE DB 访问接口或 ODBC 驱动程序取得绑定到任何输入参数或参数标记的数据,并将它们包括到发送给 SQL Server 实例的数据包中。

  • 提取结果集的某行。

    OLE DB 访问接口或 ODBC 驱动程序将每列的数据移至绑定的变量中。

  • 提取或取消了存储过程的所有结果集。

    OLE DB 访问接口或 ODBC 驱动程序将所有输出参数或返回代码的数据移至其绑定的变量中。

被绑定的应用程序变量不必和它们所绑定到的 SQL Server 对象数据类型一致。如果数据类型不同,移动数据时,OLE DB 访问接口或 ODBC 驱动程序会转换数据。每个 OLE DB 访问接口和 ODBC 驱动程序支持的转换集在访问接口和驱动程序的文档中都有说明。