当前位置: 代码迷 >> Informix >> 多informix->access 的VB操作有关问题
  详细解决方案

多informix->access 的VB操作有关问题

热度:9568   发布时间:2013-02-26 00:00:00.0
多informix->access 的VB操作问题
其实我的问题是非常简单的...
就是我这边有3台informix数据库服务器,3台服务器除server不一样,其他配置及名字都是一样的.配置如下:
Informix server :root_informixdb1 (另两个是root_informixdb2 和 root_informixdb3)
  hostname:informixdb1 (另两个是informixdb2 和informixdb3)
  Protocolname:olsoctcp
  Service name:turbo
  Current Host:informixdb1 (另两个是informixdb2 和informixdb3)
  User Name:informix
  Password:informix

数据库名:alldatabase
有个表名:usdata


因为这三个数据库结构都一样的.我现在想用VB对这三个数据库进行操作,导出所有usdata表的数据,并合并到一个ACCESS文档,其中在ACCESS中的导出表中新加一列作为数据库来源.
希望结构如下:
root_informixdb1.alldatabase.usdata 
a|b|c|d
1|2|3|4

root_informixdb2.alldatabase.usdata 
a|b|c|d
5|6|7|8

root_informixdb3.alldatabase.usdata 
a|b|c|d
10|20|30|40

=>

access.usdata
F|a|b|c|d
db1|1|2|3|4
db2|5|6|7|8
db3|10|20|30|40

希望你能帮我想办法解决这个问题...
(如果有更好更快的方法能够通过VB对导出的数据进行分析的话,那就更好了,请专家指教)

------解决方案--------------------------------------------------------
安装一下informix的odbc驱动。 然后在WINDOWS控制面板中创建这三个数据库的ODBC。
之后在ACCESS中做对应的三个链接表。比如 链接表 L1, L2, L3

然后
在ACCESS 中 或通过VB ADO执行下面SQL

SQL code
insert into AccessTable(col1,col2,...,coln,sourcedb)select col1,col2,...,coln,'db1' as sourcedb from l1union allselect col1,col2,...,coln,'db2' as sourcedb from l2union allselect col1,col2,...,coln,'db3' as sourcedb from l3
------解决方案--------------------------------------------------------
1、安装informixODBC驱动,连接能用,有相应的权限;
2、ADO连接MDB
3、JETSQL:
SELECT * INTO NEWTT FROM ODBC[ODBC;
Dsn='';Driver={INFORMIX 3.30 32 BIT};Host=hostname;Server=myserver;Service=service-name;Protocol=olsoctcp;Database=mydb;UID=username;PWD=myPwd ].TT
因为没有安装INFORMIX,无法测试,注意你的用户名、密码正确且有访问
表权限。
4、OR 简单一点,在ACCESS中建立链接表,再将3表UNION,再INSERT INTO
MDB的表。
------解决方案--------------------------------------------------------
1、在ACCESS查询中运行上述语句;
2、连接字串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;
------解决方案--------------------------------------------------------
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\access.mdb;Persist Security Info=False" 
Adodc1.execute("SELECT * INTO usdata from [odbc;dsn=root_informixdb1].usdata " )
------解决方案--------------------------------------------------------
探讨
\下面是我在ACCESS查询中运行语句后的结果:

Adodc1.RecordSource = "SELECT * INTO usdata from [odbc;dsn=root_informixdb1].administrator_usdata"
当我通过链接表(administrator_usdata)执行时
提示为:microsoft office access 数据库引擎找不到输入表或查询"administrator_usdata".请确定它存在且其名称拼写正确

Adodc1.RecordSource = "SELECT * INTO usdata from [odbc;dsn=root_informixdb1].usdata"
当我通过表…
  相关解决方案