Простой пример работы с базой данных из DLL
Автор: 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.
|