home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 April / CHIP_CD_2005-04.iso / software / netv / NVinst.exe / $INSTDIR / Scripts / Searcher / Generate_DataBase.nvs next >
Encoding:
Text File  |  2005-02-22  |  2.2 KB  |  83 lines

  1. program Generate_DataBase;
  2. var Table1:TTable;
  3.     pNewDef: TFieldDef;
  4.     e,sz,flg,Unique:integer;
  5.     fn:string;
  6.     findtime,seentime:TDateTime;
  7.     found:boolean;
  8. begin
  9. {Do something before file search begins}
  10. Table1:=TTable.Create(nil);
  11. Table1.Active := false;
  12. Table1.DatabaseName := 'BCDEMOS';
  13. Table1.TableType := ttParadox;
  14. Table1.TableName := 'Searcher_v1_0_'+PresetName;
  15.  
  16. if not Table1.Exists then
  17. begin
  18.   Table1.FieldDefs.Clear;
  19.  
  20.   pNewDef := Table1.FieldDefs.AddFieldDef;
  21.   pNewDef.Name := 'Unique';
  22.   pNewDef.DataType := ftInteger;
  23.   pNewDef.Required := true;
  24.  
  25.   pNewDef := Table1.FieldDefs.AddFieldDef;
  26.   pNewDef.Name := 'FilePathName';
  27.   pNewDef.DataType := ftString;
  28.   pNewDef.Size := 1024;
  29.  
  30.   pNewDef:= Table1.FieldDefs.AddFieldDef;
  31.   pNewDef.Name := 'FileSize';
  32.   pNewDef.DataType := ftInteger;
  33.  
  34.   pNewDef:= Table1.FieldDefs.AddFieldDef;
  35.   pNewDef.Name := 'FileFlags';
  36.   pNewDef.DataType := ftInteger;
  37.  
  38.   pNewDef:= Table1.FieldDefs.AddFieldDef;
  39.   pNewDef.Name := 'FileFindDate';
  40.   pNewDef.DataType := ftDateTime;
  41.  
  42.   pNewDef:= Table1.FieldDefs.AddFieldDef;
  43.   pNewDef.Name := 'FileSeenDate';
  44.   pNewDef.DataType := ftDateTime;
  45.  
  46.   Table1.IndexDefs.Clear;
  47.   Table1.IndexDefs.Add('','Unique', ixUnique+ixPrimary);
  48.   Table1.IndexDefs.Add('FilePathNameIndex','FilePathName', ixCaseInsensitive);
  49.  
  50.   Table1.CreateTable;
  51. end;
  52. Table1.Open;
  53. Table1.DisableControls;
  54. if Table1.RecordCount<>0 then begin Table1.Last;Unique:=Table1.FieldValues['Unique']+1;end
  55.                          else Unique:=0;
  56. Table1.IndexName := 'FilePathNameIndex';
  57. repeat
  58. e:=WaitSearchEvent(fn,sz,flg,findtime,seentime);
  59. {WaitSearchEvent returns 1 on every found file}
  60. if e=1 then
  61. begin
  62. Table1.EditKey;
  63. Table1.FieldList.Fields[1].AsString:=fn;
  64. found:=Table1.GotoKey;
  65. if not found then
  66. begin
  67. Table1.Append;
  68. Table1.FieldList.Fields[0].AsInteger:=Unique;
  69. Table1.FieldList.Fields[1].AsString:=fn;
  70. Table1.FieldList.Fields[4].AsDateTime:=findtime;
  71. Unique:=Unique+1;
  72. end else Table1.Edit;
  73. Table1.FieldList.Fields[2].AsInteger:=sz;
  74. Table1.FieldList.Fields[3].AsInteger:=flg;
  75. Table1.FieldList.Fields[5].AsDateTime:=seentime;
  76. Table1.Post;
  77. end;
  78. until e<=0;
  79. {Do something after file search finished}
  80. Table1.Close;
  81. Table1.Free;
  82. end.
  83.