//最终生成的执行脚本
begin tran if  exists (select * from sysobjects where id = object_id('dbo.SBTemp') 
and sysstat & 0xf = 3) 
begin 
    drop table SBTemp 
end  
select * into SBTemp  from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=C:\工作表.xls',sheet1$)  if @@error<>0 rollback tran  
else commit tran 在查询分析器或者在程序中用ADO连接执行都没问题,可是我们公司用了BDE的中间层,并作了一个中间层服务器,客户端用midas下的TClientDataSet连接,执行上面的语句就会报错:
(异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。)哪位高手能告诉我问题大概出在哪里,有什么办法可以跟踪错误?我对公司的中间层不是太清楚,只知道底层是BDE的。

解决方案 »

  1.   

    BDE很多基本的SQL都不支持的, 如果你用, 建議還是用ADO
      

  2.   

    可是公司的客户端必须连接中间层,只能用BDE不知道是不是可以在BDE中设置一些选项解决这个问题?顺便问一下,BDE能调试吗??
      

  3.   

    aiirii(ari-爱的眼睛) 如果你做一个接口程序,提供给你excel格式,你是直接用我那样的脚本导入,还是循环每个单元格读入?我是为了省事才用上面的方法,没想到出这个恶心的毛病
      

  4.   

    建议用ADO
    其实用BDE省不了多少事
      

  5.   

    wychero(高天) 
    不是我想用BDE,是公司的中间层就是BDE的,而且专门有人负责维护,我不可能换成ado的东西,公司其他产品还要用这个中间层啊。如果我在接口模块里再加入一个ado连接,那还要用户去设置服务器这些东东,用户肯定不满意我还是一个单元格、一个单元格的读入把,只能用苯办法了