INSERT INTO 问题,头都要大了。(50分)

  • 主题发起人 主题发起人 TSpring
  • 开始时间 开始时间
T

TSpring

Unregistered / Unconfirmed
GUEST, unregistred user!
Form1.ADOQuery4.Close;
Form1.AdoQuery4.sql.Clear;
Form1.AdoQuery4.SQL.Add('Insert into 进行中任务 (任务名称,目标ip地址,日期,byte) values (:aa,:bb,:cc,:dd)');
Form1.adoquery4.Parameters.ParamByName('aa').Value:=edit1.text;
Form1.adoquery4.Parameters.ParamByName('bb').Value:=edit2.text;
Form1.adoquery4.Parameters.ParamByName('cc').Value:=label5.caption;
Form1.adoquery4.Parameters.ParamByName('dd').Value:=strtoint(edit3.text);

Form1.Adoquery4.execSQL;

其中任务名称,目标ip地址是文本类型,日期是日期/时间类型,byte是数值类型,连接的数据库是access。可是我运行这段代码的时候
总是有问题。请各位大哥帮小弟看看啊。
 
什么问题?
插入定值先试试
 
什么问题呀,你不说我怎么知道
 
在插入定值的时候没有问题。

上面的这段代码总是说bb参数没有找到。
 
showmessage看一下,
 
Form1.AdoQuery4.SQL.Add(format(
'Insert into 进行中任务 (任务名称,目标ip地址,日期,byte) '+
'values (''%s'',''%s'',#%s#,%d)',
[edit1.text,edit2.text,label5.caption,strtoint(edit3.text)]));
 
Form1.AdoQuery4.SQL.Add('Insert into 进行中任务 ([任务名称],[目标ip地址],[日期],[byte]) values (:aa,:bb,:cc,:dd)');
 
Form1.AdoQuery4.SQL.Add('Insert into 进行中任务 ([任务名称],[目标ip地址],[日期],[byte]) values (:aa,:bb,:cc,:dd)');
后报错是说Missing SQL property.
而用Form1.AdoQuery4.SQL.Add(format('Insert into 进行中任务 (([任务名称],[目标ip地址],[日期],[byte]) '+ 'values (''%s'',''%s'',#%s#,%d)', [edit1.text,edit2.text,label5.caption,strtoint(edit3.text)]));
就没有一点儿问题。这是怎么回事啊?

对了。原来少说了一个问题:在进行的任务表中还有一个字段(序列号)值是自动生成的,因此没有在insert语句中加入相关的语句。会不会是这里影响结果导致错误啊?
 
自动生成值的字段不会受insert记录的影响
 
//在进行的任务表中还有一个字段(序列号)值是自动生成的,因此没有在insert语句中加入相关的语句。会不会是这里影响结果导致错误啊?
对!,最好加上;
 
卡色兄,能否说详细点儿呢?
 
这样试一试:
Form1.ADOQuery4.Close;
Form1.AdoQuery4.sql.Clear;
Form1.AdoQuery4.SQL.Add('Insert into 进行中任务 (任务名称,目标ip地址,日期,byte) ');
Form1.AdoQuery4.SQL.Add('select '''+edit1.text+''','''+edit2.text+''','''+label5.caption+''','+edit3.text);
Form1.Adoquery4.execSQL;
 
//而用Form1.AdoQuery4.SQL.Add(format('Insert into 进行中任务 (([任务名称],[目标ip地址],[日期],[byte]) '+ 'values (''%s'',''%s'',#%s#,%d)', [edit1.text,edit2.text,label5.caption,strtoint(edit3.text)]));
//就没有一点儿问题。这是怎么回事啊?
我在用Insert时不加自动增长的字断,它报了错说缺少字断,而你的,象你上面的说的好象
可以不加;
最关键的是动态参数的问题,我觉的出了数字类型的字断,其它的最好不用动态参数,特别
是日期类型,最好把它转换成‘#2002-05-01#’这种字串类型来使用;
 
谢谢各位大哥
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
836
import
I
后退
顶部