DElphi SQL 语句提示“insert into ”语法错误,怎么回事啊?

Close;
SQL.Clear;
SQL.Add('Insert into 数据信息表([序号],[DateTime],[Department],[Type],[Name],[gender]');
SQL.Add('([S1],[S2],[S3],[S4],[S5],[BZ_S])');
SQL.Add('[X1],[X2],[x3],[X4],[X5],[X6],[BZ_X])');
SQL.Add('[M1],[M2],[M3],[M4],[BZ_M])');
SQL.Add('[Q1],[Q2],[Q3],[BZ_Q]');
SQL.Add('([P1],[P2],[P3],[BZ_P])');
SQL.Add('value(:a1,:a2,:a3,:a4,:a5,:a6)');
SQL.Add('(:b1,:b2,:b3,:b4,:b5,:b6)');
SQL.Add('(:c1,:c2,:c3,:c4;:c5;:c6,:c7)');
SQL.Add('(:d1,:d2,:d3,:d4,:d5)');
SQL.Add('(:e1,:e2,:e3,:e4)');
SQL.Add('(:f1,:f2,:f3,:f4)');
Parameters.ParamByName('a1').Value:=XHEdit.Text;
Parameters.ParamByName('a2').Value:=Edit1.Text;
Parameters.ParamByName('a3').Value:=DWEdit.Text;
Parameters.ParamByName('a4').Value:=KSEdit.Text;
Parameters.ParamByName('a5').Value:=XMEdit.Text;
Parameters.ParamByName('a6').Value:=XBEdit.Text;
Parameters.ParamByName('b1').Value:=SEdit1.Text;
Parameters.ParamByName('b2').Value:=SEdit2.Text;
Parameters.ParamByName('b3').Value:=SEdit3.Text;
Parameters.ParamByName('b4').Value:=SEdit4.Text;
Parameters.ParamByName('b5').Value:=SEdit5.Text;
Parameters.ParamByName('b6').Value:=Memo_S.Text;
Parameters.ParamByName('c1').Value:=XEdit1.Text;
Parameters.ParamByName('c2').Value:=XEdit2.Text;
Parameters.ParamByName('c3').Value:=XEdit3.Text;
Parameters.ParamByName('c4').Value:=XEdit4.Text;
Parameters.ParamByName('c5').Value:=XEdit5.Text;
Parameters.ParamByName('c6').Value:=XEdit6.Text;
Parameters.ParamByName('c7').Value:=Memo_X.Text;
Parameters.ParamByName('d1').Value:=MEdit1.Text;
Parameters.ParamByName('d2').Value:=MEdit2.Text;
Parameters.ParamByName('d3').Value:=MEdit3.Text;
Parameters.ParamByName('d4').Value:=MEdit4.Text;
Parameters.ParamByName('d5').Value:=Memo_M.Text;
Parameters.ParamByName('e1').Value:=QEdit1.Text;
Parameters.ParamByName('e2').Value:=QEdit2.Text;
Parameters.ParamByName('e3').Value:=QEdit3.Text;
Parameters.ParamByName('e4').Value:=Memo_Q.Text;
Parameters.ParamByName('f1').Value:=PEdit1.Text;
Parameters.ParamByName('f2').Value:=PEdit2.Text;
Parameters.ParamByName('f3').Value:=PEdit3.Text;
Parameters.ParamByName('f4').Value:=Memo_P.Text;
ExecSql;

运行后提示语法错误。是不是我的多行语句写法有问题?
已全新修改:
出现新的错误 错误的查询表达式在'?;?;?;'中,这是什么意思?

第1个回答  2011-04-08
SQL.Add('Insert into 数据信息表([序号],[DateTime],[Department],[Type],[Name],[gender]');
SQL.Add('([S1],[S2],[S3],[S4],[S5],[BZ_S])');
SQL.Add('[X1],[X2],[x3],[X4],[X5],[X6],[BZ_X])');
SQL.Add('[M1],[M2],[M3],[M4],[BZ_M])');
SQL.Add('[Q1],[Q2],[Q3],[BZ_Q]');
SQL.Add('([P1],[P2],[P3],[BZ_P])');
SQL.Add('value(:a1,:a2,:a3,:a4,:a5,:a6)');
SQL.Add('(:b1,:b2,:b3,:b4,:b5,:b6)');
SQL.Add('(:c1,:c2,:c3,:c4;:c5;:c6,:c7)');
SQL.Add('(:d1,:d2,:d3,:d4,:d5)');
SQL.Add('(:e1,:e2,:e3,:e4)');
SQL.Add('(:f1,:f2,:f3,:f4)');
这一段改成. :
SQL.Add('Insert into 数据信息表([序号],[DateTime],[Department],[Type],[Name],[gender],');
SQL.Add('[S1],[S2],[S3],[S4],[S5],[BZ_S],');
SQL.Add('[X1],[X2],[x3],[X4],[X5],[X6],[BZ_X],');
SQL.Add('[M1],[M2],[M3],[M4],[BZ_M],');
SQL.Add('[Q1],[Q2],[Q3],[BZ_Q],');
SQL.Add('[P1],[P2],[P3],[BZ_P])');
SQL.Add('value(:a1,:a2,:a3,:a4,:a5,:a6,');
SQL.Add(':b1,:b2,:b3,:b4,:b5,:b6,');
SQL.Add(':c1,:c2,:c3,:c4;:c5;:c6,:c7,');
SQL.Add(':d1,:d2,:d3,:d4,:d5,');
SQL.Add(':e1,:e2,:e3,:e4,');
SQL.Add(':f1,:f2,:f3,:f4)');

如果我的解答是正确的,请给我分.
给你分析一下.这个SQL.Add是以增加字符串的方式来添加SQL命令的.就好像字符串操作符 "+"的连接字符用法一样.所以我们在用Query或ADOQuery时要SQL.Close ;SQL.Clear;等.本回答被提问者采纳
第2个回答  2011-04-08
确保那个 sql 语句是:
insert into <table_name> values ( ..... );

不能一次插入多行, 应该一次插入一行

sql.clear
sql.add "insert into TTTT values ( :a1, :a2, :a3, :a4, :a5 );"

然后就绑定 a1-a5 这几个变量, 不能再
sql.add 了追问

可我要绑定的变量有32个啊
而且插入的是同一张表的同一行。分开写的话就变成了插入表的多个行了,这样子不行的
有没有其他的方法啊

追答

只能写成一行 sql.print 出来看看

第3个回答  2011-04-08
逐条插入即可.追问

怎么逐条插入呢?
我要的数据是在同一行的
不是多行数据

第4个回答  2011-04-09
MTVORVCD就能解决!

请关注我的网站: C#程序设计资料
第5个回答  2011-04-08
value--->>>>values