Linux Unix下ODBC的安装、配置与编程_4

Linux Unix下ODBC的安装、配置与编程_4

ID:41037255

大小:32.00 KB

页数:5页

时间:2019-08-14

Linux Unix下ODBC的安装、配置与编程_4_第1页
Linux Unix下ODBC的安装、配置与编程_4_第2页
Linux Unix下ODBC的安装、配置与编程_4_第3页
Linux Unix下ODBC的安装、配置与编程_4_第4页
Linux Unix下ODBC的安装、配置与编程_4_第5页
资源描述:

《Linux Unix下ODBC的安装、配置与编程_4》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第四:分配SQL语句的句柄并进行查询:需要声明一个SQL语句的句柄(SQLHSTMT),用来存放SQL语句信息的,调用SQLAllocHandle(SQL_HANDLE_STMT,V_OD_hdbc,&V_OD_hstmt)来获得这个句柄,V_OD_hstmt就是我们要分配的SQLHSTMT类型的SQL语句句柄。我们的查询语句是:SELECTname,idFROMwebORDERBYid执行这条查询语句之后,查询结果可能有很多行,但每行只有两列,分别对应name和id,它们的数据类型为integer和char*,在ODBC中的数据类型标识符为SQL_C_ULONG和SQL_C_CHAR。我们

2、需要先声明这样的两个变量来存贮查询结果:SQLINTEGERV_OD_id;charV_OD_buffer[200];然后我们需要使用SQLBindCol函数把查询结果和我们定义的变量进行绑定:SQLBindCol(V_OD_hstmt,1,SQL_C_CHAR,&V_OD_buffer,150,&V_OD_err);SQLBindCol(V_OD_hstmt,2,SQL_C_ULONG,&V_OD_id,150,&V_OD_err);这里的V_OD_err是用来存放错误信息编号的变量,类型也是SQLINTEGER。接下来,我们调用SQLExecDirect来进行查询:SQLExecDire

3、ct(V_OD_hstmt,"SELECTdtname,iduserFROMweborderbyiduser",SQL_NTS);我们可以用SQLNumResultCols(V_OD_hstmt,&V_OD_colanz)来获得结果的列数,也可以用SQLRowCount(V_OD_hstmt,&V_OD_rowanz)来获得结果的条数,V_OD_colanz和V_OD_rowanz分别存储相应的结果,类型分别为SQLSMALLINT和SQLINTEGER。在读取结果之前,我们需要调用SQLFetch(V_OD_hstmt)语句,这个语句可以用来获得第一条结果也可以用来都下一条,有点像next

4、的感觉。然后我们就可以在V_OD_id和V_OD_buffer里面获得每条记录的结果了。第五:关于关闭连接和释放句柄关闭数据库的连接,调用SQLDisconnect(V_OD_hdbc)就可以了,但在关闭数据库之前需要先释放SQL语句的句柄,而且在关闭数据库之后应该释放连接句柄和ODBC环境句柄,语句如下(按正常的顺序):SQLFreeHandle(SQL_HANDLE_STMT,V_OD_hstmt);SQLDisconnect(V_OD_hdbc);SQLFreeHandle(SQL_HANDLE_DBC,V_OD_hdbc);SQLFreeHandle(SQL_HANDLE_ENV,V

5、_OD_Env);第六:关于上述情况中的错误信息处理我们需要定义两个变量:longV_OD_erg;SQLINTEGERV_OD_err;SQLAllocHandle、SQLSetEnvAttr、SQLSetConnectAttr、SQLConnect、SQLExecDirect、SQLNumResultCols和SQLRowCount的调用结果都可以用V_OD_erg来存储,V_OD_err可以获得SQLBindCol中的错误信息。第七:获得本机的DSN信息我们可以在声明SQLHENV句柄之后,使用SQLDataSources函数来获得本机的DSN信息。程序如下:voidOD_ListDS

6、N(void){charl_dsn[100],l_desc[100];shortintl_len1,l_len2,l_next;l_next=SQL_FETCH_FIRST;while(SQLDataSources(V_OD_Env,l_next,l_dsn,sizeof(l_dsn),&l_len1,l_desc,sizeof(l_desc),&l_len2)==SQL_SUCCESS){printf("Server=(%s)Beschreibung=(%s)",l_dsn,l_desc);l_next=SQL_FETCH_NEXT;}}l_next变量是用来指定我们所要获得的DSN的

7、类别:SQL_FETCH_FIRST设定SQLDataSources()函数找到第一个可用的数据源(可以是UserDSN,也可以是SystermDSN)SQL_FETCH_FIRST_USER设定SQLDataSources()函数找到第一个UserDSNSQL_FETCH_FIRST_SYSTEM设定SQLDataSources()函数找到第一个SystemDSNSQL_FETCH_NEXT找到下一个数据源

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

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

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