[英]Insert Into statement using arrays in Delphi isn't working
So I am doing a Delphi 7 project for school that requires me to integrate SQL with a Delphi program. 因此,我正在为学校做一个Delphi 7项目,该项目要求我将SQL与Delphi程序集成在一起。 I am using Microsoft access as my database. 我使用Microsoft Access作为数据库。 I am trying to use arrays of string in a insert into statement, but for some reason i constantly get Syntax error in INSERT INTO statement. 我试图在insert into语句中使用字符串数组,但是由于某些原因,我在INSERT INTO语句中不断收到语法错误。 My insert code is : 我的插入代码是:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO ' + IntToStr(o) + ' (' + column[t] + ')');
ADOQuery1.SQL.Add('VALUES ("' + Stats[t] + '")');
ADOQuery1.SQL.Add('WHERE No = "' + Stats[1] + '" ');
ADOQuery1.ExecSQL;
o
is a number that should indicate the table name, column[t]
is the column that i want Stats[t]
to appear in. o
是一个应该指示表名称的数字, column[t]
是我希望Stats[t]
出现的列。
How can I fix this error? 如何解决此错误?
You can not use WHERE
with an INSERT
statement. 您不能将WHERE
与INSERT
语句一起使用。
SQL INSERT INTO Statement SQL INSERT INTO语句
INSERT INTO Statement (Microsoft Access SQL) INSERT INTO语句(Microsoft Access SQL)
For best practice learn how to use Parameters in Queries 为了获得最佳实践,请学习如何在查询中使用参数
To insert to table : 要插入表格:
ADOQuery1.Parameters.ParamByName('Col1').Value:=Va1;
ADOQuery1.Parameters.ParamByName('Col2').Value:=Va2;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'INSERT INTO YourTable Values(:Col1,:Col2)';
ADOQuery1.ExecSQL;
Note: 注意:
You can't use
WHERE
clause inINSERT INTO
Statment. 您不能在INSERT INTO
语句中使用WHERE
子句。It is better to rename your table ,if the name is a number. 如果名称是数字,则最好重命名表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.