ACCESS数据库的问题,在执行adoquery1.ExecSQL;时总是提示“INSERT INTO 语句有语法错误”。在线等待 ( 积分: 100 )

  • 主题发起人 主题发起人 jdlp
  • 开始时间 开始时间
J

jdlp

Unregistered / Unconfirmed
GUEST, unregistred user!
我的这个数据库有61个字段,是不是字段太多了?
在执行到adoquery1.ExecSQL;时总是提示“INSERT INTO 语句有语法错误”,请高手指点:

procedure TForm1.Button1Click(Sender: TObject);
var
sql:widestring;
begin
sql:='insert into gongyi1 values('+booltostr(yw10.Checked)+','+booltostr(yw11.Checked)+
','+booltostr(yw12.Checked)+','+booltostr(fhx40.Checked)+','+booltostr(fhx41.Checked)+
','+booltostr(fhx44.Checked)+','+booltostr(fhx45.Checked)+','+booltostr(fhx50.Checked)+
','+booltostr(fhx51.Checked)+','+booltostr(fhx52.Checked)+','+booltostr(fhx53.Checked)+
','+booltostr(fhx56.Checked)+','+booltostr(fhx61.Checked)+','+booltostr(fhx112.Checked)+
','+booltostr(fhx113.Checked)+','+booltostr(fhx115.Checked)+','+booltostr(fhx116.Checked)+
','+booltostr(fhx117.Checked)+','+booltostr(fhx121.Checked)+','+booltostr(fhx122.Checked)+','+
booltostr(fhx123.Checked)+','+booltostr(fhx153.Checked)+','+booltostr(fhx156.Checked)+','+
booltostr(fhx157.Checked)+','+booltostr(fhx162.Checked)+','+booltostr(bzs180.Checked)+','+
booltostr(bzs181.Checked)+','+combobox1.Text+','+combobox2.Text+','+combobox3.Text+','
+combobox4.Text+','+combobox5.Text+','+booltostr(zt300.Checked)+','+booltostr(zt301.Checked)+','+
booltostr(zt302.Checked)+','+booltostr(zt303.Checked)+','+booltostr(zt304.Checked)+','+
booltostr(zt305.Checked)+','+booltostr(zt306.Checked)+','+booltostr(zt307.Checked)+','+
booltostr(zd320.Checked)+','+booltostr(g330.Checked)+','+booltostr(g331.Checked)+','+booltostr(g332.Checked)+
','+booltostr(g333.Checked)+','+booltostr(g334.Checked)+','+booltostr(g335.Checked)+','+booltostr(g336.Checked)
+','+booltostr(g337.Checked)+','+booltostr(jz430.Checked)+edit1.Text+','+edit2.Text+','+edit3.Text+','+
edit4.Text+','+edit10.Text+','+edit5.Text+','+edit6.Text+','+edit7.Text+','+edit8.Text+','+edit9.Text+')';
//showmessage(sql);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql);
adoquery1.ExecSQL;
end;
 
我的这个数据库有61个字段,是不是字段太多了?
在执行到adoquery1.ExecSQL;时总是提示“INSERT INTO 语句有语法错误”,请高手指点:

procedure TForm1.Button1Click(Sender: TObject);
var
sql:widestring;
begin
sql:='insert into gongyi1 values('+booltostr(yw10.Checked)+','+booltostr(yw11.Checked)+
','+booltostr(yw12.Checked)+','+booltostr(fhx40.Checked)+','+booltostr(fhx41.Checked)+
','+booltostr(fhx44.Checked)+','+booltostr(fhx45.Checked)+','+booltostr(fhx50.Checked)+
','+booltostr(fhx51.Checked)+','+booltostr(fhx52.Checked)+','+booltostr(fhx53.Checked)+
','+booltostr(fhx56.Checked)+','+booltostr(fhx61.Checked)+','+booltostr(fhx112.Checked)+
','+booltostr(fhx113.Checked)+','+booltostr(fhx115.Checked)+','+booltostr(fhx116.Checked)+
','+booltostr(fhx117.Checked)+','+booltostr(fhx121.Checked)+','+booltostr(fhx122.Checked)+','+
booltostr(fhx123.Checked)+','+booltostr(fhx153.Checked)+','+booltostr(fhx156.Checked)+','+
booltostr(fhx157.Checked)+','+booltostr(fhx162.Checked)+','+booltostr(bzs180.Checked)+','+
booltostr(bzs181.Checked)+','+combobox1.Text+','+combobox2.Text+','+combobox3.Text+','
+combobox4.Text+','+combobox5.Text+','+booltostr(zt300.Checked)+','+booltostr(zt301.Checked)+','+
booltostr(zt302.Checked)+','+booltostr(zt303.Checked)+','+booltostr(zt304.Checked)+','+
booltostr(zt305.Checked)+','+booltostr(zt306.Checked)+','+booltostr(zt307.Checked)+','+
booltostr(zd320.Checked)+','+booltostr(g330.Checked)+','+booltostr(g331.Checked)+','+booltostr(g332.Checked)+
','+booltostr(g333.Checked)+','+booltostr(g334.Checked)+','+booltostr(g335.Checked)+','+booltostr(g336.Checked)
+','+booltostr(g337.Checked)+','+booltostr(jz430.Checked)+edit1.Text+','+edit2.Text+','+edit3.Text+','+
edit4.Text+','+edit10.Text+','+edit5.Text+','+edit6.Text+','+edit7.Text+','+edit8.Text+','+edit9.Text+')';
//showmessage(sql);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql);
adoquery1.ExecSQL;
end;
 
这个问题应该不是很难的
大虾们帮帮忙啊。
 
不是吧,偌大的一个大富翁怎么没人回我啊。
 
'bdl56 values('+booltostr(yw10.Checked)+','+booltostr(yw11.Checked)+
==== 掉了")"吗,+edit9.Text+',)'; 不要后面一个","。最好用参数的形式,这样自己不是为难自己。
 
这个问题我也碰到过,同问一下。。。。
 
'bdl56 values
======== 掉了")"吗
 
去掉了
还是一样的错
 
高手们指点一下啊
 
这个数据表格的字段也太多了麻。如果所有的字段都要插入值,那么insert into 后面的字段名表就可以不要了麻,就可以减少出错的机会。
 
可是不要也还是错啊
 
into gongyi1 (yw10,你插入的表后有“(”,可是在字段结束时好象没有“)”你检查一下,你最后有个字段是bdl56, values前没有“)”
 
用Format函数来格式化字符串来减少出错的机会。如:
s:=format('insert into film(Filed1,Filed2,Filed3,Filed4) values (''%s'',''%s'',%d,''%s'')',['aa','rm',1,'xxx']);
就样就可以排除字符串的的问题。
你的字段也太多了,可分几步来调试,先少用几个字段来试验,然后一次增加几个,如果出错就检查出错的几个,我就是用这种笨方法,很好用。
 
to taorui810:
正如chj168所说我把字段名表去掉了,就不存在你说的问题了,可是结果还是错啊。
 
可能写错字,或少了引号,或类型转换出错.
Showmessage(sql);看看!
 
values 前面少了')'号
 
你是不是没有全部赋值啊?
 
接受答案了.
 
后退
顶部