使用QuickRep1.Preview后的问题以及如何知道当前记录号?特急!!(50分)

  • 主题发起人 主题发起人 hzyingmu
  • 开始时间 开始时间
H

hzyingmu

Unregistered / Unconfirmed
GUEST, unregistred user!
1。为什么每次执行“QuickRep1.Preview; ”后,数据库的当前字段就变成数据库的最后一条记录,即用DBGrid1观察数据库,光标已经移到最后一条记录了。如何保持当前字段?(DBF文件中)。
2。我想实现类似Foxpro中的Recno()函数的功能,使用了Recno,但显示的值不对,(我没有使用Filter之类的命令),不知如何实现该功能,我使用的是Delphi4,有人说可以使用DBMS中的变量,不知具体如何实现,我使用的数据库是DBF和Oracle8,请高手赐教!谢谢!
 
1。在QuickRep1.Preview前记录下当前记录指针完成后设置回原来的即可。如:

Temp:=Table1.ActiveRecord;
QuickRep1.Preivew;
Table1.ActiveRecord:=Temp;

2。我没有用过Foxpro,不过我想Recno()应该用来获得记录数目吧通过使用
TDataSet.RecordCount即可。如:

Table1.RecordCount
 
1。用BOOKMARK。
D3的例子:

procedure TForm1.CopyDataClick(Sender: TObject);

var
SavePlace: TBookmark;
PrevValue: Variant;
begin
with Table1 do
begin
{ get a bookmark so that we can return to the same record }
SavePlace := GetBookmark;
{ move to prior record}
FindPrior;
{ get the value }
PrevValue := Fields[0].Value;
{Move back to the bookmark
this may not be the next record anymore
if something else is changing the dataset asynchronously }
GotoBookmark(SavePlace);

{ Set the value }
Fields[0].Value := PrevValue;
{ Free the bookmark }
FreeBookmark(SavePlace);
end;

end;

2。我不知道Foxpro中的Recno()函数的功能。
爱莫能助。
 
1、使用bookmark
2、不要再使用RECNO()之类的东东,SQL不支持它。忘记它是最佳选择。
 
多人接受答案了。
 
后退
顶部