Болтают трое молодых программистов о жизни. Двое холостых и один женатый.
- Зря вы говорите, что жениться sux, вот я жене на домашнем компе права админа дал!
Мне нужно записать серию чисел в файл Paradox в blob-поле. Числа получаются из значений компонент, размещенных на форме. Затем мне нужно будет считывать числа из blob-поля и устанавливать согласно им значения компонент. Как мне сделать это?
Вы можете начать свое исследование со следующего модуля:
unit BlobFld;
interfaceuses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, DBTables, DB, ExtCtrls, DBCtrls,
Grids, DBGrids;
type
TFrmBlobFld = class(TForm)
BtnWrite: TBitBtn;
Table1: TTable;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
LbxDisplayBlob: TListBox;
Table1pubid: TIntegerField;
Table1comments: TMemoField;
Table1UpdateTime: TTimeField;
Table1Real1: TFloatField;
Table1Real2: TFloatField;
Table1Real3: TFloatField;
Table1Curr1: TCurrencyField;
Table1Blobs: TBlobField;
Table1Bytes: TBytesField;
CbxRead: TCheckBox;
procedure BtnWriteClick(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private{ Private-Deklarationen }public{ Public-Deklarationen }end;
var
FrmBlobFld: TFrmBlobFld;
implementation{$R *.DFM}type
ADouble = array[1..12] of double;
PADouble = ^ADouble;
procedure TFrmBlobFld.BtnWriteClick(Sender: TObject);
var
i: integer;
myBlob: TBlobStream;
v: longint;
begin
Table1.Edit;
myBlob := TBlobStream.Create(Table1Blobs, bmReadWrite);
try
v := ComponentCount;
myBlob.Write(v, sizeof(longint));
for i := 0 to ComponentCount - 1 dobegin
v := Components[i].ComponentIndex;
myBlob.Write(v, sizeof(longint));
end;
finally
Table1.Post;
myBlob.Free;
end;
end;
procedure TFrmBlobFld.DataSource1DataChange(Sender: TObject; Field: TField);
var
i: integer;
myBlob: TBlobStream;
t: longint;
v: longint;
beginif CbxRead.Checked thenbegin
LbxDisplayBlob.Clear;
myBlob := TBlobStream.Create(Table1Blobs, bmRead);
try
myBlob.Read(t, sizeof(longint));
LbxDisplayBlob.Items.Add(IntToStr(t));
for i := 0 to t - 1 dobegin
myBlob.Read(v, sizeof(longint));
LbxDisplayBlob.Items.Add(IntToStr(v));
end;
finally
myBlob.Free;
end;
end;
end;
procedure TFrmBlobFld.FormShow(Sender: TObject);
begin
Table1.Open;
end;
procedure TFrmBlobFld.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Table1.Close;
end;
end.
Программа на языке Delphi демонстрирует, как записать и прочитать числа из поля BLOB в таблице базы данных Paradox.
Программа состоит из формы с несколькими компонентами:
Кнопка (BtnWrite), которая записывает количество компонентов и их индексы в поле BLOB.
Чекбокс (CbxRead), который позволяет прочитать данные из поля BLOB.
Список (LbxDisplayBlob) для отображения прочитанных данных.
Таблица (Table1) с полем BLOB (Table1Blobs), где хранятся данные.
Работает программа следующим образом:
Когда форма открывается, процедура FormShow открывает таблицу и читает ее содержимое.
Когда кнопка "Write" нажата, процедура BtnWriteClick записывает количество компонентов и их индексы в поле BLOB. Она создает объект TBlobStream и записывает данные в него с помощью метода Write.
Когда форма закрывается, процедура FormClose закрывает таблицу.
Процедура DataSource1DataChange читает данные из поля BLOB, когда чекбокс отмечен. Она создает объект TBlobStream и читает данные из него с помощью метода Read. Читанные данные добавляются в список для отображения.
Программа использует несколько переменных:
i: целочисленная переменная, используемая как счетчик цикла.
myBlob: объект TBlobStream, представляющий поле BLOB.
v: целочисленная переменная, используемая для хранения индексов и количества компонентов.
t: целочисленная переменная, используемая для хранения общего количества компонентов.
Программа также использует несколько процедур:
BtnWriteClick: записывает количество компонентов и их индексы в поле BLOB.
DataSource1DataChange: читает данные из поля BLOB, когда чекбокс отмечен.
FormShow: открывает таблицу, когда форма отображается.
FormClose: закрывает таблицу, когда форма закрывается.
В целом, программа демонстрирует, как записать и прочитать числа из поля BLOB в таблице базы данных Paradox с помощью Delphi.
Написание и чтение чисел в файле Paradox в blob-поле для хранения серии чисел, полученных из значений компонентов на форме, с последующим чтением чисел из blob-поля и установкой соответствующих им значений компонентов.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.