免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11403 | 回复: 8
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(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
2 [报告]
发表于 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
3 [报告]
发表于 2014-01-16 20:47 |只看该作者
在同一个服务器上可以直接建个同义词
或上直接db:table这种方式不行吗?

论坛徽章:
0
4 [报告]
发表于 2014-01-17 08:31 |只看该作者
昨天查了一下错误码,好像是因为informix配置用的是IPC方式,所以只支持单连接。
今天改成TCP方式试试。

论坛徽章:
0
5 [报告]
发表于 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
6 [报告]
发表于 2014-01-22 10:50 |只看该作者
两个概念:
1) 同一个数据库Server下, 只要connect一次,就可以访问同一个数据库Server下的多个数据库(如果有多个数据库实例的话)

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

论坛徽章:
0
7 [报告]
发表于 2014-01-22 11:55 |只看该作者
回复 1# xawi2000


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

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

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

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

论坛徽章:
0
8 [报告]
发表于 2014-01-26 16:51 |只看该作者
我用代码中的那咱方式,一直报-27000错误,网上查到的原因是因为IPC方式,

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

论坛徽章:
0
9 [报告]
发表于 2014-01-26 17:32 |只看该作者
我刚试了下用ESQL的方法可以用db:table来访问同一服务器上不同数据库的同名表,

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

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP