Советы по Delphi

         

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

- Steve Schafer [000789]



Содержание раздела