我一直在收到此错误,而且我正在努力寻找我做错了什么。没有意义的是,结果仍然被发布到数据库,所有字段都是正确的,除了名称字段。在名称字段中由于某种原因输入'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;'看起来很可疑。 – nil
如果你想要做的是获取EventNum的最高现有值并为其添加1,那么这是一个非常低效且容易出错的方式。你在使用哪个后端服务器? – MartynA
是的,执行此操作的典型方法是使用自动增量索引字段。 –