【问题标题】:Delphi Xe2 inserting records into table based on values from another tableDelphi Xe2根据另一个表中的值将记录插入表中
【发布时间】:2012-10-20 07:40:01
【问题描述】:

我有以下代码用于更新数据库中的表,此代码用于使用 zeosdblib 查询组件在 bds 2006 中工作,但现在它在 delphi xe2 中不起作用。谁能告诉我我哪里出错了。谢谢你

procedure TGoodsReceivedForm.btnCategorizeClick(Sender: TObject);
var
  TempCatTotal : Extended;
  nCatogory : string;
begin
TempCatTotal := 0;
zroqryExpcat.Open;
with zroqryExpcat do
begin
 first;
while not Eof do
begin
 zqrySumCategory.Close;
 zqrySumCategory.SQL.Clear;
 zqrySumCategory.SQL.Add('select costcategory,packcost,sum(qty)*packcost as pamount');
 zqrySumCategory.SQL.Add('from pitems');
 zqrySumCategory.SQL.Add('where costcategory=:costcategory and orderno=:orderno');
 zqrySumCategory.SQL.Add('group by costcategory,packcost');
 zqrySumCategory.Params[0].AsString := zroqryExpcat.FieldByName('Description').Value;
 zqrySumCategory.Params[1].AsString := NewPurchaseOrderForm.OrderNumber.Caption ;
 zqrySumCategory.Open;
 zqrySumCategory.First;
 TempCatTotal := 0;
 while not zqrySumCategory.eof do
 begin
  TempCatTotal := TempCatTotal+zqrySumCategory.FieldByName('pamount').AsFloat;
  zqrySumCategory.Next;
 end;
 if TempCatTotal > 0 then
 begin
  zqryInsertExpense.Close;
  zqryInsertExpense.Params[0].AsString := NewPurchaseOrderForm.OrderNumber.Caption ;
  zqryInsertExpense.Params[1].AsString := zqrySumCategory.Params[0].AsString ;
  zqryInsertExpense.Params[2].AsCurrency := TempCatTotal;
  zqryInsertExpense.Params[3].Asinteger := zroqryExpcat.FieldByName('gl_account_no').Value;
  zqryInsertExpense.Params[4].AsDate := ReceivedDate.Date;
  zqryInsertExpense.ExecSQL;
  zqryInsertExpense.Close;
end;
next;
end;
end;
  zqryListExpenseCat.Close;
  zqryListExpenseCat.Params[0].Value := NewPurchaseOrderForm.OrderNumber.Caption;
  zqryListExpenseCat.Open;
end;   

【问题讨论】:

  • 实际上什么不起作用? SQL 语句没有执行,或者您在代码中收到异常?还是SQL数据库中的结果不一致?

标签: delphi delphi-xe


【解决方案1】:

您在该行中缺少'

zqryInsertExpense.Params[3].Asinteger := zroqryExpcat.FieldByName  (gl_account_no').Value;

在 FieldByName( 附近。你确定你正确粘贴了这段代码吗?

【讨论】:

  • 抱歉粘贴不正确,这个例程不会将主表中的累计总数插入到分类表中,但我在 bds2006 中工作,但在 delphi xe2 中没有
  • 你的意思是选择操作在delphi应用程序中没有返回任何结果?您是否直接在db上尝试查询?这个 delphi xe2 应用程序中的任何其他操作都会产生结果吗?这是应用程序中唯一不成功的部分吗?
  • 是的,它不会在 delphi 应用程序中返回任何结果,我对 db 运行选择,例如在 upscenes 数据库工作台中,我得到了结果。这只发生在使用 delphi xe2 编译的应用程序中,它在 delphi 2006 中运行良好
猜你喜欢
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多