多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
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 " )
[解决办法]