procedure TFHistoire.btnImportClick(Sender: TObject);
var
QueryWrite: TIBQuery;
dossier, dico, chaine: string;
L: Integer;
B: TFileStream;
Tampon: TMemoryStream;
aFHistoireImport: TFHistoireImport;
bImport: boolean;
sFichier: string;
iNumDossier: integer;
begin
aFHistoireImport := TFHistoireImport.create(self);
try
aFHistoireImport.ShowModal;
bImport := aFHistoireImport.bImport;
iNumDossier := aFHistoireImport.iNumDossier;
sFichier := aFHistoireImport.sFichier;
finally
FreeAndNil(aFHistoireImport);
end;
if bImport then
begin
if not FileExists(sFichier) then
begin
Showmessage('Le fichier : ' + sFichier + ' est introuvable...');
exit;
end;
B := TFileStream.Create('Histoire.dica', fmOpenRead);
B.Seek(0, soFromBeginning);
dossier := IntTostr(iNumDossier);
QueryWrite := TIBQuery.Create(Application);
QueryWrite.database := dm.ibd_BASE;
if dossier = '0' then
begin
// PCM -- dico := B.ReadAnsiString;
QueryWrite.SQL.Clear;
QueryWrite.SQL.Add('delete from ref_histoire'
+ ' where hi_dossier = 0 and hi_dicorigine=''' + dico + '''');
QueryWrite.ExecSQL;
end;
QueryWrite.SQL.Clear;
QueryWrite.SQL.Add('insert into ref_histoire ('
+ ' hi_dossier'
+ ',hi_dicorigine'
+ ',hi_date_texte'
+ ',hi_cat'
+ ',hi_titre'
+ ',hi_texte'
+ ',hi_image'
+ ')'
+ ' values('
+ dossier
+ ',:hi_dicorigine'
+ ',:hi_date_texte'
+ ',:hi_cat'
+ ',:hi_titre'
+ ',:hi_texte'
+ ',:hi_image'
+ ')');
Tampon := TMemoryStream.Create;
B.Seek(0, soFromBeginning);
while B.Position < B.Size do
begin
with QueryWrite do
begin
// PCM -- chaine := B.ReadAnsiString;
ParamByName('hi_dicorigine').AsString := chaine;
// PCM -- chaine := B.ReadAnsiString;
ParamByName('hi_date_texte').AsString := chaine;
// PCM -- L := B.ReadDWord;
ParamByName('hi_cat').Asinteger := L;
// PCM -- chaine := B.ReadAnsiString;
ParamByName('hi_titre').AsString := chaine;
// PCM -- L := B.ReadDWord;
if L = 0 then
ParamByName('hi_texte').value := Null
else
begin
tampon.Clear;
tampon.CopyFrom(B, L);
tampon.Seek(0, soFromBeginning);
ParamByName('hi_texte').LoadFromStream(tampon, ftMemo);
end;
// PCM -- L := B.ReadDWord;
if L = 0 then
ParamByName('hi_image').value := Null
else
begin
tampon.Clear;
tampon.CopyFrom(B, L);
tampon.Seek(0, soFromBeginning);
ParamByName('hi_image').LoadFromStream(tampon, ftBlob);
end;
ExecSQL;
end;
end;
FreeAndNil(B);
tampon.Clear;
FreeAndNil(tampon);
QueryWrite.Close;
FreeAndNil(QueryWrite);
showMessage('Le fichier : ' + sFichier + ' a été importé avec success...');
doOpenQueries;
end;
end;
Partager