当前位置: 代码迷 >> Informix >> 多线程访问informix有关问题
  详细解决方案

多线程访问informix有关问题

热度:4191   发布时间:2013-02-26 00:00:00.0
多线程访问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...
  相关解决方案