LoginSignup
2
1

More than 5 years have passed since last update.

CommandLineでODBCのDSN名を作る for Windows

Last updated at Posted at 2016-01-22

LinuxでTerminal生活を行っていると、
Windows上でもCommandLineで何でもできないものかと考えてしまうものです。
ODBCのDSN名をコマンド一発で作成できないかと調べてみました。

odbcconfというプログラムが秘かに存在するようです。

マイナーDBの設定の引数が分からない

SQL Serverでのodbcconfの指定方法は良く見つかります。
PostgreSQLやMySQLのodbcconfの指定方法はStack Overflowあたりで転がっていますが、
マイナーDBはガン無視されてとってもかわいそうでした。
informixも例外ではなくodbcconfでの引数はマニュアル等に書かれていないようです。

ファイルDSNから探り出す

ファイルDSNというものがあります。
ODBC データソースアドミニストレーターで作成できます。
元々はODBCの設定を持ち運ぶために存在するようです。
File DSNの中身はただのテキストです。
odbcconfはコマンドラインでDSNを設定するツールです。

File DSNの中身の変数をodbcconfで使えるのではないかと考えました。

ファイルDSNを作成

  1. ODBCデータソースアドミニストレーターを開く
     [コントロールパネル] > [管理ツール] > [データ ソース (ODBC)]

  2. ファイルDSNタブを選択

  3. [追加]を押す

  4. データソースの新規作成
      INFORMIX ODBC DRIVER(x64)を選択し[次へ]

  5. 参照を押して保存先を選びます。
    今回はマイドキュメントにします。
    ファイル名「ifxa.dsn」と入力して[保存]
    [次へ]
    [完了]を押す

  6. IBM Informix ODBC Driver Setup画面
    Connectionタブ
    必要な項目を入力
    Enviromentタブ
    必要な項目を入力
    Advancedタブ
    必要な項目にチェック
    Connectionタブの
    [Test Connection]を押して接続できるか確認
    [OK]を押す

  7. Save File DSN
    マイドキュメントが指定されていることを確認し、
    ファイル名「ifxb.dsn」と入力して保存

作成したファイルDSNを見てみる

ドキュメントに保存されているifxa.dsnをメモ帳で開いてみましょう。

ifxa.dsn
[ODBC]
DRIVER=IBM INFORMIX ODBC DRIVER (64-bit)
UID=db_user
DDFP=1
DLOC=ja_JP.932
CLOC=ja_JP.932
PRO=onsoctcp
SERV=1526
SRVR=myserver
HOST=192.168.0.1
DATABASE=mydb

もう一つifxb.dsnも見てみます。

ifxb.dsn
[ODBC]
DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)}
UID=db_user
PWD=EP  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
DATABASE=mydb
HOST=192.168.0.1
SERVER=myserver
SERVICE=1526
PROTOCOL=onsoctcp
CLIENT_LOCALE=ja_JP.932
DB_LOCALE=ja_JP.932
DESCRIBEDECIMALFLOATPOINT=1

ifxa.dsnの方が文字数が少ないですが、
ifxb.dsnの方はPWD、Passwordが設定されています。
そこで、二つのいいとこ取りをして、
こんなコマンドにします。

完成したコマンド

僕の環境で下記のコマンドが動くことを確認しました。

odbcconfの命令
odbcconf /A {CONFIGDSN "IBM INFORMIX ODBC DRIVER (64-bit)” 
“DSN=informix|DRIVER=IBM INFORMIX ODBC DRIVER|UID=id|
PWD=pass|DDFP=1|DLOC=ja_JP.932|CLOC=ja_JP.932|PRO=onsoctcp
|SERV=1526|SRVR=myserver|HOST=192.168.0.1|DATABASE=mydb”}

マイナーDBでodbcconfのDSNに追加する方法が分からない方は一度お試しあれ。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1