home *** CD-ROM | disk | FTP | other *** search
- program Generate_DataBase;
- var Table1:TTable;
- pNewDef: TFieldDef;
- e,sz,flg,Unique:integer;
- fn:string;
- findtime,seentime:TDateTime;
- found:boolean;
- begin
- {Do something before file search begins}
- Table1:=TTable.Create(nil);
- Table1.Active := false;
- Table1.DatabaseName := 'BCDEMOS';
- Table1.TableType := ttParadox;
- Table1.TableName := 'Searcher_v1_0_'+PresetName;
-
- if not Table1.Exists then
- begin
- Table1.FieldDefs.Clear;
-
- pNewDef := Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'Unique';
- pNewDef.DataType := ftInteger;
- pNewDef.Required := true;
-
- pNewDef := Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'FilePathName';
- pNewDef.DataType := ftString;
- pNewDef.Size := 1024;
-
- pNewDef:= Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'FileSize';
- pNewDef.DataType := ftInteger;
-
- pNewDef:= Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'FileFlags';
- pNewDef.DataType := ftInteger;
-
- pNewDef:= Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'FileFindDate';
- pNewDef.DataType := ftDateTime;
-
- pNewDef:= Table1.FieldDefs.AddFieldDef;
- pNewDef.Name := 'FileSeenDate';
- pNewDef.DataType := ftDateTime;
-
- Table1.IndexDefs.Clear;
- Table1.IndexDefs.Add('','Unique', ixUnique+ixPrimary);
- Table1.IndexDefs.Add('FilePathNameIndex','FilePathName', ixCaseInsensitive);
-
- Table1.CreateTable;
- end;
- Table1.Open;
- Table1.DisableControls;
- if Table1.RecordCount<>0 then begin Table1.Last;Unique:=Table1.FieldValues['Unique']+1;end
- else Unique:=0;
- Table1.IndexName := 'FilePathNameIndex';
- repeat
- e:=WaitSearchEvent(fn,sz,flg,findtime,seentime);
- {WaitSearchEvent returns 1 on every found file}
- if e=1 then
- begin
- Table1.EditKey;
- Table1.FieldList.Fields[1].AsString:=fn;
- found:=Table1.GotoKey;
- if not found then
- begin
- Table1.Append;
- Table1.FieldList.Fields[0].AsInteger:=Unique;
- Table1.FieldList.Fields[1].AsString:=fn;
- Table1.FieldList.Fields[4].AsDateTime:=findtime;
- Unique:=Unique+1;
- end else Table1.Edit;
- Table1.FieldList.Fields[2].AsInteger:=sz;
- Table1.FieldList.Fields[3].AsInteger:=flg;
- Table1.FieldList.Fields[5].AsDateTime:=seentime;
- Table1.Post;
- end;
- until e<=0;
- {Do something after file search finished}
- Table1.Close;
- Table1.Free;
- end.
-