L'application développée sous Delphi7 et IB6 utilise pour certaines éditions des "modéles" Office ( .xlt ou .dot ).
Ces modéles sont actuellement des fichiers sur le réseau ( ce qui les rend "fragiles", et complique les éventuelles migrations, nom de chemin... ).
Pour fiabiliser et rendre l'application plus homogène j'ai chargé ces fichiers dans des blobs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
  if Opendialog1.Execute then
  begin
    with ibdsBlob do
    begin
      ....
      Insert;
      ibdsBlobNOM_BLOB.value := extractFilename(opendialog1.FileName);
      ibdsBlobRESERVOIR.LoadFromFile(opendialog1.FileName);
      Post;
    end;
  end;
Je n'ai trouvé d'autre solution pour les afficher et les éditer que de les "réécrire" et de les "réouvrir" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
procedure TForm1.ouvre_Xl(filename : AnsiString);
  var
    vMSExcel,vLink,vReadOnly : variant;
    vXLWorkbooks, vXLWorkbook : variant;
    vFilename : AnsiString;
  begin
    vFileName := 'c:\temp\'+filename ;
    ibdsBlobRESERVOIR.SavetoFile(vfilename);
    try
      vMSExcel := GetActiveOleObject('Excel.Application');
    except
     vMSExcel := CreateOleObject('Excel.Application');
    end;
    vMSExcel.Visible := true;
    vLink := unassigned;
    vReadOnly := False;
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Open(vFileName, vLink, vReadOnly);
end;
puis d'effacer par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 DeleteFile(vfilename);
Je suis persuadé qu'il existe une méthode plus performante et plus "propre" pour lancer l'application ( Excel ou Word) et passer le contenu du Blob par un LoadFromStream...mais je n'y arrive pas !

Quelques lumiéres la dessus ?
Merci d'avance