免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10702 | 回复: 8

用ESQL同时连接多个informix数据库问题 [复制链接]

论坛徽章:
0
发表于 2014-01-16 14:06 |显示全部楼层
本帖最后由 xawi2000 于 2014-01-16 14:18 编辑

服务器AIX 6,数据库informix,现在遇到一个问题,

某台服务器上有二个数据库a和b,我希望同时打开二个数据库或者二个连接进行访问。

我使用ESQL进行操作,代码如下:
  1. $connect to $szbcmdb as 'connbcm';
  2. if (sqlca.sqlcode)
  3. {
  4.      printf("connect database [%s] fail: sql code = [%d]\n", szbcmdb, sqlca.sqlcode);
  5.      exit(-1);
  6. }
  7. printf("connect database [%] OK\n", szbcmdb);
  8. $connect to $szcdtdb as 'conncdt';
  9. if (sqlca.sqlcode)
  10. {
  11.      printf("connect database [%s] fail: sql code = [%d]\n", szcdtdb, sqlca.sqlcode);
  12.      exit(-1);
  13. }
  14. printf("connect database [%] OK\n", szcdtdb);
复制代码
上面连接二个数据库的代码,注释掉任何一个都可以正常访问,二个同时访问的话就
只能连接上第一个,第二个数据库会报-2700错误。

去百度了半天自己想了半天也没找到解决方案,求高手指点,谢谢!

论坛徽章:
0
发表于 2014-01-16 16:56 |显示全部楼层
写错了,错误码是-27000,少写了个0.

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
发表于 2014-01-16 20:47 |显示全部楼层
在同一个服务器上可以直接建个同义词
或上直接db:table这种方式不行吗?

论坛徽章:
0
发表于 2014-01-17 08:31 |显示全部楼层
昨天查了一下错误码,好像是因为informix配置用的是IPC方式,所以只支持单连接。
今天改成TCP方式试试。

论坛徽章:
0
发表于 2014-01-17 08:32 |显示全部楼层
大梦 发表于 2014-01-16 20:47
在同一个服务器上可以直接建个同义词
或上直接db:table这种方式不行吗?



不懂,建同义词是什么意思啊?
db:table这种方式不行,得先有连接。

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2015-11-26 06:20:00数据库技术版块每日发帖之星
日期:2016-02-25 06:20:00
发表于 2014-01-22 10:50 |显示全部楼层
两个概念:
1) 同一个数据库Server下, 只要connect一次,就可以访问同一个数据库Server下的多个数据库(如果有多个数据库实例的话)

2) 不能同时访问不同的数据库Server下的数据库实例,在一个connect情况下,如果要访问另一个数据库Server下的数据库实例,目前已经connect的链接须disconnect,才能connect一个新的数据库Server

论坛徽章:
0
发表于 2014-01-22 11:55 |显示全部楼层
回复 1# xawi2000


    可以理解为,同时连接后,如果$select ...,怎么区别你用哪个数据库的连接?

   这个和用IPC还是TCP没有关系。

   可以用db:table方式,但是如果是跨INSTANCE,我还不确定db:table@INST是否可行。

   不过效率还是有点低,建议独立进程,IPM或SOCKET交换数据?

论坛徽章:
0
发表于 2014-01-26 16:51 |显示全部楼层
我用代码中的那咱方式,一直报-27000错误,网上查到的原因是因为IPC方式,

目前和领导沟通过了,用单实例方式,即每次切换数据库的时候先关闭前一个数据库。

论坛徽章:
0
发表于 2014-01-26 17:32 |显示全部楼层
我刚试了下用ESQL的方法可以用db:table来访问同一服务器上不同数据库的同名表,

但是如果我的db是一个变量,写成$db:table它就不认识了啊。

有什么方法可以解决?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP