Delphi用T-SQL大批量导入ACCESS数据注意问题

使用DELPHI6的TADOQUERY执行如下ACCESS T-SQL语句时会出错:

...

ADOQuery1.Close;

ADOQuery1.SQL.Text := 'INSERT INTO TABLE1 (FIELD1,FIELD2) SELECT (A.FIELD1,A.FIELD2) FROM [;DATABASE=C:/T.MDB;PWD=1;].TABLE1 AS A WHERE A.ID=111';

ADOQUERY1.EXECSQL;

...

执行以上语句时,会报参数不正确的错误。但是我使用此SQL语句在DMB数据库文件中的查询里执行完全OK。

难道是ADO驱动不支持此语句,但是为什么其它的如ALTER TABLE,DELETE FROM TABLE可以执行呢?于是根据所提示的错误(参数不正确)来进行查找,在ADOQUERY的属性列表中有个属性PARAMCHECK默认为TRUE,难道是它在作怪,于是在代码中加入了ADOQuery1.ParamCheck := False语句,在调试运行之,成功!!!

总结:可能是以上的SQL语句包括"[]"的原因吧,使ADOQUERY组件认为其是个参数,需要程序员赋值的原因,导致执行SQL语句前检查SQL参数时报错!!!

可能我总结的出错原因不对,如果读者你知道正确答案,请告诉我。谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值