一个非常奇怪的问题,高手近来看看

sanzheng 2005-08-25 07:29:14
procedure TForm.ButtonClick(Sender: TObject);
var
No:String;
Money:Double;
begin
ADOQuery2.Close;
ADOQuery2.SQL.ADD('Select Sum(P_Money) as MMoney From P_in Group By P_NO');
ADOQuery2.Open;
While not ADOQuery2.Eof do
begin
NO:=ADOQuery2.FieldByName('P_No').AsString;
Money:=ADOQuery2.FieldByName('MMoney').AsFloat;
ADOQuery.Close;
ADOQuery.SQL.Add('Select P_NO,P_Money from P_Buy where P_No='''+NO+'''');
ADOQuery.Edit;
ADOQuery.FieldByName('P_Money').AsFloat:=Money;
ADOQuery2.Next;
end;
end;

错在哪里?提示说找不到字段MMONEY
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
78hgdong 2005-08-25
  • 打赏
  • 举报
回复
建议加个计算字段
__Ray__ 2005-08-25
  • 打赏
  • 举报
回复
不过这种情况,还是建议你在ADOQuery中设置参数,更新的时候只要改一下参数,然后执行一下(ADOQuery.ExecSQL;)就可以了
__Ray__ 2005-08-25
  • 打赏
  • 举报
回复
procedure TForm.ButtonClick(Sender: TObject);
var
No:String;
Money:Double;
begin
ADOQuery2.Close;
ADOQuery2.SQL.ADD('Select Sum(P_Money) as MMoney From P_in Group By P_NO');
ADOQuery2.Open;
While not ADOQuery2.Eof do
begin
NO:=ADOQuery2.FieldByName('P_No').AsString;
Money:=ADOQuery2.FieldByName('MMoney').AsFloat;
ADOQuery.Close;
ADOQuery.Clear; //这里要清除一下
ADOQuery.SQL.Add('Select P_NO,P_Money from P_Buy where P_No='''+NO+'''');
ADOQuery.Open;
ADOQuery.Edit;
ADOQuery.FieldByName('P_Money').AsFloat:=Money;
ADOQuery.Post;
ADOQuery2.Next;
end;
end;
hevin 2005-08-25
  • 打赏
  • 举报
回复
试试这个:

procedure TForm.ButtonClick(Sender: TObject);
var
No:String;
Money:Double;
begin
ADOQuery2.Close;
ADOQuery2.SQL.ADD('Select P_NO,Sum(P_Money) as MMoney From P_in Group By P_NO');
ADOQuery2.Open;
While not ADOQuery2.Eof do
begin
NO:=ADOQuery2.FieldByName('P_No').AsString;
Money:=ADOQuery2.FieldByName('MMoney').AsFloat;
ADOQuery.Close;
ADOQuery.SQL.Add('Select P_NO,P_Money from P_Buy where P_No='''+NO+'''');
ADOQuery.Edit;
ADOQuery.FieldByName('P_Money').AsFloat:=Money;
ADOQuery2.Next;
end;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧