Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第4章 ルーチンを利用するアプリケーションの作成> 4.2 ファンクションルーチンを利用する場合> 4.2.4 ライブラリの作成

4.2.4.2 ライブラリとして登録するCプログラムのコンパイル・リンク

ファンクションルーチンのライブラリは、動的リンクライブラリとして作成します。

動的モードを指定して共有オブジェクトを作成します。

  cc  -KPIC -G  -o  <ライブラリ名>  <ソースファイル名>...

作成したライブラリは、ファンクションルーチン定義文のLIBRARY句で指定するディレクトリに格納してください。

  cc -KPIC -G -o /usr/local/lib/libuserfunc001.so  userfunc001.c

SQLSignalMSG関数を使用する場合は、ライブラリlibsqlsigm.soを動的結合する必要があります。また、インクルードファイルsqlsigm.hをインクルードする必要があります。

 

  cc -KPIC -G -o /usr/local/lib/libuserfunc001.so
   -L/opt/FSUNrdb2b/lib  -lsqlsigm  -I/opt/FSUNrdb2b/include 
        (1)                  (2)              (3)
   userfunc001.c

(1) RDBライブラリパス指定

(2) RDBライブラリ名

(3) RDBインクルードパス指定

動的モードを指定して共有オブジェクトを作成します。

  gcc  -fPIC -shared  -o  <ライブラリ名>  <ソースファイル名>...

作成したライブラリは、ファンクションルーチン定義文のLIBRARY句で指定するディレクトリに格納してください。

  gcc -fPIC -shared -o /usr/local/lib/libuserfunc001.so  userfunc001.c

SQLSignalMSG関数を使用する場合は、ライブラリlibsqlsigm.soを動的結合する必要があります。また、インクルードファイルsqlsigm.hをインクルードする必要があります。

 

  gcc -fPIC -shared -o /usr/local/lib/libuserfunc001.so
     -L/opt/FJSVrdb2b/lib  -lsqlsigm  -I/opt/FJSVrdb2b/include 
           (1)                  (2)              (3)
     userfunc001.c

(1) RDBライブラリパス指定

(2) RDBライブラリ名

(3) RDBインクルードパス指定

Dynamic-Link Library(DLL)を作成します。
DLLの対象プラットフォームは、サーバが動作するプラットフォームと同じにします。x64版64ビットEEまたはx64版64ビットSEの場合はx64、それ以外の場合はWin32を対象プラットフォームとしてDLLを作成します。

Microsoft(R) Visual Studioでの作成手順の例を以下に示します。

  1. [ファイル(F)]メニューから、[新規作成(N)]で[プロジェクト(P)]を選択します。

  2. [新しいプロジェクト]ウインドウにて、[プロジェクトの種類(P)]で[Visual C++]の[Win32]を選択し、[テンプレート(T)]で[Win32 プロジェクト]を選択します。

  3. [新しいプロジェクト]ウインドウにて、[プロジェクト名(N)]を指定し、[場所(L)]にライブラリ作成場所を指定します。[ソリューションのディレクトリを作成(D)]のチェックボックスのチェックを外します。[OK]を選択します。

    プロジェクト名 = USERFUNC001
    位置 = D:\FORSYMFO\FUNCMAKE\USERFUNC001

    指定した位置に、作成したCプログラムファイルを格納しておきます。

    ファンクションルーチンのライブラリ内でSQLSignalMSG関数を使用する場合は、インクルードファイルsqlsigm.hをインクルードする必要があります。このインクルードファイルは、<サーバ機能のインストール先>\ESQL\INCLUDEまたは<クライアント機能のインストール先>\ESQL\INCLUDEに格納されています。

  4. [Win32 アプリケーション ウィザード]ウインドウの[Win32 アプリケーション ウィザードへようこそ]の画面にて[次へ>]を選択します。

  5. [Win32 アプリケーション ウィザード]ウインドウの[アプリケーションの設定]の画面にて、[アプリケーションの種類]で[DLL]を選択します。[追加オプション]で[空のプロジェクト(E) ]のチェックボックスをチェックします。[完了]を選択します。

  6. x64版64ビットEEまたはx64版64ビットSEの場合、事前にVisual Studioのプロジェクト設定で64ビットのプロジェクトを作成しておく必要があります。

    [ビルド(B)]の[構成マネージャ(O)...]から[構成マネージャ]ウィンドウを開きます。
    [プロジェクトのコンテキスト (ビルドまたは配置するプロジェクト構成をチェック)(R):]の[プラットフォーム]のプルダウンから<新規作成...>を選択します。
    [新しいプロジェクト プラットフォーム]ウィンドウを開きます。[新しいプラットフォーム(P):]のプルダウンから“x64”を選択し、[OK]をクリックします。

    その際、[構成マネージャ]の[アクティブ ソリューション プラットフォーム(P):]のプルダウンと、[プロジェクトのコンテキスト (ビルドまたは配置するプロジェクト構成をチェック)(R):]の[プラットフォーム]で、目的のプラットフォームが選択されていることを確認します。

    確認ができたら[構成マネージャ]の[閉じる]をクリックします。

  7. [プロジェクト(P)]の、[既存項目の追加(G)]から、作成したCプログラムファイルをプロジェクトに追加します。

    D:\FORSYMFO\FUNCMAKE\USERFUNC001\USERFUNC001.C
  8. ファンクションルーチンのライブラリ内でSQLSignalMSG関数を使用する場合は、インクルードディレクトリにSymfoware ServerのINCLUDEディレクトリを追加し、サーバのプラットフォームに対応した以下のライブラリをリンクする必要があります。

    1. インクルードパスを設定します。[プロジェクト(P)]の[プロパティ(P)]から[プロパティ]ウィンドウを開きます。[構成プロパティ]を選択し、[構成(C):]のプルダウンから“すべての構成”、[プラットフォーム(P):]のプルダウンから“すべてのプラットフォーム”を選択します。
      [構成プロパティ]の[C/C++]で[全般]の[追加のインクルードディレクトリ]に<サーバ機能のインストール先>\ESQL\INCLUDEまたは<クライアント機能のインストール先>\ESQL\INCLUDEを追加し、[OK]をクリックします。

    2. ライブラリを設定します。[プロジェクト(P)]の、[既存項目の追加(G)]から、使用するライブラリをプロジェクトに追加します。

  9. [ビルド(B)]から[ソリューションのビルド(B)]を選択して、ライブラリを作成します。

  10. 作成したライブラリを、ファンクションルーチン定義文のLIBRARY句で指定するディレクトリに格納します。

    D:\FORSYMFO\FUNCMAKE\USERFUNC001\RELEASE\USERFUNC001.DLL
                 ↓ 複写
    D:\FORSYMFO\FUNCLIB\USERFUNC001.DLL

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008