home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / delphi / ODA10 / _SETUP.1 / TestDAO.dpr < prev    next >
Encoding:
Text File  |  1996-04-06  |  2.5 KB  |  95 lines

  1. program TestDAO;
  2.  
  3. uses
  4.   Windows, SysUtils,
  5.   DAO,
  6.   OLE2, OleAuto;
  7.  
  8.  
  9. var
  10.   i:      integer;
  11.   rs:     Variant;
  12.   v:      Variant;
  13.   bm:     TBookmark;
  14.   timer:  longint;
  15. begin
  16.   WriteLn( 'DAOTest running...' );
  17.   with CreateEngine{} do try
  18.     try
  19.       WriteLn( 'Opening database...' );
  20.  
  21.       with OpenDatabase( 'C:\Program Files\Opus\DirectAccess\Demo\Data\Demo.mdb', False, False, _ ) do try
  22.  
  23.         WriteLn( 'Opening recordset...' );
  24.         with OpenRecordset( 'Person', dbOpenDynaset, _ ) do try
  25.  
  26.           // time a loop over all records with early-bound DAO
  27.           timer:= GetTickCount{};
  28.           MoveFirst;
  29.           while not EOF do begin
  30.             v:= Collect[0];
  31.             MoveNext;
  32.           end;
  33.           timer:= GetTickCount{} - timer;
  34.           WriteLn( 'Time for early-bound DAO: ', IntToStr(timer) );
  35.  
  36.           // time a loop over all records with Delphi automation late-bound DAO
  37.           rs:= AsVariant;
  38.           timer:= GetTickCount{};
  39.           rs.MoveFirst;
  40.           while not rs.EOF do begin
  41.             v:= rs.Collect[0];
  42.             rs.MoveNext;
  43.           end;
  44.           timer:= GetTickCount{} - timer;
  45.           WriteLn( 'Time for late-bound DAO: ', IntToStr(timer) );
  46.  
  47.           // demonstrate the use of bookmarks
  48.           MoveLast;
  49.           WriteLn( 'Last: ', Collect['Pers_LastName'] );
  50.           bm:= Bookmark;
  51.           MoveFirst;
  52.           WriteLn( 'First: ', Collect['Pers_LastName'] );
  53.           Bookmark:= bm;
  54.           WriteLn( 'Last: ', Collect['Pers_LastName'] );
  55.  
  56.           // demonstrate use of recordset clone
  57.           with Clone{} do try
  58.             FindFirst( 'Pers_FirstName = "Peter"' );
  59.             WriteLn( 'Lastname for Peter is ', Collect['Pers_LastName'] );
  60.           finally Free end; // free the clone
  61.  
  62.         finally
  63.           Free;
  64.         end {with recordset};
  65.  
  66.       finally
  67.         Free;
  68.       end {with database};
  69.       WriteLn( 'DAOTest done.' );
  70.     except
  71.  
  72.       // demonstrate error handling
  73.       on E: EOLEIntError do begin
  74.         WriteLn( 'DAO Error: ' + E.Message );
  75.         with Errors do try
  76.           for i:= 0 to Count-1 do begin
  77.             with Item[i] do try
  78.               WriteLn( 'Message: ' + Description );
  79.             finally
  80.               Free;
  81.             end;
  82.           end;
  83.         finally
  84.           Free;
  85.         end;
  86.       end
  87.       else raise;
  88.  
  89.     end {try error};
  90.   finally
  91.     Free;
  92.   end {with Engine};
  93.   
  94. end.
  95.