多线程访问informix问题
大家好,小弟最近在写多线程访问informix的一个程序,如果在每个线程里用不同的连接名连接数据库时,可以实现正常访问;现在我想让主线程创建一个连接,然后所有的线程共享这个连接去访问数据库,不清楚应该怎么实现请大家指点一下,谢谢,如果能够解决问题,小弟一定不会在乎给分这个问题的,谢谢……;
我参照网上的解释写了如下代码,但是执行时会报-1811错误:一但使用 CONNECT TO 语句建立与数据库服务器的显式连接,就不能使用DATABASE语句之一隐含建立与其它数据库服务器的连接。显式连接之后,必须使用CONNECT TO语句连接其它数据库服务器。
void pthread_fun_share(char *id)
{
printf( "------set db busy\n ");
EXEC SQL set connection 'proxy_test ';
static int i=0;
long temp_id=atol(id);
printf( "第【%d】次创建线程成功\n ",i-1);
Interact_Message inter_message = {1,0, "abcdefghijklmnopqrstuvwxyz "};
inter_message.instruction_log_id=temp_id;
inter_message.content_index=i;
write_interaction_log(&inter_message);//写数据库过程
printf( "------set db dormant\n ");
EXEC SQL set connection 'proxy_test ' dormant;
}
[解决办法]
不建议在ESQLC中多线程共享连接。既然你提到了,我也说两句,
把EXEC SQL set connection 'proxy_test '; 放到线程执行函数以外。
[解决办法]
进来围观的,o(∩_∩)o...