Fetch范例说明,Paged Orders标签说明:
1,dept数据集
SELECT DEPTNO,DNAME,LOC
FROM DEPT
WHERE
DEPTNO > :iDEPTNO AND
{Where}
ORDER BY DEPTNO
2,首次激活数据集
if tbl_dept.Active then
tbl_dept.Close;
//绑定参数
tbl_dept.ParamByName('iDEPTNO').AsInteger := 0;
tbl_dept.MaxRecords := 2;
tbl_dept.Open;
3,重点来了。TDADataTable实现AfterScroll。光标移动数据集的最后一行,执行if里面代码块。
if DataTable.EOF and not DataTable.Fetching then
begin
DataTable.ParamByName('iDEPTNO').AsInteger := DataTable.FieldByName('deptno').AsInteger;
DataTable.MaxRecords := 2;
DataTable.LoadFromRemoteSource(True); 激活一次,下次直接Load即可。
Label1.Caption := IntToStr(DataTable.RecordCount);
end;
4,主数据集手工写,明细数据集自动生成。通过MasterMappingMode=mmWhere,MasterSource=..,MasterFields=..,DetailFields=..
fefegegegeg