Простой пример работы с базой данных из DLL

Это простейший DLL, экспортирующий единственную функцию. Вызывающий ее оператор передает функции значение ключа и строку со значением. Функция открывает демонстрационную базу данных BIOLIFE, находит по ключу запись и добавляет строку после всех записей в поле Notes:

library Mydll;

uses
DBTables;

function Modify(Key: Double; const Info: String): Boolean; export;
var
Table: TTable;
Stream: TBlobStream;
begin
Table := TTable.Create(nil);
Table.DatabaseName := 'D:\';
Table.TableName := 'BIOLIFE';
Table.TableType := ttParadox;
Table.Open;
if Table.FindKey([Key]) then
begin
Result := True;
Table.Edit;
Stream := TBlobStream.Create(TMemoField(Table.FieldByName('Notes')),
bmReadWrite);
Stream.Seek(0, 2);
Stream.Write(Info[1], Length(Info));
Stream.Free;
Table.Post;
end
else Result := False;
Table.Free;
end;

exports
Modify;

begin
end.

Вот как это можно вызвать из приложения:

function Modify(Key: Double; const Info: String): Boolean; far;
external 'MYDLL';

...

Modify(90200, 'Васек Трубачев');

и это классно работает.

Поскольку в DLL вы используете BDE, изучите текущие замечания относительно его использования в файле README.TXT.

 
« Предыдущая статья   Следующая статья »