#ifdef WIN32
#include
#else
#include
#endif
#include
#include
#include
#include
#include
#define isSuc(result) ((result) == SQL_SUCCESS || (result) ==
SQL_SUCCESS_WITH_INFO)
char hosts[][100] = {"192.168.5.64",
GBase 8a 程序员手册ODBC 篇
- 56 -
南大通用数据技术股份有限公司
"192.168.5.65",
"192.168.5.64;192.168.5.65",
"192.168.5.65;192.168.5.64",
"192.168.5.64;192.168.5.64",
"192.168.5.64;192.168.5.64;192.168.5.65",
"192.168.5.64;192.168.5.65;192.168.5.64",
"192.168.5.65;192.168.5.64;192.168.5.64",
"192.168.5.65;192.168.5.66",
NULL};
int main(void)
{
char conn_format[200] = "DRIVER={GBase 8a ODBC 8.3 Driver};"
"SERVER={%s};UID=root;PWD=1;DATABASE=test;PORT=5258;";
char conn[200] = {'\0'};
int i = 0;
short sret; //返回代码
void* henv; //环境句柄
void* hdbc; //连接句柄
/** 申请环境句柄**/
sret =
SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if(!isSuc(sret))printf("申请环境句柄出错\n");
/** 设置环境属性,声明ODBC 版本**/
sret =
SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
if(!isSuc(sret))printf("声明ODBC 版本出错\n");
/** 申请连接句柄**/
sret = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
if(!isSuc(sret))printf("申请连接句柄出错\n");
/** 设置连接属性**/
sret = SQLSetConnectAttr(hdbc,SQL_ATTR_AUTOCOMMIT,
(void*)SQL_AUTOCOMMIT_OFF,SQL_IS_INTEGER);
if(!isSuc(sret))printf("设置连接属性出错\n");
while(*hosts[i])
GBase 8a 程序员手册ODBC 篇
南大通用数据技术股份有限公司
- 57 -
{
sprintf(conn, conn_format, hosts[i]);
/** 连接数据源**/
sret = SQLDriverConnect(hdbc,NULL,(unsigned char *)conn,
SQL_NTS, NULL, 0, NULL, 0);
if(!isSuc(sret))printf("连接%s 出错\n", hosts[i]);
else printf("连接%s 成功\n", hosts[i]);
SQLDisconnect(hdbc);
memset(conn, '\0', strlen(conn));
i++;
}
return 0;
}