【发布时间】:2017-08-10 13:34:14
【问题描述】:
我遇到了这个错误,我正在努力找出我做错了什么。没有意义的是结果仍然发布到数据库中,除了名称字段之外的所有字段都是正确的。由于某种原因,在名称字段中输入了“dmInfo”。
with dmQuery_u.dmInfo do
begin
dsInfo.Edit;
qryData.SQL.Clear;
qryData.SQL.Add('SELECT * FROM eventinfo ORDER BY eventnumber');
qryData.Open;
qryData.Last;
autonum := qryData['eventnumber'] + 1;
qryData.SQL.Clear;
qryData.SQL.Add(
'INSERT INTO eventinfo (eventnumber, bandname, venue, dateofevent, ticketcost, openingact, amountbooked)');
qryData.SQL.Add(
'VALUES (:eventnumber, :bandname, :venue, :dateofevent, :ticketcost, :openingact, :amountbooked)');
qryData.Parameters.ParamByName('eventnumber').Value := autonum;
qryData.Parameters.ParamByName('bandname').Value := name;
qryData.Parameters.ParamByName('venue').Value := venue;
qryData.Parameters.ParamByName('dateofevent').Value := date;
qryData.Parameters.ParamByName('ticketcost').Value := ticketcost;
qryData.Parameters.ParamByName('openingact').Value := openingact;
qryData.Parameters.ParamByName('amountbooked').Value := amountbooked;
qryData.ExecSQL;
qryData.SQL.Clear;
qryData.SQL.Add('SELECT * FROM eventinfo');
qryData.Last;
qryData.Open;
【问题讨论】:
-
无法对封闭数据集执行此操作通常会将您指向您尝试对封闭数据集执行的操作。
qryData.Last; qryData.Open;看起来很可疑。 -
如果您尝试获取 EventNum 的最高现有值并将其加 1 以作为新行,那么这是一种非常低效且容易出错的方法。您使用的是哪个后端服务器?
-
是的,典型的做法是使用自动递增索引字段。
-
with 子句没用!立即删除它
标签: sql delphi delphi-2010