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

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Steve Schafer

Это простейший 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.

{/codecitation}

Добавить комментарий