Простой пример работы с базой данных из 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, 'Васек Трубачев');