TestDBindexer.pp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. program TestDBindexer;
  2. {$mode objfpc}{$H+}
  3. uses
  4. {$IFDEF UNIX}{$IFDEF UseCThreads}
  5. cthreads,
  6. {$ENDIF}{$ENDIF}
  7. Classes, SysUtils, sqldb, dbIndexer, ibconnection, fbindexdb, fpindexer;
  8. {$R *.res}
  9. Function SetupDB : TCustomIndexDB;
  10. Var
  11. IB: TFBIndexDB;
  12. begin
  13. IB := TFBIndexDB.Create(nil);
  14. try
  15. IB.DatabasePath := Paramstr(2);
  16. IB.UserName := 'username';
  17. IB.Password := 'secret';
  18. if not FileExists(IB.DatabasePath) then
  19. IB.CreateDB
  20. else
  21. begin
  22. IB.Connect;
  23. IB.CreateIndexerTables;
  24. end;
  25. except
  26. FreeAndNil(IB);
  27. Raise;
  28. end;
  29. Result:=IB;
  30. end;
  31. Var
  32. DBI : TDBIndexer;
  33. Start : TDateTime;
  34. begin
  35. If ParamCount<>2 then
  36. begin
  37. Writeln('Usage ',ExtractFileName(ParamStr(0)),' dbpath indexdbpath');
  38. Halt(1);
  39. end;
  40. DBI:=TIBIndexer.Create(Nil);
  41. try
  42. DBI.IndexDB:=SetupDB;
  43. try
  44. DBI.Database:=TIBConnection.Create(DBI);
  45. DBI.Database.Transaction:=TSQLTransaction.Create(DBI);
  46. DBI.Database.DatabaseName:=ParamStr(1);
  47. DBI.Database.UserName:='username';
  48. DBI.Database.Password:='SysteemD';
  49. DBI.Database.Connected:=True;
  50. DBI.SkipTables.add('AANWEZIGHEIDSREGISTER');
  51. DBI.SkipTables.add('EDISONZENDING');
  52. Start:=Now;
  53. DBI.IndexDatabase;
  54. Writeln('Finished : ',FormatDateTime('hh:nn:ss',Now-Start));
  55. finally
  56. DBI.IndexDB.Free;
  57. end;
  58. finally
  59. DBI.Free;
  60. end;
  61. end.