0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ODBC接続に必要な接続文字列を取得する

Last updated at Posted at 2024-08-07

目的

プログラムからデータベースに接続する際、接続文字列を設定する必要があります。接続文字列は接続方法やRDBMS(OracleやPostgreSQL等)によって微妙に異なったりします。
ネットで調べると接続文字列の定型文が出てきたりしますが、間違っていたり情報が不足していたりする場合があるので自分のPC・環境で適切な接続文字列を取得する方法をここに記録しておこうと思います。
今回はあくまでもODBC接続の場合ですのでご注意を。

DSNファイルを作成して接続文字列のサンプルを取得する

  1. まず初めに ODBCデータソースアドミニストレーター を起動します。32bitと64bitの2つがあるので適切な方を選んでください。(接続に使用するプログラムやソフトに合わせる)

  2. 起動ができたらファイルDSNを選択して追加をクリックします。

  3. データソースの新規作成で使用するデータソースのドライバーを選択してください。選択したら[次へ]で進みます。
    image.png

  4. ファイルを出力する場所を聞かれるので適当な場所にDSNファイルを出力します。指定出来たら次へで進んで完了をクリック。

  5. 接続情報を入力する画面が開くので入力する。(接続可能な正しい接続情報を入力しないと、この後で接続文字列を得られない)
    image.png

  6. 出力されたDSNファイルをメモ帳等で開いてください。
    (一部を*Xで伏字にしています)

DNSファイル(Oracleの場合)
[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の場合
DNSファイル(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でもこれに当たるものをピックアップすれば良いでしょう。

組み立てた接続文字列

以上のことから組み立てた実際の接続文字列は以下のようになります。

接続文字列(Oracleの場合)
DRIVER=[ドライバー名];SERVER=[サーバー名];DBQ=[データベース名];UID=[ユーザー名];PWD=[パスワード];
接続文字列(PostgreSQLの場合)
DRIVER=[ドライバー名];SERVER=[サーバー名];DATABASE=[データベース名];UID=[ユーザー名];PWD=[パスワード];

セミコロン;で値を区切るのを忘れないようにしましょう。

参考資料

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?