有鬼!来抓鬼呀!为何在一个多表查询(ADOQUERY)中提交(Post)了一条记录以后,发现这条记录中的数据又不见了?不知道哪位会抓这鬼的!
Drate 博客专家认证 2002-10-31 07:58:41 数据库:Oracle 9i
ADO版本:2.7 CN
DELPHI :V6.0
BodyQuery的属性设置LockType为ltBatchOptimistic;
这是我的SQL语句:
With BodyQuery do
begin
Close;
SQL.Clear;
SQL.Add('select S.LISTNO , G.GDSID ,G.GDSINID , G.GDSNAME , G.SPECIFY ,G.UOMID ,');
SQL.Add('S.UNITPRICE , S.TOTALQTY ,S.DISCOUNT ,S.AMOUNT ,S.ROWNO');
SQL.Add('FROM STOCKIMPORTBODY S ,GOODS G WHERE S.GDSINID = G.GDSINID');
SQL.Add('and ListNO = :ListNO ORDER BY ROWNO');
Parameters.ParamByName('ListNO').Value := '00001';
Open;
Filtered := False;
FilterGroup := fgNone;
end;
而我在BeforePost,AfterPost 事件中写:
procedure TOrigInputStockForm.BodyQueryBeforePost(DataSet: TDataSet);
begin
showmessage(dataset.Fields.Fields[1].AsString);{可以正常看到输入的数据}
end;
procedure TOrigInputStockForm.BodyQueryAfterPost(DataSet: TDataSet);
begin
showmessage(dataset.Fields.Fields[1].AsString);{显示的只有一片空白,但插入的这条记录还存在,只不过没有内容!}
end;
如果我修改原来已存在的记录的话,则会出现在BeforePost显示的是你修改后的值,但到了AfterPost时,显示的就还是最开始没有被修改的值!
不知道这是为什么?