SQL语句能在管理器里运行,但是在程序里不可以,请大家看看是什么问题(100分)

  • 主题发起人 主题发起人 sbzldlb
  • 开始时间 开始时间
S

sbzldlb

Unregistered / Unconfirmed
GUEST, unregistred user!
SqlStr:=SqlStr+'insert into ';
SqlStr:=SqlStr+'OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', '''+'D:/BackUp.mdb'+''''+';''admin'';'+''''+'''';
SqlStr:=SqlStr+',''select StartTime from call'+''''+')';
SqlStr:=SqlStr+'select StartTime from call ';
 
你这是两句SQL,要分别执行
 
跟踪一下看看,SqlStr最后是什么。
还有,你执行是用ExecSQL吧?不能open的噢。
 
你最终的语句是:
|insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','D:/BackUp.mdb';'admin';'','select StartTime from call')select StartTime from call |(|中间的),你放管理器里运行能行吗?
似乎少了个空格吧?然后用ExecSQL执行试试
 
你这个貌似是从MS SQL中查出数据再INSERT到ACCESS中吧。
不要用DATASET,用那个ADOConnection来做。
 
这个语句在管理器里可以
用ExecSQL

我在另外1台电脑上可以 sqlserver2003 同样的代码
 
sqlserver2003 ??
 
用程序跟踪以下 ,将你的SQL语句显示出来 看看是不是你要执行的
 
语句在 sqlserver2000上,用delphi执行代码可以
在sqlserver2005上,用delphi执行代码不行
在sqlserver2005上,在管理器中执行可以
 
现在有进展,
sqlserver2005 如果用 sa 登陆就不能执行,但是用 windows登陆就可以

有谁知道问题所在呢,或者怎么提高 sa的权限呢?
 
后退
顶部