控制 CLI/ODBC 驱动步骤的流动
取得关于数据源的信息
因为 CLI/ODBC 哄骗步骤可以毗连到很多规范的数据源,因此无意候需求获取关于哄骗步骤所毗连到的特天命据源的信息。依据计划,扫数 CLI/ODBC 驱动步骤必须支撑三个特定的函数,这些函数供应关于驱动步骤自身的成效以及该驱动步骤底层数据源成效的信息。经过哄骗这组函数,哄骗步骤可以确定特天命据源的成效和限定,并响应地调解其流动。第一个函数是 SQLGetInfo()
,该函数用于获取关于数据源的各种特性的信息。第二个函数是 SQLGetFunctions()
,该函数照顾哄骗步骤数据源/驱动步骤能否支撑特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo()
,该函数为哄骗步骤供应关于数据源所哄骗的外地数据规范的信息。在这三个函数当中,SQLGetInfo()
的成效或许最为强大。这个函数可零丁供应 165 条以上的信息。
SQLGetInfo()
、SQLGetFunctions()
和 SQLGetTypeInfo()
函数所前去的信息是静态的 —— 也即是说,这三个函数前去的关于数据源/驱动步骤的特性的信息不能经过挪用哄骗步骤来修改。不外,大多数数据源驱动步骤还包括一些可以更动的信息,经过更动这些信息可以改动驱动步骤为特定哄骗步骤供应的流动方法。这种信息被称为驱动步骤属性,有三种规范的驱动步骤属性可用:
- 环境属性
- 毗连属性
- SQL 语句属性
我们将在以下几小节入彀议每种属性。
回页首
环境属性
环境属性可以影响在指定环境下运转的 CLI/ODBC 函数的流动。在任何时间,哄骗步骤都可以经过挪用 SQLGetEnvAttr()
函数取得环境属性的值,还可以经过挪用 SQLSetEnvAttr()
函数改动环境属性的值。一些较为罕有的环境属性有:
-
SQL_ATTR_ODBC_VERSION
: 确定 CLI/ODBC 的流动体现具有 ODBC 2.0 特性仍是 ODBC 3.x 特性。
-
SQL_ATTR_OUTPUT_NTS
: 决意在将字符串数据值前去到哄骗步骤之前,驱动步骤能否将一个 null 避免符附加在这个值的反面。
值得看重的是,只要当还未给该环境分派毗连句柄的时间,才可以更动环境属性。一旦分派了毗连句柄,该环境的属性值就只能被检索,不能被修改。
回页首
毗连属性
毗连属性可以影响到数据源和驱动步骤的毗连的流动。在任何时间,哄骗步骤都可以经过挪用 SQLGetConnectAttr()
函数取得毗连属性的值,还可以经过挪用 SQLSetConnectAttr()
函数更动毗连属性的值。一些较为常用的毗连属性有:
-
SQL_ATTR_AUTOCOMMIT
: 决天命据源/驱动步骤因此自动提交方法仍是手动提交方法运转。
-
SQL_ATTR_MAXCONN
: 决意哄骗步骤每次可以翻开的并发数据源毗连的最大个数。(这个属性的默许值为0
,意即一个哄骗步骤每次可以翻开随意率性数量的毗连。)
-
SQL_ATTR_TXN_ISOLATION
: 指定用于当前毗连的断绝级别(SQL_TXN_SERIALIZABLE
为可重复读,SQL_TXN_REPEATABLE_READ
为读稳定性,SQL_TXN_READ_COMMITTED
为游标稳定性,SQL_TXN_READ_UNCOMMITTED
为未提交读)。
和环境属性一样,设置毗连属性的机会很首要。有些毗连属性可以随时举办设置,而有些属性只能在分派了毗连句柄之后、创立到数据源的毗连之前举办设置。有些毗连属性只能在创立了到数据源的毗连之后,而且还不存在与翻开的毗连相干联的未料理的事件或翻开的游标的时间举办设置。
回页首
语句属性
语句属性可以影响很多 SQL 语句级 CLI/ODBC 函数的流动。 在任何时间,哄骗步骤都可以经过挪用 SQLGetStmtAttr()
函数取得语句属性的值,还可以经过挪用 SQLSetStmtAttr()
函数更动语句属性的值。一些常用的语句属性有:
-
SQL_ATTR_CONCURRENCY
: 指定哄骗的游标并发级别(只读、初级锁定或比拟值锁定)。
-
SQL_ATTR_CURSOR_TYPE
: 指定在措置成效数据集时哄骗的游标的规范(forward-only、static、keyset-driven 或 dynamic)。
-
SQL_ATTR_RETRIEVE_DATA
: 指定SQLFetch()
和SQLFetchScroll()
函数在摆设游标之后,能否自动检索数据。
异样,设置语句属性的机会很首要。有些语句属性必须在与语句句柄相干联的 SQL 语句执行之前举办设置;有些语句属性虽可以在任何时间设置,但是只要当与语句句柄相干联的 SQL 语句被再次哄骗时才会被哄骗,而有些属性则可以在任何时间举办设置。
版权声明:
原创作品,容许转载,转载时请务必以超链接情势标明文章 原始情由 、作者信息和本声明。否则将追究法则责任。