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 が返される」参照のこと。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite
Share this...

OLEDB を使用して Excel ファイル(2007形式)のデータを読み込むための前準備

メモ書きです。プログラム側については探すといくつか出てくるので、ここではその前準備について書いています。(2011/10時点)

 

OLEDB を使用して 2007 形式の Excel ファイルを読み込むにはコンポーネントをインストールする必要があります。Office や Visual Studio をインストールしてもコンポーネントはインストールされないので個別にインストールする必要があります。

コンポーネントは下記のいずれかをインストールします。

2007 バージョンと 2010 バージョンはどちらをインストールしても大丈夫です。バージョンの違いによってプログラムが変わることはありません。

ただし、32bit と 64bit では以下のような違いがあります。

OS が 32bit 版の場合

2007 (32bit)、2010 (32bit) のいずれかのみインストールできます。

OS が 64bit 版の場合

どのコンポーネントもインストール可能です。ただし、プログラムで使用する際は注意する事項があります。(後程記載)

2007 Office がインストールされている場合

すべてインストールできます。

Office 2010 32bit がインストールされている場合

2010 の 64bit 版のコンポーネントはインストールできません。

Office 2010 64bit がインストールされている場合

2010 の 32bit 版のコンポーネントはインストールできません。ただし、2007 32bit 版のコンポーネントはインストールできます。

データ接続コンポーネント 32bit 版がインストールされている場合

64bit 版のコンポーネントはインストールできません。

データ接続コンポーネント 64bit 版がインストールされている場合

32bit 版のコンポーネントはインストールできません。(実は 2007 のコンポーネントをインストールする際、2010 の存在チェックを行っていないため、2010 64bit ⇒ 2007 32bit の順番でインストールすることは可能です。ただし、正常な動作をしてくれる保証はありません。)

 

64bit OS 環境で OLEDB を使用する際の注意点

上記の理由により 32bit 版と 64bit 版のデータ接続コンポーネントを同時にインストールすることはできません。作成したアプリケーションを起動した際、そのアプリケーションが 32bit なのか 64bit なのかで使用されるデータ接続コンポーネントの bit(32 or 64) が決定されるので注意が必要です。

例えば Office 2010 64bit をインストール済みの場合、データ接続コンポーネントのバージョンは必然的に 2010 64bit 版になります(2007 は除く)。Visual Studio 2010 SP1 で作成するアプリケーションはデフォルトで x86 になっているので、そのまま OLEDB を使用するアプリケーションを作成しても実行時にコンポーネントが存在しないというエラーが発生します。

また、他のアプリケーションの拡張コンポーネントとしてプログラムを作成する際、その対象アプリケーションの bit に依存する点も注意する必要があります。例えば Visual Studio 2010 の拡張プログラムを作成する際、Visual Studio 2010 は 32bit 版しか提供されていないので、作成した拡張コンポーネントは必然的に 32bit モードで動作します。

Share this...

Oracle で OUT引数のあるストアドプロシージャを呼び出すときの引数の指定の仕方

【環境】

  • Oracle 10g Release 2

【内容】

OUT 引数によって変数に値を返す場合は、呼び出し側の OUT 引数の前に「:(コロン)」を追加します。

■例1(out 引数が一番最後にある場合)

・ストアド側 (定義)

StoredFunction(arg1 in varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)

execute StoredFunction(argA, argB, :argC)

■例2(out 引数が一番最初にある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 in varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)

execute StoredFunction(:argA, argB, argC)

■例3(out 引数が複数ある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)

execute StoredFunction(:argA, argB, :argC)
Share this...

Excel ファイルを複数のウインドウに表示させる方法

【環境】

  • Excel 2003
  • Excel 2007
  • Excel 2010

【内容】

Excel ファイルを普通にダブルクリックして開くときに、すでに Excel のウインドウがひとつ以上存在する場合はそちらを使って Excel ファイルが開かれます。そのため、複数の Excel ファイルを見ながら使いたい場合でも、同時に複数のウインドウを開いて閲覧することができません。(Excel 内では MDI のウインドウを使って分割表示などはできますが、デスクトップ上でのウインドウはひとつです)

複数のウインドウで表示させたい場合は、新たに Excel を新規に起動して新しく開いた Excel に Excel ファイルをドラッグ&ドロップすることによって複数ウインドウで閲覧することができます。

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite
Share this...

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 "接続正常終了"
Share this...

クライアントから 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またはグローバル・データベース名。
Share this...

Reporting Service のレポートサーバーに追加したレポートのバックアップ方法

メモです。

■環境

  • SQL Server 2008 R2

■内容

レポートビルダーなどで作成したレポートをレポートサーバー(http://localhost/ReportServer/)にアップロードした場合、レポート単独をファイルとしてバックアップする方法がありません。

アップロードされたレポートは SQL Server データベースに追加された「ReportServer」データベースに保管されているので、このデータを丸ごとバックアップすれば別記憶媒体にバックアップを取ることができます。

バックアップ手順

ReportServer データベースはオンラインバックアップが可能なので、SQL Server Management Studio 等からそのままバックアップタスクでバックアップできます。もちろん SQL を実行してバックアップも可能です。

復元手順

復元するには Reporting Services のサービスを一度止める必要があります。

  1. SQL Server 構成マネージャ等を使用して Reporting Services のサービスを停止する
  2. SQL Server Management Studio などを使用してバックアップした ReportServer を復元する。(上書きで)
  3. Reporting Services のサービスを開始する
  4. レポートの状態がバックアップ時点に復元されているか確認する

 

※メモレベルなのでもしかしたら間違っているかもしれませんので、確実に復元可能か運用前に確認してください。

Share this...

SQL Server 2008 インストール時に「サービス´SQLBrowser´の開始要求に失敗しました。」と表示されてインストールに失敗する場合の対処法

■環境

  • Windows Server 2003 R2 Standard SP2
  • SQL Server 2008 Standard

■エラー内容

SQL Server のインストール設定を行い、インストールを開始しようとすると「サービス´SQLBrowser´の開始要求に失敗しました。」とエラーが表示されてインストールが中断される。

■原因

「MSXML 6 Service Pack 2 (KB973686)」がすでに Windows にインストールされている状態で SQL Server 2008 をインストールしようとすると、古い MSXML 6 をインストールしようとして失敗する。

■対処法

SQL Server 2008 をインストールする前にあらかじめ MSXML 6 SP2 をアンインストールしておき、SQL Server 2008 をインストールする。SQL Server インストール後、Windows Update 等で MSXML 6 SP2 をインストールする。

もし、SQL Server 2008 をインストールしようとして失敗している場合は、先に SQL Server の各コンポーネントをアンインストールしてから MSXML 6 SP2 をアンインストール。その後 SQL Server 2008 をインストールして対処する。

Share this...

SSAS でメタデータ マネージャーのエラーが発生して処理や削除が行えなくなった場合の対処法

※ここに書いている手順は正式な回避方法ではないので自己責任でお願いします。

 

【環境】

  • SQL Server 2008 R2 SP1
  • Windows 7 64bit

 

【エラーの内容】

SSAS プロジェクトで処理や配置、また、Analysis Services サービスでデータベースを削除しようとしたときなど、Analysis Services サービスにかかわるほとんどの操作を行おうとしたときに以下のようなエラーメッセージが表示されて処理が中断される。

====================================================
メタデータ マネージャーでエラーが発生しました。
ID ‘XXXXXX’、名前 ‘XXXXXX’ のディメンションが
‘XXXXXX’ キューブによって参照されていますが、このディメンションは存在しません。
メタデータ マネージャーでエラーが発生しました。
XXXXXX cube を ファイル ‘\?C:Program FilesMicrosoft SQL Server
MSAS10_50.MSSQLSERVEROLAPDataXXXXXX.0.dbXXXXXXX.999.cub.xml’
から読み込み中に、エラーが発生しました。
(Microsoft.AnalysisServices)
=====================================================
※ XXXXXX は環境により異なる

【発生する原因】

不明。SSAS プロジェクトでエラーとなる不正なデータを配置すると発生する?

【回避手順】

  1. SQL Server Management Studio から Analysis Services に接続し、ツリートップにある Microsoft 分析サーバーの右クリックメニューから「停止」を選択して  Analysis Services を停止させる。
  2. エクスプローラーより「C:Program FilesMicrosoft SQL Server
    MSAS10_50.MSSQLSERVEROLAPData」フォルダを開き、エラーの発生するデータベースの以下のフォルダ・ファイルをリネームするか削除する
    ・XXXXXX.0.db フォルダ (0 は任意の数字)
    ・XXXXXX.99.db.xml ファイル (99 は任意の数字)
  3. SQL Server Management Studio から Analysis Services のツリーノードを右クリックし、「開始」をクリックする。
  4. 削除されている SSAS データベースをVisual Studio から再配置する(エラーは訂正しておくこと)。
Share this...

ファイル名を指定して実行するダイアログを開くショートカット

Windows Vista や Windows 7 ではスタートメニューを開いた時点でプログラム名を入力して実行できる検索欄にカーソルが当たるのであまり使われませんが、Windows XP の場合「ファイル名を指定して実行」ダイアログを使う機会は多いと思います。

マウスでクリックして開くのが面倒であればキーボードの「Windowsキー」+「R」で開いてそのままプログラム名を入力することができます。

Share this...