Windows環境にて、vb.net(2017) + .NET Framework4.8 + oo4o で、Orcle11gに接続可能かどうか教えてください。
実行環境については、以下が実行可能で、VB6アプリケーションからはOracleに接続できているPCとお考え下さい。
・vb.net(2017)で作成したexe
・.NET Framework4.8
・oo4o
現在、上記環境を用意する事が出来ずネットで情報を探したのですが、答えにたどり着かなかった為
こちらに助けを求めに来ました。
宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
「VB6アプリケーションからはOracleに接続できているPC」ということであれば接続は可能ですが、.NET から oo4o を使用するのはお勧めできません。
(1) COM オブジェクトを .NET でキレイに解放するのはとても難しい。
たとえば、OraDynaset オブジェクトを作成してフィールドの値を参照した場合、OraDynaset オブジェクトだけではなく、OraFields コレクション、OraField オブジェクトも Marshal.ReleaseObject で解放しなくてはなりません。
これをやらないと、「ORA-01000: 最大オープン・カーソル数を超えました。」エラーが頻発します。
(2) oo4o のプロパティは Object 宣言されているものが多く、.NET で使用すると遅い
oo4o を VB.NET から使用する場合、Option Strict Off を宣言して使うことになると思いますが、これが非常に遅いです。
かといって、Option Strict On にすると、キャストの嵐になって非常に見づらいものになります。
例) OraDynaset からフィールド値を取り出す
VB
1Dim dyn As OraDynaset 2Dim value As String 3value = DirectCast(DirectCast(DirectCast(dyn.Fields, OraFields)("Item1"), OraField).Value, String)
というわけで、私は ODP.NET を使ったクラスライブラリを作ってしまいました。
http://kozhouse.homeip.net/dotnet/oo4o/
簡易版のソースを公開しています。
投稿2019/09/27 07:53
総合スコア2707
0
Oracle11g は既にどんな大きなバグが見つかっても新たにパッチは提供しない古いバージョンですから、商用利用するにはもっと新しいバージョンをおすすめします。
Oracle11.2 Database Client インストレーション・ガイド for Microsoft Windows ソフトウェア要件 動作保証されているWindows PCを用意するのも難しくなりつつあります。
投稿2019/09/27 06:55
編集2019/09/27 07:14総合スコア16417
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/27 07:22 編集
2019/09/27 07:42
2019/09/27 07:44
2019/09/27 08:01
2019/09/27 13:46
2019/09/30 07:59
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/27 07:59