请帮忙看看下面的SQL语句有什么问题,怎么老是不行 ( 积分: 100 )

L

ljzboy

Unregistered / Unconfirmed
GUEST, unregistred user!
鄙人现需要从Access里面导一张表到Sql server里面。请大家帮忙看看下面这句sql有什么问题:
SELECT *
FROM CadenasBase OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/abc.mdb"; User ID=Admin; Password=aaa')
我在SQL query analysis里面运行老提示:
Server: Msg 17, Level 16, State 1, Line 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server 不存在或访问被拒绝
Server: Msg 2, Level 16, State 1, Line 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()).

请教各位大虾。有答案立刻结帖
 
鄙人现需要从Access里面导一张表到Sql server里面。请大家帮忙看看下面这句sql有什么问题:
SELECT *
FROM CadenasBase OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/abc.mdb"; User ID=Admin; Password=aaa')
我在SQL query analysis里面运行老提示:
Server: Msg 17, Level 16, State 1, Line 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server 不存在或访问被拒绝
Server: Msg 2, Level 16, State 1, Line 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()).

请教各位大虾。有答案立刻结帖
 
不用DTS导吗
 
直接导入会更快一点,不过有些字段长度和类型会改变
 
CadenasBase是表名吗?如果是应该这样写
select * from
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/abc.mdb"; User ID=Admin; Password=aaa')..CadenasBase
 
SELECT * INTO basi_frie_type
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',
'Data Source="d:/xie_work/mdb_lett.MDB";Persist Security Info=False;Jet OLEDB:Database Password=')...[basi_frie_type]

我测试过, 一定没有问题,
 
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/abc.mdb"; User ID=Admin; Password=aaa')...CadenasBase
 
用xie0930的吧,除了有些非字符数字的字段类型会变以外,还是很好用的:)
 
谢谢各位的回复!
Jeansonliu:你的答案在表名间少了一个点
xie0903:答案中好像没有注明source table 的地方?
cis: 您的回复完全可用,但请教多一点,我发现如果这个Access已经有人打开了或者正在使用,就没办法用这种办法连接,也就是说这种方法一定要以独占的方式连Access,是这样吗?有没有其他的办法或者参数?

再一次感谢楼上各位!
 
1> source table =*.mdb must colse
2> target table =*.sql table not exist
you repeat try,and will get success! thank you!
 
如果被人打开了,你再去打开时,不允许打开,则说明是别人以独占方式打开的。

而当你打开后也希望别人能打开,你则应以共享方式打开。

你加上以下这段,不过你自己要试试它的值才行。
Mode=Share Deny None
 
再次感谢楼上各位,这条SQL语句终于可以在sql query analyzer中运行通过,但奇怪的是我把它搬到delphi6中,用adoquery来执行就老报错,就差这一步就可以交作业了。请帮手看看。
strsql:='insert into table1(channelcode,c_name,e_name) (SELECT channelcode,c_name,e_name FROM OpenDataSource('+'''Microsoft.Jet.OLEDB.4.0'''+','+'''Data Source="C:/temp123.mdb"; User ID=Admin; Password='''+')...table2)';

P.S. 错误提示:不正常的定义参数对象。提供了不一致或不完整的信息。
我试过把它print出来,再copy到sql query analyzer里面,还一样能运行,真是晕倒了。。。有点莫名其妙
 
这种导入导出是比较难搞,我的思路都是先导成文本文件,作为中介,然后导再导入另外一个数据库
 
顶部