Получилось собрать библиотеку с функциями SQL от BlackBox!
## Код:
```
MODULE MyDll;

   IMPORT
      SqlDB;
      
   VAR
      db: SqlDB.Database;

   PROCEDURE Init (id, password, datasource: ARRAY OF CHAR): INTEGER;
      VAR res: INTEGER;
   BEGIN
      SqlDB.OpenDatabase('SqlOdbc', id, password, datasource, SqlDB.sync, SqlDB.showErrors, db, res);
      RETURN res
   END Init;

   PROCEDURE Query (db: SqlDB.Database; IN statement: ARRAY OF CHAR; OUT t: SqlDB.Table);
   BEGIN
      ASSERT(db # NIL, 21);
      t := db.NewTable();
      t.Exec(statement);
   END Query;

   PROCEDURE Start (): INTEGER;
      VAR res: INTEGER;
   BEGIN
      res := Init("user", "password", "myhost");
      IF res = 0 THEN
         RETURN 0
      ELSE
         RETURN res
      END
   END Start;

   PROCEDURE discount*(): INTEGER;
      VAR res: INTEGER; t: SqlDB.Table;
   BEGIN
      res := Start();
      IF db # NIL THEN
         Query(db, "SELECT * FROM siteusers", t);
         RETURN t.rows 
      END;
      RETURN res
   END discount;

END MyDll.

DevLinker.LinkDll
sql.dll := Kernel+ Dates Files HostFiles Log Math Strings Meta Dialog Services Fonts Ports Stores Converters Printers Sequencers Models Views Printing Controllers Properties Mechanisms Containers Documents Windows SqlDrivers HostRegistry HostFonts HostPorts OleData HostMechanisms HostWindows SqlOdbc SqlDB  MyDll # ~
```


Но в HostRegistry надо закомментировать строку одну в разделе инициализации.
## Код:
```
Dialog.appName := name$;
Dialog.version := 16;
(* Dialog.Call("Startup.Setup", "", res); *)
ReadMeasure
```


Проверил в Lazarus, все работает без ошибки теперь, тоже вставлю код, может пригодится кому.

## Код:
```
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,  StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1:   TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  a:     integer;
  b:     real;

implementation

function discount(): integer; cdecl; external 'sql';

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  a := discount();
  Edit1.Text := IntToStr(a);
end;

initialization
  {$I unit1.lrs}

end.
```
