回 帖 发 新 帖 刷新版面

主题:这样的update也有错?

"update   kuchun   set "+   
            "库存数量= " " "   +   dm.ADOQueryclient.fieldbyname( "库存数量 ").AsString   +   " " ", "+ 
            "发货数量= " " "   +   dm.ADOQueryclient.fieldbyname( "产品数量 ").AsString   +   " " ", "+ 
            "库存产品= " " "   +   dm.ADOQueryclient.fieldbyname( "出货品种 ").AsString   +   " " ", "+   
            "发货时间= " " "   +   dm.ADOQueryclient.fieldbyname( "发货时间 ").AsString   +   " " ", "+ 
            "目的港= " " "   +   dm.ADOQueryclient.fieldbyname( "目的港 ").AsString   +   " " ", "+ 
            "已发货数量= " " "   +   dm.ADOQueryclient.fieldbyname( "已发货数量 ").AsString+   " " " "+ 
            "where "   + 
            "客户名称 "= " " "+dm.ADOQueryclient.fieldbyname( "客户名称 ").asstring+ " " " " 

总是提示说语法错误,不知为何。请指点!谢谢!

回复列表 (共7个回复)

沙发

建议:为了方便找问题,先只更新一个东东,然后把调试的结果(字符串的内容)来出来大家看看应该就可以找到问题了.

板凳


如此之类的SQL语句构造个人建议使用FORMAT比较好

3 楼

delphi 中是不用双引号的

4 楼


delphi中字符串用单引号,用两个单引号即''表示一个单引号'

5 楼

" " "   +   dm.ADOQueryclient.fieldbyname( "库存数量 ").AsString   +   " " "
改为 +   dm.ADOQueryclient.fieldbyname( "库存数量 ").AsString   +就行
不用带引号,Delphi的AsString会自动转换!

6 楼

" " "   +   dm.ADOQueryclient.fieldbyname( "库存数量 ").AsString   +   " " "

改为
'''   +   dm.ADOQueryclient.fieldbyname( '库存数量 ').AsString   +   '''

不过更建议使用parameters的一些方法。

7 楼

adoquery1.Close;
adoquery1.SQL.Clear;
ADOQuery1.sql.add('update 表1 set 库存数量=:"100" where id="01"');
ADOQuery1.execsql;

我来回复

您尚未登录,请登录后再回复。点此登录或注册