home *** CD-ROM | disk | FTP | other *** search
- program TestDAO;
-
- uses
- Windows, SysUtils,
- DAO,
- OLE2, OleAuto;
-
-
- var
- i: integer;
- rs: Variant;
- v: Variant;
- bm: TBookmark;
- timer: longint;
- begin
- WriteLn( 'DAOTest running...' );
- with CreateEngine{} do try
- try
- WriteLn( 'Opening database...' );
-
- with OpenDatabase( 'C:\Program Files\Opus\DirectAccess\Demo\Data\Demo.mdb', False, False, _ ) do try
-
- WriteLn( 'Opening recordset...' );
- with OpenRecordset( 'Person', dbOpenDynaset, _ ) do try
-
- // time a loop over all records with early-bound DAO
- timer:= GetTickCount{};
- MoveFirst;
- while not EOF do begin
- v:= Collect[0];
- MoveNext;
- end;
- timer:= GetTickCount{} - timer;
- WriteLn( 'Time for early-bound DAO: ', IntToStr(timer) );
-
- // time a loop over all records with Delphi automation late-bound DAO
- rs:= AsVariant;
- timer:= GetTickCount{};
- rs.MoveFirst;
- while not rs.EOF do begin
- v:= rs.Collect[0];
- rs.MoveNext;
- end;
- timer:= GetTickCount{} - timer;
- WriteLn( 'Time for late-bound DAO: ', IntToStr(timer) );
-
- // demonstrate the use of bookmarks
- MoveLast;
- WriteLn( 'Last: ', Collect['Pers_LastName'] );
- bm:= Bookmark;
- MoveFirst;
- WriteLn( 'First: ', Collect['Pers_LastName'] );
- Bookmark:= bm;
- WriteLn( 'Last: ', Collect['Pers_LastName'] );
-
- // demonstrate use of recordset clone
- with Clone{} do try
- FindFirst( 'Pers_FirstName = "Peter"' );
- WriteLn( 'Lastname for Peter is ', Collect['Pers_LastName'] );
- finally Free end; // free the clone
-
- finally
- Free;
- end {with recordset};
-
- finally
- Free;
- end {with database};
- WriteLn( 'DAOTest done.' );
- except
-
- // demonstrate error handling
- on E: EOLEIntError do begin
- WriteLn( 'DAO Error: ' + E.Message );
- with Errors do try
- for i:= 0 to Count-1 do begin
- with Item[i] do try
- WriteLn( 'Message: ' + Description );
- finally
- Free;
- end;
- end;
- finally
- Free;
- end;
- end
- else raise;
-
- end {try error};
- finally
- Free;
- end {with Engine};
-
- end.
-