TimesTen应用开发最佳实践.ppt

TimesTen应用开发最佳实践.ppt

ID:49265133

大小:199.50 KB

页数:18页

时间:2020-02-02

TimesTen应用开发最佳实践.ppt_第1页
TimesTen应用开发最佳实践.ppt_第2页
TimesTen应用开发最佳实践.ppt_第3页
TimesTen应用开发最佳实践.ppt_第4页
TimesTen应用开发最佳实践.ppt_第5页
TimesTen应用开发最佳实践.ppt_第6页
TimesTen应用开发最佳实践.ppt_第7页
TimesTen应用开发最佳实践.ppt_第8页
TimesTen应用开发最佳实践.ppt_第9页
TimesTen应用开发最佳实践.ppt_第10页
资源描述:

《TimesTen应用开发最佳实践.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、TimesTen应用开发最佳实践内容安排ODBC程序结构如何使用ODBC句柄实现SQLStatements异常捕捉性能方面考虑其他建议©2006OracleCorporation–ProprietaryandConfidentialODBC程序流程SQLFreeStmtSQLDisconnectSQLFreeConnectSQLFreeEnvSQLAllocEnvSQLAllocConnectSQLConnectSQLAllocStmtProcessSQLStatementsReceiveResultsCLOSEo

2、ptionDROPoption©2006OracleCorporation–ProprietaryandConfidentialODBC应用的句柄Environment句柄初始化ODBC调用接口ODBC方法:SQLAllocEnv()和SQLFreeEnv()Connection句柄存储数据源连接信息ODBC方法:SQLAllocConnect()和SQLFreeConnect()隐式分配一个特定的Environment句柄Statement句柄存储SQLstatement信息ODBC方法:SQLAllocStmt

3、()和SQLFreeStmt()隐式分配一个特定的Connection句柄©2006OracleCorporation–ProprietaryandConfidential使用ODBC应用句柄statement句柄只能在初始阶段分配一次,并在结束阶段释放.在使用多线程编程中,statement和connection句柄应该属于线程结构体内.句柄不能用于多线程并发运行,如果想实现在多个线程在不同的时间访问同一个句柄,那么应用必须通过一些信号量等方式的机制来实现。©2006OracleCorporation–Propr

4、ietaryandConfidentialSQLStatement执行流程SQLPrepareSQLBindParameterSQLExecuteYesInitializeTerminateIfmoreprocessingSQLFreeStmtIfrepeatNoSQLTransactRepeatableExecution?SQLBindParameterSQLExecDirect©2006OracleCorporation–ProprietaryandConfidential提高SQL性能只需要Prepare或者

5、编译SQLstatements及内建procedures一次,然后执行或者调用多次。尽量使用参数化statements,在运行期使用变量方式来应用SQLstatements和内建procedure。一旦statement被prepared,尽快绑定参数和列变量。在程序开始的时候申明/分配一次需要用到的变量。变量属于全局范围的。如果使用到多线程,变量申明在线程内部。©2006OracleCorporation–ProprietaryandConfidential绑定参数缓存使用prepare参数化SQLstateme

6、nts,并且使用不同的值执行多次使用通配符作为不同值的代替标志通常使用(?)或者:参数的值存储在应用程序的缓存区内使用SQLBindParameter()来将缓存绑定到参数如果需要赋值NULL到参数,将参数长度设置(SQLBindParameter()最后一个参数)为SQL_NULL_DATA每个参数必须有一个相应的C和SQL数据类型参数里面的值可以在执行SQLExecute()后获得。©2006OracleCorporation–ProprietaryandConfidenti

7、al查询通配符示例SELECTA,B,CFROMT1WHEREX=?ANDY=?ANDZ=?;SELECTA,B,CFROMT1WHEREX=:UserIdANDY=:LocationANDZ=:TimeStamp;SELECTA,B,CFROMT1WHEREX=:UserIdANDY=:LocationANDZ=:UserId;©2006OracleCorporation–ProprietaryandConfidential绑定参数缓存示例#defineCHARLEN20SQLINTEGERintBuf,null

8、Data=SQL_NULL_DATA;SQLCHARcharBuf[CHARLEN];SQLFLOATfloatBuf;rc=SQLPrepare(hStmt,(SQLCHAR*)“insertintostudent.tabvalues(?,?,?)”,SQL_NTS);rc=SQLBindParameter(hStmt,1,SQL_PARAM_INPUT,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。