我这样写SQL语句为什么会出错呢?(20分)

  • 主题发起人 主题发起人 shawn-yau
  • 开始时间 开始时间
S

shawn-yau

Unregistered / Unconfirmed
GUEST, unregistred user!
通过一个ADOQuery修改一个字段值:
strSQL := 'UPDATE account SET pwd=''' + strNewPwd + '''' + 'WHERE pwd='''
+ strOldPwd + '''';
PwdQuery.Close;
PwdQuery.SQL.Clear;
PwdQuery.SQL.Add(strSQL);
PwdQuery.Open;
...
提示:
CommandText do
es not return a result set
为什么会这样的呢?
 
vbmbh:=edit1.text;
{修改数据}
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update t_bmxx set bmmc=:bmmc,sjbm=:sjbm,bmfzr=:bmfzr,bmsm=:bmsm');
adoquery1.SQL.Add('where');
adoquery1.SQL.Add('bmbh='''+trim(vbmbh)+'''');
adoquery1.Parameters.ParamByName('sjbm').Value:=edit3.Text;
adoquery1.Parameters.ParamByName('bmmc').Value:=edit2.Text;
adoquery1.Parameters.ParamByName('bmfzr').Value:=edit4.Text;
adoquery1.Parameters.ParamByName('bmsm').Value:=edit5.Text;
adoquery1.ExecSQL;
end;

我这样做成功了,你可以试一下!
 
where 前加空格
'UPDATE account SET pwd=''' + strNewPwd + ''' WHERE pwd='''
+ strOldPwd + '''';
 
这样写没问题的,这句SQL可以达到修改的目的,只是修改后会出现出错提示。。。
 
忘了,不是Open,是ExecSQL;
 
有关query什么时候该用open,什么时候该用execsql,前面的贴子讨论过很多,你可以翻看,
会对你有帮助的!
 
多人接受答案了。
 
后退
顶部