2013年2月21日木曜日

Windows8(64bit)のAccessからOracleにODBCで接続ができない

以外にはまったのでメモ。


現象
Oracle 9iが稼働しているサーバに対してWindows8(64bit)端末からAccess2007経由で
ODBC接続が行えない。


エラー内容
ODBC--呼び出しが失敗しました。
[Oracle][ODBC][Ora]ORA-12154: TNS: 指定された接続識別子を解決できませんでした。
(#12154)[Microsoft][ODBC Driver Manager] ドライバーのSQLSetConnectAttrは失敗しました。(#0)[Microsoft][ODBC Driver Manager] ドライバーのSQLSetConnectAttrは失敗しました。(#0)


試行錯誤
・根本的にODBCの設定がまちがってるんじゃね?
 ⇒64bitの場合、ODBCデータソースの作成は32bit、64bitで別になります。
  Windows8の場合だと、コントロールパネルの管理ツールに2種類あります。
  今回使用するのは32bit版です。
  ここから設定を行いましたが、ODBCの設定、テストは問題なく行えました。
  Access2007からは、上記のODBC設定を呼び出しているので、設定ミスはありません。

・OracleのODBCドライバ最新じゃないからじゃね?
 ⇒最新を入れても駄目でした。

・Oracleを複数インストールしてわけがわからなくなったんじゃね?
 ⇒たしかにOracle9i、10g、11gのクライアントをすべて突っ込んでました。
  9iのクライアントはインストールに失敗(途中で処理が止まる)してました。
  しかし、9iはレジストリ、ファイルはしっかり削除を行い、10gと11gはしっかり
  住み分けできてるようなので原因ではなさそうでした。

と、ここまではおかしいところは見つかりませんでした。
何より、ODBC単体だと動作し、Access2007を通すと動かない、というのが腑に落ちませんでした。
次に試したのが結果的に原因、対策でした。


原因・対策
ODBC接続の設定には「括弧」などの記号が入ってはいけない、みたいのをどこかで
見たことがあります。
Windowsの64bitは、32bitのアプリケーションをインストールすると、「Program Files(x86)」に
入ります。正式に64bit版が存在しないOffice 2007も例外ではありません。
この括弧があやしいんじゃないか、と思い、試しにシンボリックリンクを作成、そこから実行
してみました。

シンボリックリンクの作成(コマンドプロンプトから管理者として実行)
mklink /d "C:\Program Files x86\Microsoft Office\Office12" "C:\Program Files(x86)\Microsoft Office\Office12"

正常に動作しました。原因は「括弧」のようです。

64bitWindoiwsの32bitアプリケーションのインストール先は、有無を言わさず上述している
フォルダになります。Officeのインストール時にインストール先を変更しても、
やはり仕様上、上述フォルダにいくようです。
もしかするともっとうまい解決策があるかもしれませんが、私はこの方法で回避できました。


まとめ
32bitのOffice(バージョン問わず)を64bitWindowsにインストールし、
ODBC接続でAccessからOracleに接続するとエラーとなる。
原因はOfficeのインストールパスであり、シンボリックリンクにより、
パスに記号が含まれないパスからAccessを実行することで回避可能。

やっぱりWindows8と64bitをまとめてテストするとどこに原因があるか判断しづらい……


※今回はこれが原因だったというだけで、すべてのエラーの解決を保証するものではありません。








2013年2月13日水曜日

ドスパラタブレットの液晶問題に触れてみる

ドスパラタブレットがIPS液晶ではなくTN液晶だった、という話が問題になってます。
ソースは初出が不明だったのでとりあえず書きません。
ググればすぐに出てきます。

私自身、あまり液晶にはこだわっていなかったのですが、
さすがに「IPS液晶」と銘打って販売したのに「TN液晶」だった、というのは
まずいんじゃないでしょうか。

現在、通販サイトでの購入ができなくなってるほか、
店頭でも品切れ扱いになってるとのことでした。


私的意見だと、これがNexus7とかの金額だったらいろいろ文句言いたくなりますが、
1万円を切る価格なので、このくらいだったら目を瞑ってもいいのが半分、
俗にゆう中華タブレットと違い国内メーカーだからこそ、いろいろなサポートや対応を
してくれるのではないか、それが今回の件が有耶無耶になるなら、
中華タブレットと変わらないだろ、というのがもう半分です。

どっちにしろメーカーの出方をみないとなんともなりません。

今日のところはこのくらいで。しばらく様子見しましょう。


2013/03/01 追記
先週、ドスパラからの対応がでました。Quoカード1000円分。まぁそれは別にいいですが。

普段はドスパラを利用しないのでわかってなかったのですが、
いろいろ見てみるとドスパラの対応は結構酷い、というのをいろいろなところで見かけました。
今回の対応も「返品」可能なのにフォームを消してるというみたいです。

ドスパラタブレットに関しては私自身電子書籍が読めればいい、というだけで
購入したので、別にIPSやTNがどうたらっていうのは気にしてない、というのは前にも書きました。
最低限動けば問題ないので、とりあえず返品はしません。
しかし、他の商品はドスパラで購入したいとはまったく思いませんので、
今後は購入先の候補から外そうと思います。

いつまでもこの話をしててもしょうがないのでこの話題はこれで終了。