SQL修改字段问题(高手来,在线等) ( 积分: 100 )

  • 主题发起人 主题发起人 8525310
  • 开始时间 开始时间
8

8525310

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;qry1.sql.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.sql.add('update&nbsp;&nbsp;Goods&nbsp;&nbsp;set&nbsp;状态=false&nbsp;where&nbsp;货物编号=:bm1');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.parameters.parambyname('bm1').Value:=combobox1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.ExecSQL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showmessage('成功添加联运单信息!');<br>end;<br>提示至少一个参数没有付值。货物编号有值。qry1.sql.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.sql.add('select&nbsp;*&nbsp;&nbsp;&nbsp;from&nbsp;Goods&nbsp;&nbsp;&nbsp;where&nbsp;货物编号=:bm1');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.parameters.parambyname('bm1').Value:=combobox1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.ExecSQL;<br>这样写是没问题的。奇怪了
 
这一句:&nbsp;qry1.sql.add('update&nbsp;&nbsp;Goods&nbsp;&nbsp;set&nbsp;状态=false&nbsp;where&nbsp;货物编号=:bm1');中&quot;状态=false&quot;,false可是SQL数据库中的关键字啊,不知道你这句是不是写错了。
 
false&nbsp;改为&nbsp;0
 
qry1.sql.add('update&nbsp;&nbsp;Goods&nbsp;&nbsp;set&nbsp;状态=:pv1&nbsp;where&nbsp;货物编号=:bm1');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.parameters.parambyname('bm1').Value:=combobox1.text;<br>qry1.parameters.parambyname('pv1').Value:=false<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.ExecSQL;<br>这个绝对没错.
 
qry1.ExecSQL;不返回结果集,qry1.Open才返回结果集。所以,你两段代码的比较没有意义。<br>qry1.parameters.parambyname('bm1').Value:=combobox1.text;<br>对于字串型参数,应当设置类型和长度,否则可能不对:<br>qry1.parameters.parambyname('bm1').DataType:=ftString;<br>qry1.parameters.parambyname('bm1').Size:=Length(combobox1.text);<br>我一般使用Parameters[0]来访问,这样快。
 
新手吧<br>状态=false&nbsp;不是正确的&nbsp;Transact-SQL&nbsp;语法<br>如果&quot;状态&quot;是&nbsp;bit&nbsp;型应写为&quot;状态&quot;=0<br>[red]强烈建议字段名不要用中文[/red]
 
ExecSQL是没有反回值的。修改字段可以参考:alter&nbsp;table命令
 
谢谢,大家热心,我犯了一个小错误,数据库根本没那个字段
 
后退
顶部