请教两条select语句结果不同(ADO直接连ACCESS与ADO连SQL SERVER2000,然后再查ACCESS)(100分)

  • 主题发起人 主题发起人 aadmwdk
  • 开始时间 开始时间
A

aadmwdk

Unregistered / Unconfirmed
GUEST, unregistred user!
BackupDB.mdb数据库表Table1字段及顺序:A,B,C

select * from
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Password="";
Data Source=D:/工作/BackupDB.mdb;Persist Security Info=True')...Table1


但是我在SQL SERVER中用上面的查询语句会出问题,Table1字段的顺序会变成B,A,C,我不想将select语句中的"*"换成"A,B,C"请问如何解决?

我在Delphi中,用ADOQuery连接BackupDB.mdb后,执行
select * from Table1
的结果是:
A B C
...

而上面的结果变为:
B A C
 
看一下数据库结构,是不是建库的时候就是这个字段顺序啊,呵呵
 
你的access数据库有问题了,
1,应该压缩一下
2,把你的数据库结构发出来看看
 
数据库结构问题
 
我遇到过,因为用上面的方法时,实现是通过VB脚本的,VB会按它自己的规则把字段排序,曾被这个问题困扰好久!!!
 
呵呵,这个问题只能通过把ACCESS表中的字段分别提取并与SQL SERVER中对应去解决了。

就是说,我在组织“select * from
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Password="";
Data Source=D:/工作/BackupDB.mdb;Persist Security Info=True')...Table1”
SQL语句时,先通过连接ACCESS的ADOQuery控件将Table1中的字段名按SQL SERVER中的字段名对应提取出来,将上面的字符串中的*通过提取的A、B、C字段名代替,再去处理就可以了。
 
后退
顶部