起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 389|回复: 17

[结贴][问题]lQuery**

[复制链接]
发表于 2007-12-25 15:07:32 | 显示全部楼层 |阅读模式
procedure TMainForm.DataSetBroker2BeforeInsert(DataSet: TDataSet);
var
  lQuery:TQuery;
  i:integer;
  j:integer;
begin
     lQuery := TQuery.Create(nil);
    {DataSetBroker2.DataSet.DisableControls;
     DataSetBroker2.DataSet.First;
     try
        for i := 0 to DataSetBroker2.DataSet.RecordCount-1 do
        begin
             DataSetBroker2.DataSet.Edit;
             DataSetBroker2.DataSet.FieldByName('XH').AsInteger:=1;
             lQuery.ConnectionString :='DATABASEURL=Biz:\HGOPERATION\HGOPERATIONDB.DATABASE';
             lQuery.CommandText := 'SELECT JC From XHPMXB Where '+' XHDL = :a '+' and XHGG = :b';
             lQuery.Params.ParamByName('a').AsString := DataSetBroker2.DataSet.FieldByName('HCDL').AsString;
             lQuery.Params.ParamByName('b').AsString := DataSetBroker2.DataSet.FieldByName('XHGG').AsString;
             lQuery.Open;

             lQuery.Edit;
             lQuery.FieldByName('JC').AsInteger:=lQuery.FieldByName('JC').AsInteger-DataSetBroker2.DataSet.FieldByName('SJLYSL').AsInteger;
             lQuery.Post;
             j:=lQuery.FieldByName('JC').AsInteger;
             jsdialogs.showmsg('j','j');
             DataSetBroker2.DataSet.Next;
        end;
     finally
            DataSetBroker2.DataSet.EnableControls;
            DataSetBroker2.DataSet.First;

     end;                           
     lQuery.Free;
end;
这lQuery不能修改数据库里的字段,要怎么改
回复

使用道具 举报

发表于 2007-12-25 16:16:35 | 显示全部楼层
更新到数据库用query.ApplyUpdates;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 08:33:49 | 显示全部楼层
加了query.ApplyUpdates;后会报错

aaaaaa.jpg

393.05 KB, 下载次数: 168

回复 支持 反对

使用道具 举报

发表于 2007-12-26 09:17:24 | 显示全部楼层
楼主,将上方的select 语句改成,让他查询出来没有重复的记录,只有一条
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 10:57:47 | 显示全部楼层
XHPMXB表中数据是只有一条,用来记录余额的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 11:05:25 | 显示全部楼层
错了不是 表中数据只有一条
是查询出来是仓库中某种规格的物品的余额
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 11:08:48 | 显示全部楼层
如 消耗大类 消耗规格     余额
   墨盒     Canon BC-20     6
   墨盒     Canon BC-21     3
      墨盒     Canon BC-02     2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 11:10:26 | 显示全部楼层
程序修改成
procedure TMainForm.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
var
  lQuery:TQuery;
  i:integer;
  j:integer;
begin

     lQuery := TQuery.Create(nil);
     DataSetBroker2.DataSet.DisableControls;
     DataSetBroker2.DataSet.First;
        for i := 0 to DataSetBroker2.DataSet.RecordCount-1 do
        begin

             lQuery.ConnectionString :='DATABASEURL=Biz:\HGOPERATION\HGOPERATIONDB.DATABASE';
             lQuery.CommandText := 'SELECT JC From XHPMXB Where '+' XHDL = :a '+' and XHGG = :b';
             lQuery.Params.ParamByName('a').AsString := DataSetBroker2.DataSet.FieldByName('HCDL').AsString;
             lQuery.Params.ParamByName('b').AsString := DataSetBroker2.DataSet.FieldByName('XHGG').AsString;
             lQuery.Open;
             if (lQuery.FieldByName('JC').AsInteger-DataSetBroker2.DataSet.FieldByName('SJLYSL').AsInteger+
             DataSetBroker2.DataSet.FieldByName('RKSL').AsInteger)<0 then
             begin
                  jsdialogs.showmsg('库存不足,请先入库!','');
                  exit;
             end
             else
             begin
                  lQuery.Edit;
                  lQuery.FieldByName('JC').AsInteger:=lQuery.FieldByName('JC').AsInteger+DataSetBroker2.DataSet.FieldByName('RKSL').AsInteger-DataSetBroker2.DataSet.FieldByName('SJLYSL').AsInteger;
                  lQuery.Post;
                  lQuery.ApplyUpdates;
             end;
             DataSetBroker2.DataSet.Next;
             lQuery.Close;

        end;

            DataSetBroker2.DataSet.EnableControls;
            DataSetBroker2.DataSet.First;


     lQuery.Free;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-26 11:12:50 | 显示全部楼层
执行到lQuery.ApplyUpdates;这条就报错
回复 支持 反对

使用道具 举报

发表于 2007-12-26 11:15:30 | 显示全部楼层
你执行一下'SELECT JC From XHPMXB Where '+' XHDL = :a '+' and XHGG = :b' 查出的记录有几条?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-4 02:41 , Processed in 0.047311 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表