• ベストアンサー

Oracleとの接続について教えてください

 仕事ではじめてASPを作ることになったのですが、 Oracleとの接続がうまくできません。人から「これで接続できるはず」と言われたソースを使ったのですが、接続できませんでした。すみませんが、アドバイスをお願いします!! ******************* <HTML> <HEAD> </HEAD> <BODY> <% Dim cnnSample Dim rstSample Dim strConnectString Dim strSQL Set cnnSample = CreateObject("ADODB.Connection") strConnectString = "Provider=msdaora;User Id=***;Password=***;server=***;database=***;" cnnSample.Open strConnectString Set rstSample = CreateObject("ADODB.Recordset") strSQL = "SELECT * FROM SAMPLE" rstSample.Open strSQL, cnnSample, 3, 1, 1 %> <%Do Until rstSample.EOF%> <%=rstSample("NAME")%><BR> <%rstSample.MoveNext%> <%Loop%> <% rstSample.Close Set rstSample = Nothing cnnSample.Close Set cnnSample = Nothing %> </BODY> </HTML> **************** 以下、エラー画面 Microsoft OLE DB Provider for Oracle エラー '80004005' ORA-03121: インタフェース・ドライバが接続されていないため関数は実行されません。 /ado1.asp, 行 15 **************** すごくしょうもない間違いだったらすみません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#86982
noname#86982
回答No.2

ADODB.ConnectionでProvider指定をしているのであれば、たぶんODBC接続は関係ないはずです。 普通、ODBC接続を用いる場合、 プログラム→ODBC→ADODB→データベース という順番になりますが、 この場合は プログラム→ADODB→データベース なんですね。<ああ、うろ覚え… で、解決方法ですが、 エラーのいう通り、ドライバが入っていないんですよ。 私も昔同じところではまったのですが、 VisualBasicをインストールしたところ、 うまくいくようになりました。 たぶん開発環境の中に必要なドライバがそろっていたのでしょう。 もしVisualBasic、お持ちなら試してみてはいかがでしょうか?

ICHI-1
質問者

お礼

ADODB、ODBCとわからない言葉が出てきて苦労しています(笑) とりあえず、後輩がドライバをやってくれました。 それと、 strConnectString = "DSN=***;UID=***;PWD=***" と、したところ、接続できました。 これからODBCについてもちょっと勉強します。 ありがとうございました。

その他の回答 (1)

  • yu-ji
  • ベストアンサー率19% (15/78)
回答No.1

ドライバは入ってます? よくわかりませんが、ODBCドライバとか。。。

ICHI-1
質問者

補足

見てみました。すみません、ODBCとか知識ないので よくわからないのですが、はいっていると思います。ACCESSでORACLEへテーブルリンクできています。それ以外はどう確認したらいいのかわかりません、すみません(泣)

関連するQ&A

  • SQLServerにodbcで接続

    こんにちは。 WindowsServer2003でIIS・SQLServer・ASP(VBScript)を使って簡単なデータベースを作りたいのですが、いきないつまずいています。 testデータベースをSQLServerで作り、ODBCに【odbcsqlsv】と登録しました。 ASPスクリプトを <%@ Language=VBScript %> <html> <head> <title>動作テストHTML</title> </head> <body> <% Response.Write "テストーASP" Set cn = server.CreateObject("ADODB.Connection") StrCn ="odbcsqlsv" cn.Open StrCn strSQL = "SELECT * FROM table2" Set RS = cn.Execute(strSQL) Do While Not RS.EOF Response.Write RS.fields("name") RS.movenext Loop cn.close set cn = nothing %> </body> </html> を書き実行すると Microsoft OLE DB Provider for ODBC Drivers エラー '80040e4d' [Microsoft][ODBC SQL Server Driver][SQL Server]ユーザー '(null)' のログインに失敗しました。理由 : SQL Server の信頼関係接続に関連付けられていません。 とエラーが出ます。 SQL Serverの信頼関係接続とは何でしょうか? また関連付けはどのようにして行ったらよいのでしょうか? すみませんが、ご教授のほどをよろしくお願いします。

  • ASPからVBS実行時の権限

    ASPからWscript.Shellを使ってVBSを実行しているのですが、 ASP中のDBオープンには問題はないのですが、test.vbs中でオープンできません LOGファイルは"dbConnection-OK"までになっています。 権限の問題かどうかはわからないのですが、原因は何でしょうか? DBはODBC経由のSQLServerです。 ---------ASP-------------------------------------- <% Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") dbConnection.Open "testdb" dbConnection.Close Set dbConnection = Nothing '上記OPENに関して問題なし Dim WshShell Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "cscript.exe e:\test.vbs 123", 0, True Set WshShell = Nothing %> <html> <head> <meta http-equiv="Cache-Control" content="no-cache" /> <title>Pipot.to</title> </head> <body> OK </body> </html> ---------test.vbs-------------------------------------- Dim ObjFSO Dim ObjTS Set ObjFSO = CreateObject("Scripting.FileSystemObject") Set ObjTS = ObjFSO.CreateTextFile("e:\log.txt") ObjTS.Write "LOG開始" Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") ObjTS.Write "dbConnection-OK" dbConnection.Open "testdb" ObjTS.Write "OPEN-OK" dbConnection.Close Set dbConnection = Nothing ObjTS.Close Set ObjTS = Nothing Set ObjFSO = Nothing

  • ADOでACCESSへの接続について。

    アクセスへの接続の部分で、パスワードを設定しなければ普通に接続できてデータも取得できました。 しかし、パスワードを設定するとエラーが出ます。 パスワードは"ttt"で間違いないのですが。。。 やはり、どこか間違っているのでしょうか? アドバイスお願いします。 「実行したASP」 <% Set cn = Server.CreateObject("ADODB.Connection") %> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=shift_jis"> <TITLE>バージョン情報</TITLE> </head> <body> <B>ActiveX Data Object Version Information</B><BR> version:<%= cn.Version %><BR> <% cn.Open "Memo","","ttt" %> <% cn.Close %> <% Set cn = Nothing %> </body> </HTML> 「エラーメッセージ」 エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] パスワードが正しくありません。 /L02_02.asp, line 10 ブラウザ タイプ Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)

  • エクセルVBAでエラー!

    エクセルでVBAを組んでいます。 Aシート・Bシートにデータがあり、それをSQLで集計し、 Cシートに出力をしたいのですが、 『リンクされているExcelのワークシートを表示するための接続が切断されました。』 というエラーが出て、解決しません。 (調べてみましたが、似たような例がなく解決には至りませんでした・・・。) どなたかご教示お願い致します。 Private Sub CommandButton1_Click() Dim dbCon As Object Dim dbCols As Object Dim dbRes As Object Dim strSQL As String Dim sh1 As Worksheet Set sh1 = Worksheets("Cシート") Set dbCon = CreateObject("ADODB.Connection") dbCon.Provider = "Microsoft.Jet.OLEDB.4.0" dbCon.Properties("Extended Properties") = "Excel 8.0" dbCon.Open ThisWorkbook.FullName strSQL = "" strSQL = strSQL & "SELECT *" strSQL = strSQL & vbCrLf & "FROM [Aシート$] LEFT JOIN [Bシート$] ON [Aシート$].NO= [Bシート$].NO" Set dbRes = CreateObject("ADODB.Recordset") dbRes.Open strSQL, dbCon, adOpenKeyset, adLockReadOnly sh1.Range("A1").CopyFromRecordset dbRes dbRes.Close Set dbRes = Nothing dbCon.Close Set dbCon = Nothing End Sub

  • うまく表示されません。

    MS SQL SERVERを使い始めた初心者です。 環境は XP、IIS6.0、SQL2000SERVER です。 エラーメッセージ> Microsoft OLE DB Provider for ODBC Drivers (0x80040E37) [Microsoft][ODBC SQL Server Driver][SQL Server]オブジェクト名 'tblMember'が間違っています。 /test/Connection_3.asp, line 12 ソース> 1:<html> 2:<head> 3:<title>Connect</title> 4:</head> 5:<body> 6: 7:<% 8:Set ConnDB = Server.CreateObject("ADODB.Connection") 9:ConnDB.Open = "DSN=dbMember;UID=sa;PWD=sa;" 10: 11:strSQL = "INSERT INTO tblMember(id,pwd,name,phone) VALUES('melon','4444','일지매','019-999-9999')" 12:Set objRs = ConnDB.Execute(strSQL) strSQL = "SELECT * FROM tblMember" Set objRs = ConnDB.Execute(strSQL) Do While objRs.EOF = False Response.Write objRs("name") & " " Response.Write objRs("phone") & "<BR>" objRs.MoveNext Loop objRs.Close ConnDB.Close Set objRs = Nothing Set ConnDB = Nothing %> </body> </html> これでソースでやるとうまく表示されません。 どうしてなのでしょか?ご教授のほどよろしくお願いいたします。

  • Access ADOについて質問です。

    Access ADOについて質問です。 以下コードでレコードセットを返す関数を使用しています。 動作的には問題ないのですが、標準モジュール内のレコードセットをClose及びNothingしていないのが気になります。 Private Sub Form_Open(Cancel As Integer) Dim rs2 As ADODB.Recordset Set rs2 = New ADODB.Recordset Set rs2 = CreateRecordSet("SELECT * FROM T_Standard;") Set Me.Recordset = rs2 rs2.Close: Set rs2 = Nothing end sub '標準モジュール Public Function CreateRecordSet(strSQL As String) As ADODB.Recordset Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=O:\標準DB\StandardBackEnd.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open strSQL, cn, adOpenStatic, adLockReadOnly Set CreateRecordSet = rs ' rs.Close: Set rs = Nothing   ←この部分 ' cn.Close: Set cn = Nothing   ←この部分 End Function 標準モジュール内ではCloseやNothingしなくてもメモリの開放は行われているのでしょうか? アドバイスよろしくお願いいたします。

  • VBscriptでAccessに接続。PCで結果が異なる。

    VBscriptでAccessに接続。 PC1ではDBの検索結果が表示されますが PC2では表示されません。 PC1はWindows XP Pro IIS Access 2000 PC2はWindows server 2003 IIs Access 2000 当然ながらソースは同じです。 プログラムの問題でしょうか。 それともなにか設定の問題でしょうか。 VBscript 部分 <% '========================================================================================================== Dim objCon Dim objRS Dim strSQL '======================================= dim objfs dim strFDIRNAME Set objFS = Server.CreateObject("Scripting.FileSystemObject") strFDIRNAME = Server.MapPath(".") 'フォルダー名取得 '======================================= '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" Set objRS = Server.CreateObject("ADODB.Recordset") '##### MDBの絶対パス指定 ##### objCon.ConnectionString =strFDIRNAME & "\" & "meibo.mdb" '##### コネクションのオープン ##### objCon.Open '##### SQLの作成 ##### strSQL = "select DISTINCT 社員名 from TABLE " '##### レコードセットのオープン ##### objRS.Open strSQL, objCon, 3 Recnm=objRS.RecordCount Do Until objRS.EOF %> <OPTION value="<%=objRS("社員名").value%>"><%=objRS("社員名").value%></OPTION> <% '##### 次のレコードを参照 ##### objRS.MoveNext Loop end if %> <% '##### コネクションのクローズ ##### objCon.Close '##### コネクションオブジェクトの解放 ##### Set objCon = Nothing '================ %>

  • NEWキーワードとCreateObjectは同じ?

    NEWキーワードとCreateObjectは同じことをするのでしょうか? Sub ADO_Sample1() Dim cn As New ADODB.Connection Set cn = CreateObject("ADODB.Connection") cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" & _ "D:\Mail.mdb;Jet OLEDB:Database;" Debug.Print "ファイルに接続できました。" cn.Close: Set cn = Nothing End Sub このようなコードの時、 Set cn = CreateObject("ADODB.Connection") は、あってもなくても問題ないようです。 NEWとCreateObjectがある場合は、 2度データベースに接続してしまうのでしょうか? NEWとCreateObjectがあってもエラーにならない理由を教えてください。

  • ADO 「認証に失敗しました」

    ADOでデータベースに接続したいのですが ”実行時エラー -2147217843(80040e4d) 認証に失敗しました。” になります。 コードは Sub ado() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source" & CurrentProject.FullName ★ rs.Close cn.Close Set rs = Nothing Set cn = Nothing End Sub です。 ★ 印の所でエラーになります。 宜しくお願いいたします。

  • DBから取得したオブジェクトの受け渡し方法

    はじめましてVB初心者でわけが分からなくなっています。DBをクローズした後に取得したレコードセットを他の関数に渡すにはどうしたらよいでしょうか?おそらく、そんなのcloseせずにやればいいと思うかもしれませんが、可能かどうかがわかりません。どうか教えてくださいよろしくお願い致します。 下記のコードにて行ってます。Set rs = cn.Execute(strSQL)で取得しています。rsをDBを閉じた後も他の関数に渡せるようにしたい訳です。m(..)m Dim cn As Object Dim rs As Object Private Sub getData() Dim strSQL As String Set cn = CreateObject("ADODB.Connection") cn.Open "省略" strSQL = "SELECT * FROM swan" Set rs = cn.Execute(strSQL) Set rs = nothing Set cn.close Set cn = nothing End Sub