目的
プログラムからデータベースに接続する際、接続文字列を設定する必要があります。接続文字列は接続方法やRDBMS(OracleやPostgreSQL等)によって微妙に異なったりします。
ネットで調べると接続文字列の定型文が出てきたりしますが、間違っていたり情報が不足していたりする場合があるので自分のPC・環境で適切な接続文字列を取得する方法をここに記録しておこうと思います。
今回はあくまでもODBC接続の場合ですのでご注意を。
DSNファイルを作成して接続文字列のサンプルを取得する
-
まず初めに ODBCデータソースアドミニストレーター を起動します。32bitと64bitの2つがあるので適切な方を選んでください。(接続に使用するプログラムやソフトに合わせる)
-
起動ができたらファイルDSNを選択して
追加
をクリックします。 -
ファイルを出力する場所を聞かれるので適当な場所にDSNファイルを出力します。指定出来たら
次へ
で進んで完了
をクリック。 -
出力されたDSNファイルをメモ帳等で開いてください。
(一部を*
とX
で伏字にしています)
[ODBC]
DRIVER=[ドライバー名]
UID=[ユーザー名]
LPS=XXXX
AST=FLOAT
TSZ=XXXX
STE=*
ODA=*
MLD=X
TLO=*
FBS=XXXXX
FWC=*
CSR=*
MDI=**
MTS=*
DPM=*
NUM=***
BAM=IfAllSuccessful
BNF=*
BTD=*
RST=*
LOB=*
FDL=XX
FRC=XX
QTO=*
FEN=*
XSM=Default
EXC=*
APA=*
DBA=*
DBQ=[データベース名]
SERVER=[サーバー名]
PostgreSQLの場合
[ODBC]
DRIVER=[ドライバー名]
UID=****
XaOpt=X
FetchRefcursors=X
OptionalErrors=X
D6=-XXX
LowerCaseIdentifier=X
UseServerSidePrepare=X
ByteaAsLongVarBinary=X
BI=X
TrueIsMinus1=X
UpdatableCursors=X
LFConversion=X
ExtraSysTablePrefixes=
Parse=X
BoolsAsChar=X
UnknownsAsLongVarchar=X
TextAsLongVarchar=X
UseDeclareFetch=X
CommLog=X
Debug=X
MaxLongVarcharSize=XXXX
MaxVarcharSize=XXX
UnknownSizes=X
Fetch=XXX
ShowSystemTables=X
RowVersioning=X
ShowOidColumn=X
FakeOidIndex=X
Protocol=X.X
ReadOnly=X
SSLmode=disable
PORT=5432
SERVER=[サーバー名]
DATABASE=[データベース名]
DSNファイルを参考に接続文字列を組み立てる
DSNファイルを参考に実際に使用する接続文字列を組み立てます。
一応、DSNファイル内の記述を全て使用しても接続できるのですが、無駄が多いので必要最低限のものだけをピックアップします。
ピックアップする項目は
DRIVER
UID
-
DBQ
もしくはDATABASE
SERVER
の4つです。
実際に接続文字列を組み立てる時は、さらにPWD
も加えます。(パスワードなのでセキュリティ上の都合かDSNファイルには記述されていない)
他のRDBMSでもこれに当たるものをピックアップすれば良いでしょう。
組み立てた接続文字列
以上のことから組み立てた実際の接続文字列は以下のようになります。
DRIVER=[ドライバー名];SERVER=[サーバー名];DBQ=[データベース名];UID=[ユーザー名];PWD=[パスワード];
DRIVER=[ドライバー名];SERVER=[サーバー名];DATABASE=[データベース名];UID=[ユーザー名];PWD=[パスワード];
セミコロン;
で値を区切るのを忘れないようにしましょう。
参考資料