【发布时间】:2016-11-01 11:25:20
【问题描述】:
所以我正在为学校做一个 Delphi 7 项目,需要我将 SQL 与 Delphi 程序集成。我使用 Microsoft 访问作为我的数据库。我正在尝试在 insert into 语句中使用字符串数组,但由于某种原因,我在 INSERT INTO 语句中经常出现语法错误。我的插入代码是:
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 是表示表名的数字,column[t] 是我希望 Stats[t] 出现的列。
我该如何解决这个错误?
【问题讨论】:
-
Inttostr?是表名吗? -
不要直接编写 SQL(这很难调试),而是将查询创建为临时字符串并使用调试器进行检查。一旦你看到生成的字符串是什么样子的,你也许可以自己解决问题。就目前的情况而言,我们不知道统计数据和列是什么或看起来像什么。
-
@Sami, "0 is not valid table name" - ms-access 中没有这样的限制
-
@Sami,“你能把表重命名为 '0' 吗?” - 在访问中你可以。 “这是好办法吗?” - 不。我不会用它作为表名。
-
@Sami 在我看来
o(小写字母'o')是一个保存整数的变量。将您的表称为“1234”是否是一种好习惯是另一个问题。