![]() |
![]() ![]() ![]() ![]() |
|
Сохранение страницы TF1Book в BLOB-полеDelphi , Базы данных , BLOB поляСохранение страницы TF1Book в BLOB-поле
Оформил: DeeCo
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 fruhere Versionen brauchen noch:
var
Default8087CW: Word = $1332;
procedure Set8087CW(NewCW: Word);
asm
MOV Default8087CW,AX
FLDCW Default8087CW
end;
Программный код на языке Delphi для сохранения содержимого объекта TF1Book в поле BLOB (Binary Large OBject) в базе данных. Вот подробное описание каждого участка кода: Главная процедура:
Установка соединения с базой данных:
Сохранение blob-данных:
Запись blob-данных в базу данных:
Очистка:
Альтернативное решение: Если вы используете более современную версию Delphi (D2009 или позднее), можно использовать метод TBlobField.SaveToFile() вместо создания собственного потока blob. Например: Этот код более компактен и легче для чтения, чем оригинальный код. Однако стоит отметить, что TBlobField.SaveToFile() требует Delphi D2009 или позднее, в то время как оригинальный код совместим с ранними версиями Delphi. В статье описывается процедура сохранения страницы TF1Book в BLOB-поле с использованием компонента TBlobStream и функций GlobalAlloc, GlobalLock, GlobalFree для работы с глобальным памятью. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||