TimesTen ODBC 应用开发.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TimesTen ODBC 应用开发

TimesTen ODBC 应用开发 zhaojunfeng 2008-03-14 ODBC 程序流程 ODBC 应用的句柄 Environment 句柄 初始化 ODBC 调用接口 ODBC 方法: SQLAllocEnv() 和 SQLFreeEnv() Connection 句柄 存储数据源连接信息 ODBC 方法: SQLAllocConnect() 和 SQLFreeConnect() 隐式分配一个特定的 Environment 句柄 Statement 句柄 存储SQL statement 信息 ODBC 方法: SQLAllocStmt() 和 SQLFreeStmt() 隐式分配一个特定的 Connection 句柄 使用 ODBC 应用句柄 statement 句柄只能在初始阶段分配一次,并在结束阶段释放. 在使用多线程编程中,statement 和 connection 句柄 应该属于线程结构体内. 句柄不能用于多线程并发运行,如果想实现在多个线程在不同的时间访问同一个句柄,那么应用必须通过一些信号量等方式的机制来实现。 SQL Statement 执行流程 绑定参数缓存 只需要Prepare 或者编译 SQL statements 及内建procedures一次,然后执行或者调用多次。 尽量使用参数化statements,在运行期使用变量方式来应用SQL statements和内建 procedure。 一旦statement被prepared,尽快绑定参数和列变量。 在程序开始的时候申明/分配一次需要用到的变量。 变量属于全局范围的。 如果使用到多线程,变量申明在线程内部。 绑定参数缓存示例 #define CHARLEN 20 SQLINTEGER intBuf, nullData = SQL_NULL_DATA; SQLCHAR charBuf[CHARLEN]; SQLFLOAT floatBuf; rc = SQLPrepare(hStmt, (SQLCHAR *) “insert into student.tab values (?,?,?)”, SQL_NTS); rc = SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, intBuf, sizeof(intBuf), NULL); rc = SQLBindParameter(hStmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, CHARLEN, 0, charBuf, CHARLEN, SQL_NTS); rc = SQLBindParameter(hStmt, 3, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_FLOAT, 0, 0, floatBuf, sizeof(floatBuf), nullData); ... rc = SQLExecute(hStmt); C 和 SQL 数据类型的绑定映射 ODBC 异常捕捉 所有 ODBC 方法都会有一个返回代码 确保程序中已经捕捉! 如果返回代码是SQL_ERROR 或者SQL_SUCCESS_WITH_INFO,那么调用ODBC方法 SQLError() 获取详细信息 获取(TimesTen)本地错误代码和错误信息 获取 SQLSTATE (ODBC 错误代码) 应用性能方面考虑 (1/3) 应用性能方面考虑(2/3) 尽量避免ALTER TABLE 操作 更新优化统计表 尽量利用你创建的索引 尽量使用短交易来减少锁冲突 有规则的进行checkpoint操作 有规则的进行backups操作 (如果使用增量备份,那么这个操作尤为重要) 其他建议 检查连接属性配置文件 (sys.odbc.ini / .odbc.ini 文件). 检查表的所属者owners. 方法调用顺序或者游标状态不正确往往是应用程序不正确的信号。 游标都和特定的statement句柄关联, (隐式和connection句柄关联) Transactions和特定的 connection 句柄关联 如果statements 或者 connections 是跨线程共享的,那么

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档