Android smartphone

2009-10-11

save a Formula One spreadsheet to a blob field

Author: Brett McLean

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), you will need:
//D4 und frühere Versionen brauchen noch:

var
Default8087CW: Word = $1332;

procedure Set8087CW(NewCW: Word);
asm
MOV Default8087CW,AX
FLDCW Default8087CW
end;



Hotmail: Trusted email with powerful SPAM protection. Sign up now.

No comments: