ラベル Windows の投稿を表示しています。 すべての投稿を表示
ラベル Windows の投稿を表示しています。 すべての投稿を表示

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年1月30日水曜日

windows8を触ってみた①

発売からそれなりにたったwindows8。私はRTM版をネットブックに入れてみましたが、
解像度が足りなくメトロアプリが起動しない(するのもあったが)ので諦めました。

どこかに触る機会ないかと思ってたら、会社の時期PC候補にlenovoのX230でwindows8、
64bitがあるじゃないですか。
ということで動作検証をいろいろした結果をメモがてら感想まじりで書き連ねてみます。
正直今更な感じもしますが

注)X230しか触っていないので、windows8依存なのか、64bit依存なのか、機種依存なのか
よくわかっていないところもあります。


①とりあえず用語

・メトロ
 タッチパネルを想定して作られたよく見るあの画面。
 ログイン後はまずこの画面にいくため、何も知らないとどうしたらいいかわからなくなりやすい。
 何度か出てきますが、状況にかかわらず、困ったら画面の四隅にマウスを持っていけば
 なんとかなったりします。

・デスクトップ
 windows7までのデスクトップと似た画面。似ているがスタートメニューがないという致命傷持ち。

・チャーム
 おそらくスタートメニューの代わりになるもの。画面の右上または右下にマウスを持っていくと
 右端に表示されるという非常に面倒な仕様。ここの「設定」から電源OFFや再起動ができる。

・メトロアプリ
 androidやiOSと同様のメトロから立ち上げるアプリ。強制的に全画面で立ち上がり、
 アプリによっては終了のボタンなどもないため、ホームボタンが存在しない通常のPCで
 意味があるのかは不明


②とりあえずQ&A形式

☆Q1
 どうやってデスクトップに切り替えるの?
☆A1
 メトロの左上または左下にマウスを持っていく、「ウィンドウズキー」を押下、
 「ウィンドウズキー+D」を押下で切り替えられます。
 なぜか起動直後は「ウィンドウズキー+D」でしか切り替えられません。 他に方法があるかも
 しれませんが、少なくとも最初2つの方法では無理でした。

☆Q2
 電源はどうやって切るの?
☆A2
 前述のチャームからか、Alt+F4で切ります。他にもありそうですがわかりません。

☆Q3
 メトロアプリが終了できない。
☆A3
 Alt+F4で終了、または画面の左上または左下にマウスを持っていくことで、
 プロセスを残したままメトロ、デスクトップ画面に移動できます。

☆Q4
 スタートメニューがないとインストールしたアプリはどこから起動すればいいの?
☆A4
 メトロの右端に追加されているのでそこから起動させるか、チャームの検索からです。
 ちなみにチャームの検索を行うと画面左側にアプリ一覧が表示され、
 これまでの「すべてのプログラム」と同等の内容が表示されています。

☆Q5
 deleteキーでファイルを消そうとすると確認画面なしで捨てられます。
☆A5
 デフォルトの設定が変わっているようです。ごみ箱のプロパティに
 「削除の確認メッセージを表示」があるので、チェックを入れれば出るようになります。
 ちなみ確認画面がないのはごみ箱にいれるときだけで、ごみ箱から消すときは確認が出ます。

☆Q6
 デスクトップにショートカットを作りたい。
☆A6
 基本的なやり方は同じですが、メトロかチャームの検索でショートカットを作成したアプリを表示、
 右クリックし、画面下の「ファイルの場所を開く」からフォルダを開いてアプリを右クリック、
 ショートカットの作成でできます。

☆Q7
 スタートメニューはやっぱりどうにもならないの?
☆A7
 非公式のアプリを入れればできそうです。ちょっと古いですが。
 参考:http://matome.naver.jp/odai/2135150257523509001
 ちなみに会社のPCなので今回は試しませんでした。


結構長くなったのでとりあえずここで終了。
次回はアプリのインストールでこけたところなどをそのうち。

2013年1月28日月曜日

WindowsのOffice入力時に半角/全角が「`」になったりする

XPのSP1時代からある現象のようですが、はじめてこの現象をみたのでメモ。


現象
・ある日突然キーボードの入力が 半角/全角 が「`」になったり、
 記号がキーボード通りに打てなくなる。
・それもメモ帳なんかだと問題ないが、Office(OutlookとExcelで確認)のみ発生する。


現象だけみると、キーボード設定が英語キーボードになっているというのはすぐわかります。
問題は「突然現象が発生した」ことと「Officeでのみ発生した」こと。


まず結論を書くと、レジストリ不正のため発生していました。
現象をみたときは何が何だかわからなかったため、試してみたことなど全部書きます。
直し方だけ知りたいって人は読み飛ばしてください。


調査・対策
発生PC:Lenovo ThinkPad X200
OS:Windows XP SP3
その他:日本語/中国語の入力が可能なようにしている。

まず疑ったのはキーボードの設定です。ここが英語キーボードになっているというのが
普通に考えたら原因です。突然変わるかどうかは置いておきます。
キーボードのドライバを確認したところ、英語キーボードになっていました。
標準キーボードの日本語(106/109キー Ctrl+英数)を入れて再起動。なおりません

次に確認したのはOfficeでのみ発生していたため、Microsoft Office ツールの「言語設定」
を確認しました。主編集言語は「日本語」になっていたので、編集言語を「日本語」のみに
してOfficeを再起動しました(このPCには英語と中国語が設定されていました)。
結果、なおりません

この時点で思いつくところはなくなったので、Google先生にきいてみると、同じような事例が
結構引っかかりました。
参考にしたのはこちら ⇒ http://pc-trouble.seesaa.net/article/158314580.html
regeditを起動し、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411 の「Layout File」が「kdbus.dll」だったので「kdbjpn.dll」に変更し、再起動。
なおりました


と、いろいろやりましたが、集めた情報をまとめました。

まとめ
①発生条件は不明で「XP SP3にしたら発生した」「IEを操作してたら突然発生した」など
 多種多様。とりあえずMicrosoftが絡んでるのは間違いなさそうだけど。
再起動を繰り返すと再発する可能性がある。仕事のパソコンなだけに、何回も質問に
 こられると辛い上に、レジストリの変更を一般ユーザにやらせるのはセキュリティ上も
 よろしくない。ここはどうするか保留。
③レジストリを書き込み不可にすれば発生しなくなる。が、影響がどれだけあるか確認
 する必要がある。

まずは発生頻度と再発頻度を確認してみないと何とも言えないと思うので待ちになりそうです。


今回はここまで。