为什么TADOCommand总是提示" update()语法错误!"

xiaoping04408 2008-09-18 04:55:41
Cmd := TADOCommand.Create(nil);
Cmd.Connection := dataform.conn;
if dataform.conn.InTransaction then dataform.conn.RollbackTrans;
dataform.conn.BeginTrans;

user_id := trim(edit3.Text );
user_name := trim(edit1.Text );
pass_word := trim(edit2.Text );
memo_1 := trim(Memo1.Text );

cmd.CommandText := 'update tbuse set password =:pass_word
' where userid =:user_id;
cmd.Parameters.ParamByName('pass_word').Value := pass_word;

cmd.Parameters.ParamByName('user_id').Value := user_id;
cmd.Execute ;

为什么总是提示" update()语法错误!"
...全文
171 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2008-09-20
  • 打赏
  • 举报
回复
1.showmessage看一下sql語句:看是否少了引號等;
2.像password或userid這是關鍵字,字段應該盡量避免,如果一定要使用,記得加[]括號!
provokes 2008-09-19
  • 打赏
  • 举报
回复
就两个变量也不一定要用参数啊,可以直接赋值构造SQL语句。

找问题最好的办法是在执行之前showmessage一下SQL语句

还有就是,开始了事务别忘了了提交
skyno1 2008-09-19
  • 打赏
  • 举报
回复
SmallHand 正确,楼主要多练语法
coolwx 2008-09-19
  • 打赏
  • 举报
回复
楼上的正解,
楼主怎么不看清楚引号呢。。。
火龙岛主 2008-09-19
  • 打赏
  • 举报
回复
Cmd := TADOCommand.Create(nil);
Cmd.Connection := dataform.conn;
if dataform.conn.InTransaction then dataform.conn.RollbackTrans;
dataform.conn.BeginTrans;

user_id := trim(edit3.Text );
user_name := trim(edit1.Text );
pass_word := trim(edit2.Text );
memo_1 := trim(Memo1.Text );

cmd.CommandText := 'update tbuse set password =:pass_word where userid =:user_id';
cmd.CommandType := cmdText;
cmd.Parameters.ParamByName('pass_word').Value := pass_word;
cmd.Parameters.ParamByName('user_id').Value := user_id;
cmd.Execute ;
xiaoping04408 2008-09-19
  • 打赏
  • 举报
回复

Cmd := TADOCommand.Create(nil);
Cmd.Connection := dataform.conn;
if dataform.conn.InTransaction then dataform.conn.RollbackTrans;
dataform.conn.BeginTrans;

user_id := trim(edit3.Text );
user_name := trim(edit1.Text );
pass_word := trim(edit2.Text );
memo_1 := trim(Memo1.Text );

cmd.CommandText := 'update tbuse set [password] =:pass_word where [userid] =:user_id';
cmd.CommandType := cmdText;
cmd.Parameters.ParamByName('pass_word').Value := pass_word;
cmd.Parameters.ParamByName('user_id').Value := user_id;
cmd.Execute ;





关键字,要记得加[]中括号哦,这才是正解.....
frankie_24 2008-09-18
  • 打赏
  • 举报
回复
如果是字符串的拼接,应该连编译都过不去,
Passwrod是关键字....
starluck 2008-09-18
  • 打赏
  • 举报
回复
cmd.CommandText := 'update tbuse set password =:pass_word +
' where userid =:user_id;
阿三 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 NicolasCage 的回复:]
cmd.CommandText := 'update tbuse set password =:pass_word' where userid =:user_id;

-->

cmd.CommandText := 'update tbuse set password =:pass_word where userid =:user_id';

[/Quote]
同意
NicolasCage 2008-09-18
  • 打赏
  • 举报
回复
cmd.CommandText := 'update tbuse set password =:pass_word' where userid =:user_id;

-->

cmd.CommandText := 'update tbuse set password =:pass_word where userid =:user_id';

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧