FirebirdのUDFを作成してみた

Firebirdの簡単なUDFをC++Builder XEで作成してみました。

■DLLの作成

DLLを作成します。

C++Builderのメニューから「ファイル」→「新規作成」→「その他」を選択します。

今回は簡単な関数を作成するので、C言語を使い、オプションは指定しません。

INTEGERを2つ受け取り、足し算の結果を返す関数を作成します。

__declspec(dllexport) int sample_add(int *X, int *Y) {
  return *X + *Y;
}

プロジェクトをコンパイルして、DLLを作成します。

■UDFの登録

作成したDLLの配置場所は、「firebird.conf」の「UdfAccess」で設定します。
今回は特に編集をせず、Firebirdをインストールしたフォルダーにある「UDF」フォルダーにコピーします。

Firebirdに接続して、UDFを登録するデータベースに次のSQLを発行します。

DECLARE EXTERNAL FUNCTION sample_add
  INTEGER,INTEGER
  RETURNS INTEGER BY VALUE 
  ENTRY_POINT 'sample_add' MODULE_NAME 'Project1';

ちゃんと登録できたことを確認します。

select sample_add(2,3) from rdb$database;

実行結果

SAMPLE_ADD
5

ちゃんと動作しました。

コメント

  1. Pingback: FirebirdのUDFを作成してみた (2)UDFの引数で文字列を受け取る « 山本隆の開発日誌

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください