连接池示例
见 win test_pool deamon。
具体的关键点 _USE_CPOOL_ 下面的内容:
int connectdb(char* ip_str,short port,char* db_name,char* use_name,char* password,Connect * connp)
{
char t_dbname[50];
char t_ipstr[50];
short port1 ;
char t_usr[50];
char t_pwd[50];
XuguCIHANDLE hdenv;
XuguCIHANDLE hdsver;
XuguCIHANDLE hddbc;
XuguCIHANDLE hdstmt;
strcpy(t_dbname, db_name);
strcpy(t_ipstr, ip_str);
strcpy(t_usr, use_name);
strcpy(t_pwd, password);
port1 = port;
int * ver=(int*)malloc(4);
* ver=XuguCI_ATTR_ENV_VERSION;
short* port2=(short*)malloc(2);
*port2= port1;
int* isol=(int*)malloc(4);
*isol=2;
int * ze=(int*)malloc(4);
*ze=0;
int * len=(int*)malloc(4);
*len=0;
XuguCIHandleAlloc(NULL,&hdenv,HT_ENV);
XuguCIHandleAttrSet(hdenv,1,(XuguCIPOINTER)ver,-1);
int * use_pool=(int*)malloc(4);
#ifdef _USE_CPOOL_
* use_pool=1;
XuguCIHandleAttrSet(hdenv,2,(XuguCIPOINTER)use_pool,-1);
XuguCIHandleAlloc(hdenv,&hdsver,HT_SERVER);
#else
* use_pool=0;
XuguCIHandleAttrSet(hdenv,2,(XuguCIPOINTER)use_pool,-1);
XuguCIHandleAlloc(hdenv,&hdsver,HT_SERVER);
#endif
XuguCIHandleAttrSet(hdsver,XuguCI_ATTR_SRV_IP,t_ipstr,XuguCI_NTS);
XuguCIHandleAttrSet(hdsver,XuguCI_ATTR_SRV_PORT,(short*)port2,XuguCI_NTS);
XuguCIHandleAttrSet(hdsver, XuguCI_ATTR_SRV_DBNAME,t_dbname,XuguCI_NTS);
XuguCIHandleAlloc(hdsver,&hddbc,HT_SESSION);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_TIMEZONE,"GMT+08:00",XuguCI_NTS);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_ENCRYPTOR,NULL,-1);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_CHARSET,(int*)ver,XuguCI_NTS);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_ISOLEVEL,(int*)isol,XuguCI_NTS);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_SSL,ze,XuguCI_NTS);
* ver=XuguCI_AUTOCOMMIT_ON ;
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_AUTO_COMMIT,(int*)ver,XuguCI_NTS);
XuguCIHandleAttrSet(hddbc,XuguCI_ATTR_SESS_TIMEOUT,(int*)len,XuguCI_NTS);
free(use_pool);
free(ver);
free(port2);
free(isol);
free(ze);
free(len);
int ret= XuguCISessionBegin( hddbc,(char*)t_usr,(char*)t_pwd);
if ( ret < 0 )
{
printf("连接数据库失败Xugu connect db failure \n");
return ret;
}else{
connp->hdenv=hdenv;
connp->hdsver=hdsver;
connp->hddbc=hddbc;
printf("连接数据库成功Xuguconnect db OK \n");
return ret;
}
}