Mega Code Archive

 
Categories / Delphi / Forms
 

Save a Formula One spreadsheet to a blob field

Title: save a Formula One spreadsheet to a blob field? uses vcf1, dbtables; procedure SaveSpreadsheet(F1Book: TF1Book); var BlobStream: TBlobStream; MyBlob: HGlobal; pblob: Pointer; begin with Datamodule1.Query1 do begin Set8087CW($133f); try Application.ProcessMessages; F1Book.SaveWindowInfo; MyBlob := GlobalAlloc(GMEM_MOVEABLE, 2000); try F1Book.WriteToBlob(MyBlob, 0); pBlob := globalLock(MyBlob); try Blobstream := TBlobStream.Create(TBlobField(FieldByName('QUOTE_BLOB')), bmWrite); try Blobstream.Write(pBlob^, GlobalSize(myBlob)); finally Blobstream.Free; end; finally globalUnlock(MyBlob); end; F1book.IF1Book_Modified := False; finally globalFree(myblob); end; finally Set8087CW(Default8087CW); Application.ProcessMessages; end; end; end; //Depending on your Delphi Version ( //D4 und frühere Versionen brauchen noch: var Default8087CW: Word = $1332; procedure Set8087CW(NewCW: Word); asm MOV Default8087CW,AX FLDCW Default8087CW end;