ページの先頭行へ戻る
Enterprise Postgres 10 Community Edition ユーザーズガイド
FUJITSU Software

B.2.2 ODBCドライバ

ODBCドライバの利用方法について説明します。


B.2.2.1 開発環境

ODBCドライバを利用したアプリケーションは、ODBCインタフェースに対応したAccess、Excelなどのアプリケーション、およびVisual Basicなどのツールを利用して開発できます。

開発する環境については、これらのODBCインタフェースに対応したプログラム言語のマニュアルを参照してください。

FUJITSU Enterprise Postgresでは、ODBC 3.5をサポートしています。


B.2.2.2 セットアップ

FUJITSU Enterprise PostgresでODBCドライバを使用したアプリケーションを使用するためには、ODBCドライバであるPsqlODBCのセットアップが必要です。PsqlODBCはFUJITSU Enterprise Postgresのクライアントパッケージに含まれます。

ODBCドライバの登録と、ODBCデータソースの登録方法を説明します。


LinuxB.2.2.2.1 ODBCドライバの登録

LinuxプラットフォームでODBCドライバを使用する場合、以下の手順でODBCドライバを登録してください。

  1. ODBCドライバマネージャ(unixODBC)およびlibtoolのインストール

    参考

    • FUJITSU Enterprise Postgresでは、unixODBCのVersion 2.3以降をサポートしています。

      以下のサイトから、unixODBCをダウンロードしてご利用ください。

      http://www.unixodbc.org/

    • unixODBCを実行するために、libtool 2.2.6以降のインストールが必要です。

      以下のサイトから、libtoolをダウンロードしてご利用ください。

      http://www.gnu.org/software/libtool/

    [注意]

    • ODBCドライバの動作についてはサポートします。

    • unixODBCの動作についてはサポート対象外です。

      

  2. ODBCドライバの登録

    ODBCドライバマネージャ(unixODBC)のodbcinst.iniファイルを編集します。

    参考

    [odbcinst.iniファイルの格納先]

    <unixODBCインストールディレクトリ>/etc/odbcinst.ini

    以下の内容を設定してください。

    定義名

    意味

    設定値

    [ドライバ名]

    ODBCドライバの名前

    ODBCドライバの名前を設定します。

    アプリケーションの種類に応じて、以下の2つの文字列を選択し、これらを空白なしで連結した文字列を“[ ]”で囲んで設定してください。

    • アプリケーションのアーキテクチャ

      • 32ビットアプリケーションが使用するデータソースの場合

        “FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>

      • 64ビットアプリケーションが使用するデータソースの場合

        “FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>x64”

    • アプリケーションが使用する符号化方式

      • Unicodeの場合(UTF-8のみ使用できます)

        “unicode”

      • Unicode以外の場合

        “ansi”

    例: 32ビットアプリケーションで、アプリケーションが使用する符号化方式がUnicodeの場合
    “[FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>unicode]”

    Description

    ODBCドライバの説明

    カレントのデータソースの補足の説明を指定します。任意の説明を設定してください。

    Driver

    ODBCドライバのパス(32ビット)

    ODBCドライバ(32ビット)のパスを設定します。

    • 符号化方式がUnicodeの場合

      <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/odbc/lib/psqlodbcw.so
    • 符号化方式がUnicode以外の場合

      <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/odbc/lib/psqlodbca.so

    Driver64

    ODBCドライバのパス(64ビット)

    ODBCドライバ(64ビット)のパスを設定します。32ビットのオペレーティングシステムを利用している場合設定は不要です。

    • 符号化方式がUnicodeの場合

      <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/odbc/lib/psqlodbcw.so
    • 符号化方式がUnicode以外の場合

      <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/odbc/lib/psqlodbca.so

    FileUsage

    データソースファイルの使用方法

    1を指定してください。

    Threading

    コネクションプーリングのアトミック性の確保レベル

    2を指定してください。

    例内の“<x>”は、製品のバージョンレベルを示します。

    • 32ビット版Linux上で32ビットのODBCドライバを使用する場合の設定例

      [FUJITSU Enterprise Postgres10unicode]
      Description = FUJITSU Enterprise Postgres 10 unicode driver
      Driver      = /opt/fsepv<x>client32/odbc/lib/psqlodbcw.so
      FileUsage   = 1
      Threading   = 2

        

    • 64ビット版Linux上で64ビットのODBCドライバを使用する場合の設定例

      [FUJITSU Enterprise Postgres10x64unicode]
      Description = FUJITSU Enterprise Postgres 10 x64 unicode driver
      Driver64    = /opt/fsepv<x>client64/odbc/lib/psqlodbcw.so
      FileUsage   = 1
      Threading   = 2

        

  

WindowsB.2.2.2.2 ODBCデータソースの登録(Windows(R)の場合)

ODBCデータソースの登録方法を説明します。Windows(R)プラットフォームで、ODBCデータソースを登録する方法は以下の2通りの方法があります。

GUIを使用して登録する

[ODBC データソース アドミニストレーター]を起動し、ODBCデータソースを登録する方法を説明します。

  

ODBCデータソースの登録は、以下の手順で行います。

  1. [ODBC データ ソースアドミニストレーター]を起動します。

    コントロールパネルの[管理ツール]から“ODBCデータソース(32bit)”(注1) または“ODBCデータソース(64bit)”(注1)を選択してください。

    注1) Windows(R)のバージョンによっては、“データ ソース(ODBC)”と表示されます。

      

  2. ODBCデータソースを現在のユーザーのみが使用する場合、[ユーザー DSN]タブを選択してください。同一のコンピュータを利用するすべてのユーザーが利用する場合は、[システム DSN]タブを選択してください。

      

  3. [追加]ボタンをクリックします。

      

  4. [データ ソースの新規作成]画面で、使用可能なODBCドライバの一覧の中から、以下のいずれかのドライバを選択し、[完了]ボタンをクリックします。

    • PostgreSQL Unicode
      アプリケーションの符号化方式として、Unicodeを使用する場合に選択します。

    • PostgreSQL ANSI
      アプリケーションの符号化方式として、Unicode以外を使用する場合に選択します。

      

  5. [PostgreSQL ANSI ODBC Driver (psqlODBC) Setup]画面が表示されますので、必要な項目を入力または選択します。また、必要な項目をすべて入力または選択したあと、[Save]ボタンをクリックします。


    以下の内容を設定してください。

    定義名

    設定値

    Data Source

    ODBCドライバマネージャに登録するデータソース名を指定します。アプリケーションはここで指定した名前を選択してPostgreSQLのデータベースに接続します。本パラメータは省略できません。

    32バイト以内の以下の文字が指定できます。

    • 各国語文字

    • 英数字

    • “_”、“<”、“>”、“+”、“`”、“|”、“~”、“'”、“&”、“””、“#”、“$”、“%”、“-”、“^”、“:”、“/”、“.”

    Description

    カレントのデータソースの補足の説明を指定します。255バイト以内の文字が指定できます。

    • 各国語文字

    • 英数字

    Database

    接続先のデータベース名を指定します。

    SSLMode

    通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。

    SSLModeの設定値は以下のとおりです。

    • disable:非SSLで接続します。

    • allow:非SSLで接続し、失敗したらSSLで接続します。

    • prefer:SSLで接続し、失敗したら非SSLで接続します。

    • require:必ずSSLで接続します。

    • verify-ca:SSLで接続し、信頼できるCAから発行された証明書を使用します。(注1)

    • verify-full:SSLで接続し、信頼できるCAから発行された証明書を使用してサーバのホスト名が証明書と一致するかを検証します。(注1)

    Server

    接続したいデータベースが存在するデータベースサーバのホスト名を18バイト以内で指定します。

    本パラメータは省略できません。

    Port

    リモートアクセスで使用するポート番号を指定します。

    省略値は、5432です。

    Username(注2)

    データベースにアクセスするユーザーを指定します。

    Password(注2)

    データベースにアクセスするユーザーのパスワードを指定します。

    注1) “verify-ca”または“verify-full”を指定する場合、CA証明書ファイルをOSのシステム環境変数PGSSLROOTCERTで以下のように指定してください。

    例)

    変数名:PGSSLROOTCERT
    変数値:CA証明書ファイル

    注2) セキュリティのため、“Username”および“Password”は、アプリケーションで指定してください。

コマンドを使用して登録する

コマンドを使用してODBCデータソースを登録する方法を説明します。

ODBCデータソースの登録には、Microsoft社が提供する以下のツールを利用します。

ツールの使用方法の詳細は、Microsoft社のMSDNライブラリを参照してください。

ODBCConf.exeを利用する場合

ODBCConf.exeはWindows(R)のすべてのプラットホームでサポートされているツールです。

  

指定形式
ODBCConf.exe /A {データソースタイプ "ODBCドライバ名" "オプション名=値[|オプション名=値…]"} [/Lv ファイル名]

指定形式の詳細とパラメータについては、Microsoft社のMSDNライブラリを参照してください。

  

説明:

以下の内容を設定してください。

定義名

設定値

データソースタイプ

データソースのタイプを指定します。

  • “CONFIGSYSDSN”:システムのデータソースを作成します。管理者権限のあるユーザーのみ指定できます。データソースは、同一のコンピュータを利用するすべてのユーザーが利用可能です。

  • “CONFIGDSN”:ユーザーのデータソースを作成します。データソースは、現在のユーザーのみ利用可能です。

ポイント

“CONFIGSYSDSN”を指定する場合、管理者モードのコマンドプロンプトでコマンドを実行する必要があります。

ODBCドライバ名

使用するODBCドライバ名を指定します。以下のいずれかを指定してください。

  • PostgreSQL Unicode
    アプリケーションの符号化方式として、Unicodeを使用する場合に指定します。

  • PostgreSQL ANSI
    アプリケーションの符号化方式として、Unicode以外を使用する場合に指定します。

オプション名

以下の項目の設定が必要です。

  • “DSN”:データソース名を指定します。

  • “Servername”:データベースサーバのホスト名を指定します。

  • “Port”:データベースに接続するためのポート番号を指定します。

  • “Database”:データベース名を指定します。

以下の項目は、任意で指定してください。

  • “UID”:ユーザーID

  • “Password”:パスワード

  • “SSLMode”:通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。SSLModeの設定方法は、“GUIを使用して登録する”の手順5.の表にあるSSLModeの説明を参照してください。

ファイル名

データソースを作成するとき、プロセス情報をファイルに出力することができます。省略可能です。

ODBCConf.exe /A {CONFIGSYSDSN "PostgreSQL Unicode(x64)" "DSN=odbcconf1|Servername=sv1|Port=5432|Database=db01|SSLMode=verify-ca"} /Lv log.txt

ポイント

セキュリティのため、ユーザーID(UID)およびパスワード(Password)は、アプリケーションで指定してください。

Add-OdbcDsnを利用する場合

Add-OdbcDsnは、PowerShellコマンドインタフェースで使用します。

  

指定形式
Add-OdbcDsn データソース名 -DriverName "ODBCドライバ名" -DsnType データソースタイプ -Platform OSアーキテクチャ -SetPropertyValue @("オプション名=値" [,"オプション名=値"…])

指定形式の詳細とパラメータについては、Microsoft社のMSDNライブラリを参照してください。

  

説明:

以下の内容を設定してください。

定義名

設定値

データソース名

データソース名として任意の名前を指定できます。

ODBCドライバ名

使用するODBCドライバ名を指定します。以下のいずれかを指定してください。

  • “PostgreSQL Unicode”
    アプリケーションの符号化方式として、Unicodeを使用する場合に指定します。

  • “PostgreSQL ANSI”
    アプリケーションの符号化方式として、Unicode以外を使用する場合に指定します。

データソースタイプ

データソースのタイプを指定します。

  • “System”:システムのデータソースを作成します。管理者権限のあるユーザーのみ指定できます。データソースは、同一のコンピュータを利用するすべてのユーザーが利用可能です。

  • “User”:ユーザーのデータソースを作成します。データソースは、現在のユーザーのみ利用可能です。

ポイント

“System”を指定する場合、管理者モードのコマンドプロンプトでコマンドを実行する必要があります。

OSアーキテクチャ

システムのOSアーキテクチャを指定します。

  • “32-bit”:32ビットシステム

  • “64-bit”:64ビットシステム

オプション名

以下の項目の設定が必要です。

  • “Servername”:データベースサーバのホスト名を指定します。

  • “Port”:データベースに接続するためのポート番号を指定します。

  • “Database”:データベース名を指定します。

以下の項目は、任意で指定してください。

  • “SSLMode”:通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。SSLModeの設定方法は、“GUIを使用して登録する”の手順5.の表にあるSSLModeの説明を参照してください。

ポイント

Add-OdbcDsnを利用する場合、オプション名として“UID”、“Password”を設定できません。ODBCConf.exeを利用する場合だけ利用できます。

Add-OdbcDsn odbcps1 -DriverName "PostgreSQL Unicode" -DsnType System -Platform 32-bit -SetPropertyValue @("Servername=sv1", "Port=5432", "Database=db01","SSLMode=verify-ca")

LinuxB.2.2.2.3 ODBCデータソースの登録(Linuxの場合)

LinuxプラットフォームでODBCデータソースを登録する方法を説明します。

  

  1. データソースの登録

    データソースの定義ファイルodbc.iniを編集します。

    参考

    [ODBCドライバマネージャ(unixODBC)のインストールディレクトリにあるファイルを編集する]

    <unixODBCインストールディレクトリ>/etc/odbc.ini

    または

    [HOMEディレクトリ配下に新しいファイルを作成する]

    ~/.odbc.ini

    ポイント

    <unixODBCインストールディレクトリ>配下を編集した場合、当該システムにログインするユーザーすべての共通設定として使用されます。HOMEディレクトリ(~/)配下に作成した場合、当該ユーザーのみが使用できる設定として使用されます。

    以下の内容を設定してください。

    定義名

    設定値

    [データソース名]

    ODBCデータソースに付与する名前を設定します。

    Description

    ODBCデータソース定義の説明を設定します。任意の説明を設定してください。

    Driver

    ODBCドライバの名前を設定します。この値は変更しないでください。

    アプリケーションの種類に応じて、以下の2つの文字列を選択し、これらを空白なしで連結した文字列を設定してください。

    • アプリケーションのアーキテクチャ

      • 32ビットアプリケーションが使用するデータソースの場合

        “FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>

      • 64ビットアプリケーションが使用するデータソースの場合

        “FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>x64”

    • アプリケーションが使用する符号化方式

      • Unicodeの場合(UTF-8のみ使用できます)

        “unicode”

      • Unicode以外の場合

        “ansi”

    例: 32ビットアプリケーションで、アプリケーションが使用する符号化方式がUnicodeの場合

    “FUJITSU Enterprise Postgres<FUJITSU Enterprise Postgres クライアント機能のバージョンレベル>unicode”

    Database

    接続するデータベース名を指定します。

    Servername

    データベースサーバのホスト名を指定します。

    Username

    データベースに接続するユーザーIDを指定します。

    Password

    データベースに接続するユーザーのパスワードを指定します。

    Port

    データベースサーバのポート番号を指定します。

    省略した場合は、5432となります。

    SSLMode

    通信の暗号化方法を指定します。SSLModeの設定値は以下のとおりです。

    • disable:非SSLで接続します。

    • allow:非SSLで接続し、失敗したらSSLで接続します。

    • prefer:SSLで接続し、失敗したら非SSLで接続します。

    • require:必ずSSLで接続します。

    • verify-ca:SSLで接続し、信頼できるCAから発行された証明書を使用します。(注)

    • verify-full:SSLで接続し、信頼できるCAから発行された証明書を使用してサーバのホスト名が証明書と一致するかを検証します。(注)

    ReadOnly

    データベースを読み込み専用にするかどうかを指定します。

    • 1:読み込み専用にします

    • 0:読み込み専用にしません

    注) “verify-ca”または“verify-full”を指定する場合、CA証明書ファイルを環境変数PGSSLROOTCERTで以下のように指定してください。

    例)

    export PGSSLROOTCERT=<CA証明書ファイルの格納ディレクトリ>/root.crt

    Linux(32ビット)の場合

    [MyDataSource]
    Description    = FUJITSU Enterprise Postgres
    Driver         = FUJITSU Enterprise Postgres10ansi
    Database       = db01
    Servername     = sv1
    Port           = 5432
    ReadOnly       = 0

    ポイント

    セキュリティのため、ユーザーID(UserName)およびパスワード(Password)は、アプリケーションで指定してください。

  2. 環境変数の設定

    ODBCドライバを使用するアプリケーションを実行するためには、環境変数LD_LIBRARY_PATHに、以下をすべて設定してください。

    • <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/lib

    • <unixODBCのインストールディレクトリ(注)>/lib

    • <libtoolのインストールディレクトリ()>/lib

    注: unixODBCとlibtoolについて、インストールディレクトリを指定せずにインストールした場合は、/usr/localにインストールされます。


B.2.2.2.4 メッセージの言語およびアプリケーションが使用する符号化方式の設定

アプリケーション実行環境の言語の設定、およびアプリケーションが使用する符号化方式の設定について説明します。

言語の設定

アプリケーション実行環境の言語設定は、データベースサーバのメッセージロケールの設定と合わせる必要があります。

アプリケーションが出力するメッセージの中には、アプリケーション側のメッセージに、データベースサーバから送られたメッセージを埋め込む場合があります。このとき、アプリケーション側のメッセージは、アプリケーション側のメッセージロケールに従い、データベースサーバから送られるメッセージは、データベースサーバ側のメッセージロケールに従います。そのため、両方のメッセージロケールが一致していない場合には、言語や符号化方式が混在します。符号化方式が一致しない場合には、文字化けが発生します。

符号化方式の設定

アプリケーションに埋め込まれ、データベースに渡される符号化方式と、実行時のクライアント符号化方式の設定は同じにしてください。データベースサーバ側で正しく符号化方式を変換できなくなります。

アプリケーションの符号化方式は、以下のいずれかの方法で設定してください。

参照

設定できる符号化方式を表す文字列は、“PostgreSQL文書”の“サーバの管理”の“サポートされる文字セット”を参照してください。

例えば、Unicode、8ビットの場合は、“UTF8”という文字列を設定します。

環境変数“PGCLIENTENCODING”設定する場合

Linuxクライアントの符号化方式が“UTF8”の場合の設定例(Bash)

> PGCLIENTENCODING=UTF8; export PGCLIENTENCODING

Windowsクライアントの符号化方式が“UTF8”の場合の設定例

> set PGCLIENTENCODING=UTF8

ポイント

コマンドプロンプトに結果を出力する際、文字化けする場合があります。文字化けした場合は、コマンドプロンプトのフォントの設定を見直してください。

B.2.2.3 データベースへの接続

Access、ExcelまたはVisual Basicなど、ODBCインタフェースに対応したプログラム言語のマニュアルを参照してください。