提示insert into 语句的语法错误,到底哪里错了,看不懂啊

learningdelphi 2012-06-01 09:30:38
with adoquery3 do
begin
close;
sql.Clear;
sql.Text:='insert into fuser(username,password1,right)values(:ausername,:apassword1,:aright)';
Parameters.ParamByName('ausername').Value:=edit1.Text;
Parameters.ParamByName('apassword1').Value:=edit2.Text;
Parameters.ParamByName('aright').Value:=combobox1.Text;
ExecSQL;
messagedlg('添加成功!',mtinformation,[mbOK],0);
end;
...全文
1722 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyle_huang 2012-06-08
  • 打赏
  • 举报
回复
我最不喜欢用那个 Parameters了,看着一大堆,而且那个参数还要加 “:”,繁琐。

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text := 'insert into table1(ID, Name, Sex) values('''+Edit1.Text+''', '''+Edit2.Text+''', '+IntToStr(ComboBox1.ItemIndex)+')';
ExecSQL;
end;

可以不?
「已注销」 2012-06-04
  • 打赏
  • 举报
回复
参数的赋值不要直接用.value,而要针对不同的类型,使用asString,asInteger...
因为直接使用value的时候delphi无法判断参数的类型。你看源码就知道了。
wzgdyn 2012-06-04
  • 打赏
  • 举报
回复
right是一个SQL函数,从右取几个字符,用作字段名时要加[],写成[right]
xiaocongzhi 2012-06-02
  • 打赏
  • 举报
回复
sql.Text:='insert into [fuser]([username],[password1],[right]) values(:ausername,:apassword1,:aright);';
sz0557it 2012-06-02
  • 打赏
  • 举报
回复
sql.Text:='insert into fuser(username,password1,right) values(:ausername,:apassword1,:aright)';
bdmh 2012-06-02
  • 打赏
  • 举报
回复
right是关键字,内部函数,从右取几个字符
Oraclers 2012-06-01
  • 打赏
  • 举报
回复
right是一个SQL函数,用作字段名时要加[],变成[right]

2,497

社区成员

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

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