MySQLのODBC接続が正常動作しない基本的ミスを確認
まるでマスゴミの「○○名の新規感染者を確認」みたいな見出しになってるが、そういう気分。
さっさと結論から書くとインストールソフトの対応ビット数が違ってたってこと。
それだけで終わってしまうと今後も同じミスでアタマをかかえる事態になる可能性が高いのでメモしておく。
いま取り組んでいるのは、とあるスタートアップ企業のためのカスタム業務システムのプロトタイプ作成。
導入までかなり時間の余裕があるので、演習にちょっと飽きてきて小休止していたカスタムアプリケーションソフトウェア(一回云ってみたかった)のテストでの出来事。
ひそかに気になることがあったので実行してみたら、うまい具合にトラブルが発生してくれたのだった。😅
サンプルアプリはこれまで問題なく快調に動作しているのだが、自宅にある他のPCでも一応確認しておこうかと何となく思いついた。家族用のPCにもMySQL用ドライバーをインストールしてあって、そのPCでアプリを開こうとしたら怒られた。「何でやねん!?」とパニックになりかけたが、ちょこっと調べてみたら原因は
MS-Office とODBCドライバーのビット数が異なっていると正常動作しない
ことになるようだ。家族用PCは2ヶ月前にWindows10 Pro 64bit版の機器にリニューアルしていて、Office も最新版のはず。
64bit版ODBCドライバーも問題なくインストール出来ていたのに何でやねん!?
そんなわけで、分かりにくい場所にある詳細情報をチェックしてみたらビンゴだった。
アカウント継続版のままになっていたためなのかまでは不明だが、まさかの32bit版なのが判明した。
手持ちの数台で動作テストをしていたのだが、それらはAccessRuntime 64bit 版だったのだ。
家族用のは全部入りOffice でAccessも製品版がインストールされている。それが32bit なのだね。
とすると対処はカンタンで、64bit 版ドライバーをアンイストールして32bit 版をインストールすれば難なく解決。
・・・とはならなかった。
今度はドライバーのインストールすら出来なくなってしまったのだ。😨
しかしこれは過去に何度か体験したしょうもないエラーメッセージなので、淡々と対応。
32bit 版は旧式のまま開発が凍結したのだろう。いやぁ、試してみて良かったわ。
導入の現場のあちこちで発生していただろうと思うと背筋が寒くもなる・・・
既存PCのOfficeが32bit 版のままなんて珍しくもなんともないだろう
ということで。またまた分かりにくい場所にある”VisualC++ライブラリ”を見つけてx86版をダウンロード。
こいつをインストール(数秒で完了)すると、難なくドライバーをインストール出来た。
当然カスタムアプリも正常に動作出来て一件落着。ちょこっと冷や汗ではあった。😅
しかし、それでも試練はまだ終わらなかったのだった・・・
Accessランタイム版のワナが再び / 配布用accde が開けない
さて。テスト(家族用)PCで正常稼働しているアプリは開発版(accdb)である。もうひとつ確認事項があった。
実際の現場運用にはAccessランタイムプログラムが欠かせないことを思い出し、念のために開発用PCのAccess2019(64bit)でユーザー配布用Accessファイル(accde)を作成してテスト用PC上で確認してみるとまたまた開けない。😨 原因はすぐに分かったが対処方法がない・・・
32bit版MS-Office がインストールされているPCでは64bit版Accessで作成したaccdeファイルが開けない
テスト用PCに32bit 版Office(Access含む)がインストールされているのは冒頭で確認したとおりではある。
しかし当然、運用予定の現場ではOfficeのバージョンやbitの統一なんて出来ない。
中身が丸見えになるaccdbファイルを現場ユーザーに配布することもあり得ない。ランタイム版運用がメインとなるはずなので混乱必至である。
業務用Accessアプリ開発なんて10年間以上も遠ざかっているのだ。当時は自社内だったのでこんな問題はちゃちゃっと片付けていたのだが、今はどうやって「ちゃちゃっと片付けていた」のか思い出せないので余計にへこんでしまう。
現役時代は64bit版Accessにメリットを感じず、32bit版しか使ってなかったような記憶もある。
そもそも開発側もユーザー側も全部Access2010だったし・・・平和だった。
それにしても、アプリのバグがどうこうという問題が出る以前にまたもインストールアプリさえも開けないなんてあまりに情けない。※OSはすべてWindows10Pro 64bitで統一
さすがに面倒くさくなって来たがここで逃げ出すことは許されないのだ。
さて、32bit 版Office がインストールされているPCに64bit版Accessランタイムをインストールすれば解決するのだろうか。
64bit版のインストール後にaccdeファイルとの関連付けをやれば一件落着だろうと甘くみていたらとんでもない事態になってしまっていた。
32bit 版Office がインストールされているPCに64bit版Accessランタイムは使用不可
64bit版ランタイムのインストールを拒否された!! Office を入れ替えろって正気か !? 😨
そんなことは自宅では出来ても、運用先(とある企業)の現場では不可能。
本当に困ったぞ。これだけはおそらく未体験。果たして解決策はあるのか ?
32bit版で開発すれば一発解決だろうが、今さらそんな安易な道は選びたくない。
委託予定の某システム会社に丸投げという逃げ道もあるが、今のうちはヒマでもあるしもうちょっと粘ってみるか。
そんなわけで、合理的解決方法が見つかるまで本シリーズは小休止します。
自分で書いてて混乱してきたのでまとめ。
- OSは全PCともWindows10Pro 64bit で共通
- MyPCにてカスタムアプリをAccess2019(64bit)でaccdbファイルとaccdeファイルを作成
- MS-Office2019(32bit/Access含む)インストール済みのテスト用PCでaccdbファイルは正常動作
同じPCでaccdeファイルが開けない - 同じPCで64bit版Access2019ランタイムがインストール不可
- 別の古いPC(Home & business2010/32bit)に32bit版Access2019ランタイムをインストール
結果は変わらずaccdeのみ開けない
同PCにインストールしたAccess2010ランタイムでも結果変わらず - 不本意でも、おそらくテスト用PCの32bit版Accessでaccdeを作成すれば問題解決の期待
コメント