#はじめに
始めまして、タイトル通り、Windows10にVB6アプリを移行する際に起きた問題点をまとめたいと思います。
本来であれば既にレガシーとなっているシステムではありますが、世の中でまだ利用者が多いと思われるVB6アプリをWindows7(32bit版)から、Windows10(64bit版)に延命の為
移行する事となり、その時起きた問題を中心に内容を記載しました。
#環境情報
-
移行元:
- Windows 7 Professional
- メモリ 8GB
- CPU intel core i5
-
移行先:
- Windows10 pro 64bit版
- メモリ 8GB
- CPU intel core i7
#発生した問題
自社アプリのインストーラーを使用しインストール後、アプリを起動した所、以下メッセージが発生しました。
#原因
自社アプリの仕様となりますが、会社で持っているoralcedbに接続して処理を行うアプリであり、流れとしては以下の形で行っておりました。
調べた所、Windowsアプリケーションでoralcle接続を行う際に、使用するミドルウェアが存在し、
それが「oo4o(Oracle Objects for OLE)」となっております。
oracleを扱う際はoracle clientのインストールが必要なのですがoo4oの提供が行われているのが11gまでとなっておりました。
また、oracle client11gには 32bit版、64bit版の2種類があり、最初はPCの環境に合わせて64bit版を入れたのですが
Vb自体は32bit版にしか対応していない為、そちらをインストールしていなかったのも原因でした。
※アプリによってはODBCを使った接続方法もあるかと思いますが今回は、oo4oを使用していた場合の解消方法を記載させていただきます。
oracleサポート概要:
oracle client ver | サポート内容 |
---|---|
oracle client 11g以前 | ・oo4o(Windows用アプリケーション向けにOracleが提供しているデータベースへ接続するミドルウエア)を提供 |
oracle client 12c以降 | ・oo4oの提供が終了 |
#解決方法
oracle client11g 32bit版をインストールしその後、oracle clientの「Admin」フォルダ内に「tnsnames.ora」(各DBへの接続情報がまとまったファイル)を格納し、cmdを立ち上げ「tnsping ●●」※●●は自社で持っているDB名を記載
コマンド実行し、tnsnames.oraファイルまでのパスが通っている事を確認、その後自社アプリを実行すると問題なく立ち上げる事ができました。
↑「oracle client 11gのsetup.exe」をクリック
↑インストールタイプを選ぶ時は「管理者」を選択、※oracle clientに詳しい人はカスタムで必要なものだけを選択してインストールでも問題ないかと思います。
↑インストールが終わったら、DB接続情報が記載されている「tnsnames.ora」ファイルを格納
↑インストール完了後はcmdを立ち上げ「tnsping ●●」※自社で設定しているデータベース名を入力
その後、アプリを立ち上げると問題なく起動し、oracledbへ接続する処理に関しても問題なく行えました。
#最後に
上記、DB接続が絡んだ場合はoracle clientのverとbit数に気を付けないといけないという事を知りました。
ただ、システム自体が古いので、今後はリプレイスを行いVBアプリを使用しない形にもっていきたいです。