プロが教えるわが家の防犯対策術!

現在、ローカルのmdbに接続しています。
接続先DBを同LAN上のWin2000ServerのORACE 8に変えるべくコードを修正していますが上手くいきません。
当方、ORACLEは初めてなので、接続方法がイマイチ良くわからず・・・
ちなみに、接続方法はoo4oを用いたいです。
ご教授いただけると幸いです。

----- mdb接続で用いているコード ------
Public Function getData(ByRef table_name As String, ByRef code_name As String, ByRef extract As String, ByRef code As String) As String
 Dim oConn As New OleDbConnection
 
 Dim oCommand As New OleDbCommand

 Dim oDataReader As OleDbDataReader

 Try

 oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\XXXXX.mdb"
 oCommand.Connection = oConn
 oCommand.CommandText = "SELECT * FROM " + table_name + " ORDER BY " + code_name
 oConn.Open()
 oDataReader = oCommand.ExecuteReader()

 While oDataReader.Read()
  If code = CStr(oDataReader(code_name)) Then
   getData = CStr(oDataReader(extract))
   Exit While
  End If
 End While
  ・
  ・(省略)
  ・

 Finally

 If Not oDataReader Is Nothing Then
  oDataReader.Close()
 End If

 If Not oConn Is Nothing Then
  oConn.Close()
 End If

 End Try
End Function

A 回答 (5件)

.Netマガジンのバックナンバーで


oo4oを使用したサンプルらしいものがありました。
参考にしてみたらどうでしょうか。

参考URL:http://www.shoeisha.com/mag/dotnet/library/87030 …

この回答への補足

ありがとうございました。

しかし、PDFの解説が2ページで終了してしまっていました。
(実際は続きのページがあるようなのですが・・・)

サンプルもダウンロードしてみたのですが、ん~残念ながら良くわかりませんでした。

補足日時:2005/05/12 15:22
    • good
    • 0

私の場合はVB.NET→ASP→oo4o→Oracle9.0 で接続しましたが、このサイトを参考にしました。


私も初めての経験でしたが、サンプルもわかりやすかったです。

http://www6.ibm.com/jp/software/data/developer/l …

ただいろいろ記事や掲示板を見ていると、VB.NETを使ってらっしゃるならODP.NETで接続するのが簡単でいいみたいですよ。

http://www.atmarkit.co.jp/fdb/rensai/odpdotnet01 …

http://www.itmedia.co.jp/enterprise/articles/040 …

参考URL:http://www-6.ibm.com/jp/software/data/developer/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速、見て参考にしてみたいと思います。

他の方法で接続したいんですが、仕様柄、接続は、"oo4o"に限定されているんです。

ちなみに、一番上のURLには、何故かアクセスできませんでした・・

お礼日時:2005/05/12 15:51

#2です。


1番上のアドレス、接続できなかったみたいですね。
すみません。
参考URLにのせているサイトと一緒ですので、そちらからとんでみてください。

私も以前方法を検索しまくっていた頃、VB.NETとoo4oの組み合わせ自体があまりなく苦労しました。
Oracleの掲示板で問い合わせてみたところ、先輩たちが口をそろえて「ODP.NETでした方が…」と回答があったのですが、その時に指示はoo4oでとの事だったのでとても苦労した記憶があります。
その中でみつけた参考URLのサイトは大変助かりました。
がんばってくださいね。

この回答への補足

ODP.NETでやりたいのですが、SEが、oo4oでの接続を好んでいるらしく、oo4oでの仕様なんです・・(泣
.NET環境での開発経験は無いようです、SEが・・

それはそうとして、早速、「例 OO4O」に書かれていたコードを、記述してみましたが、以下のエラーが出ます。

"OraSession"と"OraDatabase"のところで、
  『型'OraSession'が定義されていません。』
  『型'OraDatabase'が定義されていません。』

"ORADB_DEFAULT"のところで、
  『名前'ORADB_DEFAULT'』は宣言されていません。』

です。

すいません。
もし、何か、お分かりになるようでしたら、恐れ入りますがアドバイスいただけると助かります。

補足日時:2005/05/12 17:01
    • good
    • 0

ORADB_DEFAULT のところは数字の「0」を入れればうまくいくと思います。


数値の意味は分からないのですが…ほかのサイトでは大体0をセットしていました。

定義部分のエラーに関しては、申し訳ありませんが私も分かりません。
サンプルの動作環境がOracle9iなので、バージョンも関係してくるのかもしれませんが、私が初めてつかったDB接続が Oracle9iとVB.Netなので…。
お役にたてずすみません。
調べてみて何かいいサンプルがあれば、またご連絡します。
    • good
    • 0
この回答へのお礼

自己解決しました!
以下のコードで実現できました。
---------------------------------
Public Const ORADB_DEFAULT = &H0

Public Sub oo4o()

 '** oo4o 変数宣言
 Dim OraSession
 Dim OraDatabase
 Dim dbname As String
 Dim cnuser As String

 '** oo4o 接続
 dbname = "oracle" 'Oracle サービス名(別名)
 cnuser = "amron/amron" 'ユーザ名/パスワード

 OraSession = CreateObject("OracleInProcServer.XOraSession")
 OraDatabase = OraSession.OpenDatabase(dbname, cnuser, ORADB_DEFAULT)

 '** RDB 処理
 'ここに操作コードをいれる

 '** oo4o 接続解除
 OraDatabase = Nothing
 OraSession = Nothing

End Sub

お礼日時:2005/05/12 17:46

もしかしたら定義部分をそれぞれ「Object」にするとうまく動くかも・・・。


自信ないですが。

http://www.int21.co.jp/pcdn/vb/howto/oracle.html

参考URL:http://www.int21.co.jp/pcdn/vb/howto/oracle.html
    • good
    • 0
この回答へのお礼

自己解決したので、前質問のお礼欄にコードを書いておきました。

わざわざ、ありがとございます。
お教えいただいたサイトも、今後の参考にさせていただきます。

お礼日時:2005/05/12 17:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!