简体   繁体   English

在Delphi中使用数组插入Into语句不起作用

[英]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. 您不能将WHEREINSERT语句一起使用。

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 in INSERT 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM