sql的问题(paradox)(50分)

  • 主题发起人 主题发起人 darzui
  • 开始时间 开始时间
D

darzui

Unregistered / Unconfirmed
GUEST, unregistred user!
本人是菜鸟,在程序中用了这样的语句(已调用clear方法)
query1.SQL.add('insert into cpdb (dep,degree,cla,id,name,sex,deyu,zhiyu,tiyu,nengli,total,ordre)');
query1.sql.add(' values (:edit7.text,:edit8.Text,:edit9.Text,:edit1.Text,:edit2.Text,:edit3.Text,:edit4.Text,:edit5.Text,:edit6.Text,:panel3.Caption,:panel4.Caption)');
就是把edit和panel中的数据插入到cpdb表中(类型是paradox)
结果导致一个EDatabaseError的异常,错误信息是'no sql statement available'
我感觉这一句sql语句没什么毛病阿,甚是疑惑,请各位高手指点.
 
数一数,好象values中少了一个值
 
肯定不对,你应把EDIT7.TEXT变为变量如:STR1,然后再加上,你还要注

意,每个字段是否一样。
 
按照你的意思,是需要生成动态的SQL语句然后执行,一般有两种写法:

1.
with Query1 do
begin
SQL.Clear;
SQL.Add('insert into table1 (field1, field2) '
+ ' values(:param1, :param2) ');
ParamByName('param1').AsString := Edit1.Text;
ParamByName('param2').AsString := Edit2.Text;
ExecSQL;
end;

2.
with Query1 do
begin
SQL.Clear;
SQL.Add('insert into table1 (field1, field2) '
+ ' values(' + QuotedStr(Edit1.Text) + ', '
+ QuotedStr(Edit2.Text) + ' ) ');
ExecSQL;
end;

我比较喜欢用第二种。

在你的程序中,象
values (:edit7.text,
这样的写法是不对的。
 
谢谢各位热心回答!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
638
import
I
S
回复
0
查看
939
SUNSTONE的Delphi笔记
S
后退
顶部