DAブラックホール, 日記

今週、Office365のオフラインインストール環境で、「外部データ連結」を介したxls/xlsxへの書き戻しに不具合が生じるという報告があった。

事象の概要

Office365のオフラインインストール環境(2013か2016かクイック実行形式かは不明)にインストールしたDAブラックホール1.7で、
「外部データ連結」を介したxls/xlsxの「読み取り」はできるし解析結果も表示されるけど「書き戻し」だけが反映されないにという不具合報告であった。

ふむ、2010に対する完全な後方互換ではないかもしれないねぇ → 2013/2016

そもそも Office 2013/2016 をクイック実行でインストールした環境では、ODBCドライバーが入っていないという問題があって。このことから、Office 2013/2016 は ODBC ドライバや OLEDBコンポーネントを自身では使っていない可能性が示唆されていたんだよね。
すなわち後方互換性のために、ODBC ドライバや OLEDBコンポーネントをパッケージしているにすぎないのではないか、という印象を持った。

ベンダーがこのあたりを使ってないなら、もしODBCやOLEDB周辺に潜在的な問題があったとしても、ベンダー側に認知されにくいのではないかと思ったのだわ。

DAブラックホールでは

DAブラックホール1.7は、どのバージョンのデータベースエンジンであっても「動けばそれでよい」という思想に基づいて、実装している。

プログラムでは、起動時に
dablack.accdb (DAブラックホールの解析結果保存ファイル)

Provider=Microsoft.ACE.OLEDB.12.0 (Microsoft ACE OLEDB)
で開き、
そこでエラーがスローされれば、必要な Office System Driver が入っていないと判断して、

データベースエンジンのインストールを求める表示(これは32bit環境のもの)

を表示する。

インストールメディアに同梱されている、AccessDatabaseEngine.exe は、Microsoft Access データベース エンジン 2010 再頒布可能コンポーネントの32bit版と同じものであり、通常はこれをインストールすることでDAブラックホール1.7が使用可能になる。
(※64bit環境では他の選択肢があることがサジェッションされる)

逆に言えば、Microsoft ACE OLEDB が使用できる状況であれば、DAブラックホール1.7はなんら案内を行うことなく起動する。データベースのバージョンは問わない。

このため、後方互換(上位互換)のデータベースエンジンが入っているときも、特に警告は出さないので、そのエンジンに問題があったとしても、ユーザーは気が付きにくいかもしれない。

データベースエンジン対応表

DAブラックホール1.7は Microsoft ACE OLEDB を使用するので、基本的には Office 2010 またはそのエンジンを用いるのが最もよい。

ただし環境や将来設計によって、32bitと64bitを使い分ける判断が必要になることもあるので、以下に対応表を示す。

 

環境条件 Windows 10,8,7,
Vista SP1,XP SP3
Windows Vista, XP SP2
MS Office2007/2010 をインストールしている 追加エンジン不要 追加エンジン不要
MS
Office2007/2010
のいずれもイン
ストールしてい
ない
OS は 32bit 2010 Office system ドライバ
AccessDatabaseEngine.exe
2007 Office system ドライバ
AccessDatabaseEngine.exe
OS は 64bit 2010 Office system ドライバ
AccessDatabaseEngine.exe
または
AccessDatabaseEngine_X64.
exe
2007/2010 以外
の Office をイン
ストールしてい
る ( またはその予
定がある )
32bit 版 2010 Office system ドライバ
AccessDatabaseEngine.exe
64bit 版 2010 Office system ドライバ
AccessDatabaseEngine_X64.
exe

赤字はメディアに同梱しているデータベースエンジン

Office 2013/2016で、もし問題が生じた場合は、Office 2010またはそのエンジン(2010 Office system ドライバ)をインストールする、という順序でもいいのではないかと思う。

DAブラックホール, ユーザーサポート

Windows7以降は「原則・電源を切らない」人が増えていると思うのだけど、Windows Updateなどで久しぶりに再起動してたら、DAブラックホールが 解析で「調査元エラー」を吐き出すようになっちゃったという事例報告を散見する。

  • アップデート後のWindowsに、通信端末のドライバーが対応していない(USB接続の場合)
    原因:ドライバーの不適合等により通信ができなくなっている
    確認:デバイスマネージャーで × になっているハードウェアに通信端末のドライバーが含まれていないか確認
    対策:通信端末のメーカーに問い合わせる。メーカーでも対応できないときは、システムの復元を使用してパソコンを以前の状態に戻す。
  • 再起動時にBluetoothが眠ったまま(Bluetooth接続の場合)
    原因:Bluetoothが立ち上がっていない
    確認:デバイスマネージャーで Bluetoothが起動しているか、またはコンピューターの管理→サービスでBluetoothのサービスが起動しているか確認
    対策:Bluetoothで通信できるようにする
  • DAブラックホールの設定がOSによって部分的に変更されている
    原因:Windowsは、OSの更新の際に、ソフトウェアが記録している重要情報(レジストリ)やハードウェア設定を変えてしまうことがある(Windows10で特に多い)
    対策:次項を参照

再起動時にハードウェア&ソフトウェアの設定が変わっているケース

OSの更新によって、ハードウェアの設定が初期化されるなどして、その影響がDAブラックホールの設定に及んでいることがある。

通信デバイスの設定
通信デバイスの設定(赤枠は 特に注意して見るところ)

その場合は、特に赤枠の部分に注意が必要で、中でも「汎用コントロール」のチェックが、入っていたり・あるいは入ってなかったりすることがある。

 

「汎用コントロール」とは、32bitOS用のシリアルポートコントロールのことで、1998年から用いられている歴史の長いコントロールだが、64bit環境で用いると通信機器によっては不具合が発生することがある。

そこでDAブラックホール1.7では、64bit環境でも不具合なく動作する自社製のコントローラーを内蔵しておりデフォルトでは自社製を使用するようになっている。(汎用コントロールのチェックはオフになっている)

ただ通信機器によっては32bit専用の「汎用コントロール」のほうが相性がよいケースもあるので、そのときには汎用コントロールを使うことになる。

再起動時にトラブルが生じているときには、これらの設定に勝手な変化がないか、確認しておくとよいかもしれない。