#ODBC驱动

ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据库,这些API利用SQL来完成其大部分任务。标准的ODBC接口定义了如下内容:

  • ODBC函数调用库,应用程序通过它可以连接到数据源,执行SQL命令并检索结果
  • 基于SQL-99规范的SQL语法
  • 一套标准的错误码
  • 一套连接并登录到数据源的标准方式
  • 对数据类型的标准描述

YashanDB ODBC驱动是YashanDB对ODBC API的实现。

# 连接到数据源

函数名称 一致性 目标 函数实现说明 支持情况
SQLAllocHandle (opens new window) ISO 92 获取环境、连接、语句或描述符句柄。 SQLAllocHandle 部分支持
SQLConnect (opens new window) ISO 92 按数据源名称、用户 ID 和密码连接到特定驱动程序。 SQLConnect 已支持
SQLDriverConnect (opens new window) ODBC 通过连接字符串或请求驱动程序管理器和驱动程序显示用户的连接对话框连接到特定驱动程序。 SQLDriverConnect 已支持
SQLBrowseConnect (opens new window) ODBC 返回连接属性和有效属性值的连续级别。 为每个连接属性指定值后, 将连接到数据源。 未支持

# 获取有关驱动程序和数据源的信息

函数名称 一致性 目标 函数实现说明 支持情况
SQLDataSources (opens new window) ISO 92 返回可用数据源的列表。 SQLDataSources 已支持
SQLDrivers (opens new window) ODBC 返回已安装的驱动程序及其属性的列表。 未支持
SQLGetInfo (opens new window) ISO 92 返回有关特定驱动程序和数据源的信息。 SQLGetInfo 部分支持
SQLGetFunctions (opens new window) ISO 92 返回支持的驱动程序函数。 SQLGetFunctions 已支持
SQLGetTypeInfo (opens new window) ISO 92 返回有关支持的数据类型的信息。 未支持

# 设置和检索驱动程序属性

函数名称 一致性 目标 函数实现说明 支持情况
SQLSetConnectAttr (opens new window) ISO 92 设置连接属性。 SQLSetConnectAttr 部分支持
SQLGetConnectAttr (opens new window) ISO 92 返回连接属性的值。 SQLGetConnectAttr 部分支持
SQLSetEnvAttr (opens new window) ISO 92 设置环境属性。 SQLSetEnvAttr 部分支持
SQLGetEnvAttr (opens new window) ISO 92 返回环境属性的值。 SQLGetEnvAttr 部分支持
SQLSetStmtAttr (opens new window) ISO 92 设置语句属性。 SQLSetStmtAttr 部分支持
SQLGetStmtAttr (opens new window) ISO 92 返回语句属性的值。 SQLGetStmtAttr 部分支持

# 设置和检索描述符字段

函数名称 一致性 目标 函数实现说明 支持情况
SQLGetDescField (opens new window) ISO 92 返回单个描述符字段的值。 SQLGetDescField 部分支持
SQLGetDescRec (opens new window) ISO 92 返回多个描述符字段的值。 未支持
SQLSetDescField (opens new window) ISO 92 设置单个描述符字段。 SQLSetDescField 部分支持
SQLSetDescRec (opens new window) ISO 92 设置多个描述符字段。 未支持
SQLCopyDesc (opens new window) ISO 92 将描述符信息从一个描述符句柄复制到另一个描述符句柄。 未支持

# 准备SQL请求

函数名称 一致性 目标 函数实现说明 支持情况
SQLPrepare (opens new window) ISO 92 准备一SQL语句供以后执行。 SQLPrepare 已支持
SQLBindParameter (opens new window) ODBC 为SQL语句中的参数分配存储。 SQLBindParameter 已支持
SQLGetCursorName (opens new window) ISO 92 返回与语句句柄关联的游标名称。 未支持
SQLSetCursorName (opens new window) ISO 92 指定游标名称。 未支持
SQLSetScrollOptions (opens new window) ODBC 设置控制游标行为的选项。 未支持

# 提交请求

函数名称 一致性 目标 函数实现说明 支持情况
SQLExecute (opens new window) ISO 92 执行已准备的语句。 SQLExecute 已支持
SQLExecDirect (opens new window) ISO 92 执行语句。 SQLExecDirect 已支持
SQLNativeSql (opens new window) ODBC 返回由驱动程序翻译的SQL语句的文本。 未支持
SQLDescribeParam (opens new window) ODBC 返回语句中特定参数的说明。 未支持
SQLNumParams (opens new window) ISO 92 返回语句中的参数个数。 SQLNumParams 已支持
SQLParamData (opens new window) ISO 92 与SQLPutData结合使用,在执行时提供参数数据。(对于长数据类型很有用。) 未支持
SQLPutData (opens new window) ISO 92 发送参数的一部分或全部数据值。(对于长数据类型很有用。) 未支持

# 检索结果和有关结果的信息

函数名称 一致性 目标 函数实现说明 支持情况
SQLRowCount (opens new window) ISO 92 返回受插入、更新或删除请求影响的行数。 SQLRowCount 已支持
SQLNumResultCols (opens new window) ISO 92 返回结果集中的列数。 SQLNumResultCols 已支持
SQLDescribeCol (opens new window) ISO 92 描述结果集的列。 SQLDescribeCol 已支持
SQLColAttribute (opens new window) ISO 92 描述结果集内列的属性。 SQLColAttribute 部分支持
SQLBindCol (opens new window) ISO 92 为结果列分配存储并指定数据类型。 SQLBindCol 已支持
SQLFetch (opens new window) ISO 92 返回多个结果行。 SQLFetch 已支持
SQLFetchScroll (opens new window) ISO 92 返回可滚动的结果行。 未支持
SQLGetData (opens new window) ISO 92 返回结果集的一行的一列的一部分或全部。 (对于长数据类型很有用。) 未支持
SQLSetPos (opens new window) ODBC 将游标定位在提取的数据块中,并允许应用程序刷新行集的数据,或者更新或删除结果集内的数据。 未支持
SQLBulkOperations (opens new window) ODBC 执行批量插入和批量书签操作,包括按书签更新、删除和提取。 未支持
SQLMoreResults (opens new window) ODBC 确定是否有更多结果集可用,如果是,则初始化下一个结果集的处理。 未支持
SQLGetDiagField (opens new window) ISO 92 返回诊断数据结构((返回指定的单个字段的值) 。 SQLGetDiagField 部分支持
SQLGetDiagRec (opens new window) ISO 92 返回诊断数据结构((返回固定的多个字段的值)。 SQLGetDiagRec 已支持

# 获取有关数据源的系统表的信息 (目录函数)

函数名称 一致性 目标 函数实现说明 支持情况
SQLColumnPrivileges (opens new window) ODBC 返回一个或多个表的列和关联特权的列表。 未支持
SQLColumns (opens new window) OPEN GROUP 返回指定表中的列名的列表。 未支持
SQLForeignKeys (opens new window) ODBC 返回构成外键的列名列表(如果指定表存在外键)。 未支持
SQLPrimaryKeys (opens new window) ODBC 返回列名的列表,这些列名是表的主键。 未支持
SQLProcedureColumns (opens new window) ODBC 返回输入和输出参数的列表,以及组成指定过程的结果集的列。 未支持
SQLProcedures (opens new window) ODBC 返回存储在特定数据源中的过程名称的列表。 未支持
SQLSpecialColumns (opens new window) OPEN GROUP 返回有关唯一标识指定表中的行的最佳列集的信息,或当事务更新行中的任意值时自动更新的列的信息。 未支持
SQLStatistics (opens new window) ISO 92 返回有关单个表以及与该表关联的索引列表的统计信息。 未支持
SQLTablePrivileges (opens new window) ODBC 返回表的列表以及与每个表关联的特权。 未支持
SQLTables (opens new window) OPEN GROUP 返回存储在特定数据源中的表名的列表。 未支持

# 终止语句

函数名称 一致性 目标 函数实现说明 支持情况
SQLFreeStmt (opens new window) ISO 92 结束语句处理,放弃挂起的结果,并(可选)释放与语句句柄关联的所有资源。 SQLFreeStmt 部分支持
SQLCloseCursor (opens new window) ISO 92 关闭已在语句句柄上打开的游标。 SQLCloseCursor 已支持
SQLCancel (opens new window) ISO 92 取消对当前语句的处理。 SQLCancel 已支持
SQLCancelHandle (opens new window) ODBC 取消对语句或连接的处理。 未支持
SQLEndTran (opens new window) ISO 92 提交或回滚事务。 SQLEndTran 已支持

# 终止连接

函数名称 一致性 目标 函数实现说明 支持情况
SQLDisconnect (opens new window) ISO 92 关闭连接。 SQLDisconnect 已支持
SQLFreeHandle (opens new window) ISO 92 释放环境、连接、语句或描述符句柄。 SQLFreeHandle 部分支持