ODBC数据库连接的创建示例


用于创建ODBC连接的示例代码

#include <string.h>
#include <sqltypes.h>
#include <sql.h>
#include <sqlext.h>

SQLHANDLE hEnv = SQL_NULL_HENV;
SQLHANDLE hCon1 = SQL_NULL_HDBC;
SQLHANDLE hCon2 = SQL_NULL_HDBC
SQLRETURN iRet = 0;
SQLCHAR   szConnStr1[128];
SQLCHAR   szConnStrOut1[128];
SQLCHAR   szConnStr2[128];
SQLCHAR   szConnStr2Out[128];
SQLSMALLINT iOutLen1 = 128;
SQLSMALLINT iOutLen2 = 128;

// 设置连接字符串(分别使用DNS、CONNSTR执行连接)
strcpy(szConnStr1, "DSN=mysql-test");
strcpy(szConnStr2, "DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;PORT=3306;UID=test;PWD=testpwd");

// 首先创建环境句柄
iRet = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
CHECK_ERROR(iRet);

// 在使用环境句柄创建连接句柄前,需首先设置当前兼容的ODBC版本(3.0)
iRet = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); 
CHECK_ERROR(iRet);

// 创建连接句柄,创建时需指定对应的环境句柄
iRet = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hConn1);
CHECK_ERROR(iRet);
iRet = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hConn2);
CHECK_ERROR(iRet);

// 使用DSN连接
iRet = SQLDriverConnect((SQLHDBC)hConn1, 0, szConnStr1, 128, szConnStrOut1, &iOutLen1, SQL_DRIVER_NOPROMPT);
CHECK_ERROR(iRet);

// 使用非DSN方式连接
iRet = SQLDriverConnect((SQLHDBC)hConn2, 0, szConnStr2, 128, szConnStrOut2, &iOutLen2, SQL_DRIVER_NOPROMPT);
CHECK_ERROR(iRet);

{......}  // ODBC数据查询。。。

// 关闭连接
iRet = SQLDisconnect((SQLHDBC)hConn1);
iRet = SQLDisconnect((SQLHDBC)hConn2);

// 释放句柄
iRet = SQLFreeHandle(SQL_HANDLE_DBC, hConn1);
iRet = SQLFreeHandle(SQL_HANDLE_DBC, hConn2);
iRet = SQLFreeHandle(SQL_HANDLE_ENV, hEnv);






转载于:https://my.oschina.net/luckysym/blog/192744

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值