VBScript から ADO を使ったデータベース接続に必要な接続文字列

メモです。.NET で ADO.NET を使った時と接続文字列が違うので注意が必要ですね。

 

Windows 認証

Driver={SQL Server}; server=<サーバー名>; database=<データベース名>;

 

SQL Server 認証

Driver={SQL Server}; server=<サーバー名>; database=<データベース名>; uid=<ユーザー名>; pwd=<パスワード>;

 

Windows 認証と SQL Server 認証の違いはユーザー名とパスワードの指定があるかないかの違いだけで他は同じです。

]]>

SSIS で Excel ファイルを読み込む際に IMEX パラメータを使用する方法

メモです。

接続マネージャーで「Excel 接続マネージャー」を作成後、Excel 接続マネージャーを選択しプロパティを表示する。

プロパティから「ConnectionString」の項目を探し、接続文字列に直接「IMEX=1」を追加する。

【例】

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES";

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES;IMEX=1";

]]>

OLEDB を使用して Excel ファイル(2007 形式)を読み込む際の接続文字列

メモです。必要そうな項目のみ列挙しています。

接続文字列の例

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:Test.xlsx; Extended Properties="Excel 12.0; HDR=YES; IMEX=1;”

接続文字列パラメータ

Provider 使用する OLEDB のバージョン。2007 形式の Excel ファイル(.xlsx)を読み込みたい場合は「Microsoft.ACE.OLEDB.12.0」を指定。2003 以前の形式のみ(.xls)で構わないのであれば「Microsoft.Jet.OLEDB.4.0」も可。
Data Source 読み込む Excel ファイル名。またはファイルパス。
Extended Properties 拡張パラメータ。(以下参照)

 

Extended Properties パラメータ

Excel {バージョン} ISAMバージョン。2003 以前の形式の場合は「8.0」。2007 形式の場合は「12.0」
HDR シートの1行目をヘッダ列として扱う場合は「YES」、1行目から行データとして扱う場合は「NO」
IMEX 0:エクスポート モード、1:インポート モード、2:リンク モード。通常指定する必要がないが、1 を指定すると、セルの値がすべて表示されているテキストのまま読み込める。例えば、セルに「2011/10/1」と入力し、書式設定によって「2011年10月1日」と表示されている場合、IMEX に 1 を指定すると取得するデータは「2011年10月1日(string型)」となる。IMEX を指定していない場合はエンジンの自動解釈によって「2011/10/1(Date型)」として読み込まれるが、前後行の入力内容によって型の解釈が変化する。詳しくは「[PRB] DAO の OpenRecordset を使用すると Excel の値として NULL が返される」参照のこと。
]]>

VBScript から ADO を使用して Oracle データベースに接続するサンプルプログラム

Option Explicit Dim objADO ' ADO オブジェクトを作成 Set objADO = CreateObject("ADODB.Connection") ' ADO を使い Oracle データベースを開きます ' $ConnectionString$ : 接続文字列 ' $UserName$ : ユーザー名 ' $Password$ : パスワード objADO.Open "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=$ConnectionString$; UID=$UserName$; PWD=$Password$;" ' ADO をクローズします objADO.Close Set objADO = Nothing msgbox "接続正常終了" ]]>

クライアントから Oracle データベースに接続するための事前設定 (クライアント側)

メモ書きです。

【環境】

  • Oracle 10g Release 2 データベース (別サーバーに存在)
  • クライアントに Oracle 10g Release 2 管理者ツール
  • Windows Vista (クライアント)
  • Windows Server 2003 (Oracle サーバー)

 

パターン1:Net Manager を使う方法

  1. スタートメニューから「Oracle - XXXXXX」「コンフィグレーションおよび移行ツール」「Net Manager」を選択して実行。(XXXXX はインストール時の名前)(ツールがない場合は必要なツールがインストールされていない)
  2. 「Oracle Netの構成」「ローカル」「サービス・ネーミング」を選択し、左にある「作成」ボタンをクリック
  3. ネット・サービス名を入力。(後で接続文字列に使用される)
  4. TCP/IPを選択
  5. データベースのあるホスト名(PC名)とポート番号(デフォルト1521)を入力
  6. サービス名を入力。(通常グローバル・データベース名)
  7. テストボタンをクリックし、ログイン変更ボタンをクリック。接続するためのユーザー名とパスワードを入力して接続できるかテストを行う。
  8. 完了をクリック。
  9. サービス・ネーミングのツリーに作成した接続名が追加されていることを確認し、Net Manager を閉じる。
  10. 保存確認ダイアログが表示されるので保存を行う。(ここまでしないと設定は反映されません)(ちなみにメニューに保存がありそうですが、クリックしてもメニューが展開されないので確認できず)(保存するとパス「%Oracle_Home%networkADMINtnsnames.ora」)ファイルが作成、または更新される)

 

パターン2:tnsnames.ora ファイルを直接書き換える方法

Net Manager を使うと「tnsnames.ora」ファイルが更新されますが、手動で書き換えることもできます。「tnsnames.ora」ファイルは以下のフォルダにあります。

  • %Oracle_Home%networkADMINtnsnames.ora

※特にフォルダを意識せずインストールした場合は「C:oracleproduct[Version][InstallName]networkADMINtnsnames.ora」です。

一つの接続設定ごとに以下のテキストが追加されています。($XXXXX$がパラメータなので適時置き換えてください。)

$ConnectionName$ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = $Protocol$)(HOST = $HostName$)(PORT = $PortNumber$))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = $ServiceName$)
    )
  )
パラメータ名 説明
$ConnectionName$ 接続名。他システムで接続文字列に使用します。
$Protocol$ 通信プロトコル。通常は「TCP」
$HostName$ Oracle データベースのあるホスト名(PC名)
$PortNumber$ ポート番号。デフォルトでは「1521」
$ServiceName$ サービス名。SIDまたはグローバル・データベース名。
]]>