INSERT INTO 语句语法问题(6分)

  • 主题发起人 主题发起人 hh200303
  • 开始时间 开始时间
H

hh200303

Unregistered / Unconfirmed
GUEST, unregistred user!
with form1.ADOQuery2 do<br> begin<br> close;<br> SQL.Clear;<br> sql.Add('insert into materials(a,b,c,d,e,');<br> Sql.add('f,g,h,i,j,');<br> Sql.add('k,l,m,n,o,p,q)');<br> sql.add('values(:a,:b,:c,:d,:e,');<br> sql.add(':f,:g,:h,:i,:j,');<br> sql.add(':k,:l,:m,:n,:o,:p,:q)');<br> parameters.ParamByName('a').value:=trim(edit2.Text);<br> parameters.ParamByName('b').value:=trim(edit1.Text);<br> parameters.ParamByName('c').value:=trim(edit3.Text);<br> parameters.ParamByName('d').value:=trim(edit4.Text);<br> parameters.ParamByName('e').value:=trim(edit5.Text);<br> parameters.ParamByName('f').value:=trim(edit6.Text);<br> parameters.ParamByName('g').value:=trim(edit7.Text);<br> parameters.ParamByName('h').value:=trim(edit8.Text);<br> parameters.ParamByName('i').value:=trim(edit9.Text);<br> parameters.ParamByName('j').value:=trim(edit10.Text);<br> parameters.ParamByName('k').value:=trim(edit11.Text);<br> parameters.ParamByName('l').value:='';<br> parameters.ParamByName('m').value:='';<br> parameters.ParamByName('n').value:='';<br> parameters.ParamByName('o').value:='';<br> parameters.ParamByName('p').value:='';<br> parameters.ParamByName('q').value:='';<br> execsql;<br> <br> 我用的是access数据库<br> 上述代码中a到q都是数据表materials的字段(在我的原程序中字段都是汉字,这里用字母代替了,由于字段比较多,我在程序中用分行显示),其中a、b数据类型在access数据表中显示的是“文本”,其他的都是“数字”,我的界面中edit1,edit2输入的都是汉字加字母组合的字符串,而其他的edit都输入的是数字。l到m在数据表中是空值,界面中也不输入具体值。<br> <br> 但我运行时,输入相关内容后总是显示“insert into 语句的语法错误”,不知道这是哪里出错了,请教各位高人,谢谢!
 
sql.Add('insert into materials(a,b,c,d,e,');<br>&nbsp;Sql.add('f,g,h,i,j,');<br>&nbsp;Sql.add('k,l,m,n,o,p,q)');<br>&nbsp;sql.add('values('''+trim(edit2.Text)+'''));<br>sql.add('('''+trim(edit3.Text)+'''));<br>..........<br>你的意思就是A=EDIT2.TEXT的内容?还是什么?
 
A=EDIT2.TEXT的内容<br>b=EDIT1.TEXT的内容<br>二者都是文本类型<br>其他的c.......q都是数字类型,c......k=相应的edit的内容,l到q在数据表中都为空,但数据类型是数字类型。<br>我改成这样后<br>strtofloat(trim(edit3.Text));<br>.......<br>又出现“'' is not a valid floating point value”<br><br>不知是怎么回事?
 
strtofloatdef(trim(edit3.Text),0);<br>空字符串怎么转换为数值呢?给个默认值
 
是字符的话应该加上QuotedStr(Edit1.Text),给参数加上单引号。
 

Similar threads

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