Программа “Наша цель - коммунизм!” выполнила недопустимую операцию и будет закрыта. В случае повторной ошибки обращайтесь к разработчику.

Располагайте DLL в каталоге Interbase/Bin, или в одном из каталогов, в которых ОС обязательно будет произведен поиск этой библиотеки (для Windows это %SystemRoot% и %Path%);

При декларировании функции не следует указывать расширение модуля (в Windows по умолчанию DLL):
declare external function f_SubStr
cstring(254), integer, integer
returns
cstring(254)
entry_point “Substr” module_name “UDF1″
Где UDF1 - UDF1.DLL.

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Программное сжатие размера файла базы Interbase

Предназначена для “сжатия” базы данных IB. Входные параметры: база данных,
имя и пароль к серверу IB. Возвращаемое значение: true - функция выполнилась
успешно, false - ошибка во время выполнения функции. Для работы использует
утилиту gbak.exe ииз поставки InterBase Читать полностью…

{
This unit creates a database on a Interbase-Server at run-time.
The IBConsole is no longer needed.
You can execute an SQL script to create tables.
Try it out!
}

{
Diese Unit erstellt eine Datenbank auf einem Interbase - Server zur Laufzeit des Programms.
Es wird nicht mehr die IBConsole gebraucht.
Dazu kann man im Memo noch ein SQL - Skript ablaufen lassen zum erstellen der Tabellen.
Probiert es einfach aus.
}

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ZTransact, ZIbSqlTr, DB, ZQuery, ZIbSqlQuery,
ZConnect, ZIbSqlCon;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
ZIbSqlQuery1: TZIbSqlQuery;
ZIbSqlTransact1: TZIbSqlTransact;
ZIbSqlDatabase1: TZIbSqlDatabase;
Button3: TButton;
procedure Button1Click(Sender: TObject); // Caption/ Beschriftung : Create Database
procedure Button2Click(Sender: TObject); // Caption/ Beschriftung : SQL-Anweisung
procedure Button3Click(Sender: TObject); // Caption/ Beschriftung : Drop Database
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// Creating the database
// Hier wird durch drucken des Buttons die Datenbank erstellt
//———————————————————————
procedure TForm1.Button1Click(Sender: TObject);
begin
ZIbSqlDatabase1.Database := ‘< >’;// Path to Database
ZIbSqlDatabase1.Host := ‘testserver’;
ZIbSqlDatabase1.Password := ‘masterkey’;
ZIbSqlDatabase1.Login := ‘SYSDBA’;
ZIbSqlDatabase1.CreateDatabase(”);
end;

// Execute the SQL-Script in the memo
// Hier wird durch drucken des Buttons das SQL-Skript im Memo ausgefuhrt
//———————————————————————-
procedure TForm1.Button2Click(Sender: TObject);
begin
ZIbSqlDatabase1.Database := ‘< >’; // Path to Database
ZIbSqlDatabase1.Host := ‘testserver’;
ZIbSqlDatabase1.Password := ‘masterkey’;
ZIbSqlDatabase1.Login := ‘SYSDBA’;
ZIbSqlQuery1.SQL.Clear;
ZIbSqlQuery1.SQL.AddStrings(memo1.Lines);
ZIbSqlQuery1.ExecSQL;
end;

// Deleted the database
// Hier wird durch drucken des Buttons die Datenbank komplette geloscht
//———————————————————————
procedure TForm1.Button3Click(Sender: TObject);
begin
ZIbSqlDatabase1.Database := ‘< >’; // Path to Database
ZIbSqlDatabase1.Host := ‘testserver’;
ZIbSqlDatabase1.Password := ‘masterkey’;
ZIbSqlDatabase1.Login := ‘SYSDBA’;
ZIbSqlDatabase1.DropDatabase;
end;

end.

Автор: delphi | в 7:19 | Рубрики: Базы данных

procedure TVCLScanner.PostUser(const Email, FirstName, LastName: WideString);
var
Connection: TSQLConnection;
DataSet: TSQLDataSet;
begin
Connection := TSQLConnection.Create(nil);
with Connection do
begin
ConnectionName := ‘VCLScanner’;
DriverName := ‘INTERBASE’;
LibraryName := ‘dbexpint.dll’;
VendorLib := ‘GDS32.DLL’;
GetDriverFunc := ‘getSQLDriverINTERBASE’;
Params.Add(’User_Name=SYSDBA’);
Params.Add(’Password=masterkey’);
Params.Add(’Database=milo2:D:\frank\webservices\umlbank.gdb’);
LoginPrompt := False;
Open;
end;
DataSet := TSQLDataSet.Create(nil);
with DataSet do
begin
SQLConnection := Connection;
CommandText := Format(’INSERT INTO kings VALUES(”%s”,”%s”,”%s”)’,
[Email, FirstN, LastN]);
try
ExecSQL;
except
end;
end;
Connection.Close;
DataSet.Free;
Connection.Free;
end;

Автор: delphi | в 7:19 | Рубрики: Базы данных

Пример библиотеки:

library nikelutils

uses SysUtils, Classes;

function MaxInt(var Int1, Int2: Integer): Integer;
far cdecl export;
begin
if (Int1 > Int2) then
Result := Int1
else
Result := Int2;
end;

function MinInt(var Int1, Int2: Integer): Integer;
far cdecl export;
begin
if (Int1 < Int2) then
Result := Int1
else
Result := Int2;
end;

exports
MaxInt;
MinInt;

begin
end.

А это пишим в базе:

DECLARE EXTERNAL FUNCTION MAXINT INTEGER, INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT “MaxInt” MODULE_NAME “nikelutils.dll”;

DECLARE EXTERNAL FUNCTION MININT INTEGER, INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT “MinInt” MODULE_NAME “nikelutils.dll”;