台灣最大程式設計社群網站
線上人數
404
 
會員總數:245465
討論主題:189222
歡迎您免費加入會員
討論區列表 >> Oracle >> [SQL]連接Oracle
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[SQL]連接Oracle
價值 : 0 QP  點閱數:19294 回應數:17

樓主

Neo
初學者
10 1
0 2
發送站內信

我在精華區有看到一份文章"連結Oracle資料庫的教學",文章上說~~~

Set OraDatabase = OraSession.OpenDatabase(Request("TEST"),Request("apps")&"/"&Request("apps"),0) 

這段語法是指Oracle DB與IIS+asp在同一台伺服器!對不對!

那我的Oracle DB是另外一台伺服器!與IIS分開,那我要怎麼改?

本篇文章發表於2002-09-09 18:24
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

adida
檢舉此回應
("OracleInProcServer.XOraSession")
^^^^^^^^^^^^^^^^^^^^^^這是oracle裝好會提供好的物件嗎?
那段語法應該不是只針對同一台伺服器
你要連結oracle server不是會用 net easy configur去設"別名"壓
你把別名當參數傳入就ok了

你也可以用這個connstring利用adodb.connection去連結
connstring="Provider=msdaora;Data Source=ora0;User Id=scott;Password=tiger;"
本篇文章回覆於2002-09-09 20:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Neo
檢舉此回應
謝謝您的回應!

我的問題應該是DSN要如何建立?
本篇文章回覆於2002-09-09 22:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

adida
檢舉此回應
ya....這裡....小正正的說明
http://www.class2u.idv.tw/dreamweaver/ultradev/udguest/dsn.htm
記得找對 oracle driver就好
不過你要連別台的DB,你還是要用Net easy configur去設SID,
本篇文章回覆於2002-09-09 23:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Neo
檢舉此回應
謝謝您!回答我問題!

不過我在建立DSN時,出現了錯誤訊息如下!

找不到Oracle(tm)用戶端及網路元件。這些元件由Oracle Corporation供應,是Oracle Version 7.3(或更新)用戶端安裝軟體的一部份。
您必須先安裝這些元件,然後才能使用這個驅動程式。

那請問要如何安裝Oracle ODBC呢?
本篇文章回覆於2002-09-09 23:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

adida
檢舉此回應
你應該還沒裝Oracle Client
裝完後....做好設定...你先測你可不可以連到oracle server那台.....
用sqlplus連線試試看.....
可以的話再來設odbc....
選oracle所提供的driver....做一些SID ,username/Pw的設定就好了
不過你也可以用oledb來連.....odbc連db還要多透過一層
本篇文章回覆於2002-09-10 00:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

Neo
檢舉此回應
謝謝您回答我的問題

我確實還沒裝Oracle Client,因為我不知道那是什麼東西?請問要去那下載!
裝完後....如何設定...如何測試.

您另外提到的用ole db來連,那要不要安裝些什麼程式呢?
本篇文章回覆於2002-09-10 01:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

adida
檢舉此回應
ok....你將有一個挑戰
下載.....我知道的是 oralce 網站可以下載.......不過很大....你還要註冊成oracle會員
現在好像download不到8i的安裝程式
目前好像都是9i的...全部有1G以上....分做三片
不過重點是要看你的DB是那個版本.....不過9i也可以連8i的就是了
你還是找找看有沒有朋友有.....下載真不知道要花幾天幾夜

我都是用Oledb連的....你不用多做設定....就用我上面寫的那個connetion string範例就可以了

本篇文章回覆於2002-09-10 01:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

adida
檢舉此回應
重點是你都一定要裝oracle client
至於說安裝測試......你還是滿一本書來研究吧.....
Oralce不像SQL Server這樣Friendly....
本篇文章回覆於2002-09-10 01:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

Neo
檢舉此回應
謝謝您的回應,

目前我已經在安裝oracle8i client,是不是OLE DB與ODBC連Oracle,都一定要安裝這個軟體!

應該怎麼說好了!我們公司Oracle DB與win2k是分開的!win2k上有MS Sql Server 2k!
我已經在Win2k上,寫一個即時的on hand查詢系統!用ASP來寫!
目前的系統是半自動的!需要從Oracle DB把資料匯到win2k之Sql Server上,很麻煩!
所以我想直接連到Oracle DB作業,因為沒寫過這部份,所以上網Post此文章!

您有提到您都是使用Oledb連DB,您可以Post一段Example給我嗎?
本篇文章回覆於2002-09-10 11:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Neo
檢舉此回應
安裝完成Oracle8i Client,也做完設定!SQLPLUSE也可以正常連入OracleDB!
由於對 oracle 不熟就參考精華區的oracle 連接方式撰寫如下!

------測試範例開始------------
<HTML>
<HEAD>
<TITLE>Oracle Test</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>Oracle Test</FONT>
</CENTER>
<HR>
<Script Language="VBScript"> 

On Error Resume Next 

'連結資料庫
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase( _
Request("test"),Request("apps")&"/"&Request("apps"),0) 

If Err.Number > 0 Then

'判斷是否發生錯誤
Response.Write "<H4>ASP的錯誤控制</H4>"
Response.Write "ASP 的錯誤來源:" & Err.Source & "<BR>"
Response.Write "ASP 的的錯誤代碼:" & Err.Number & "<BR>"
Response.Write "ASP 的的錯誤說明:" & Err.Description & "<BR>"
Err.Clear 

Response.Write "<H4>Oracle OLE 的錯誤控制</H4>"
Response.write "Oracle OLE的錯誤代碼:" & OraSession.LastServerErr &"<BR>"
Response.write "Oracle OLE的錯誤說明:" & OraSession.LastServerErrText &"<BR>"
else
Response.write "<center><H3>資料庫成功連結</center>"

'關閉資料庫
OraDatabase.Close


'Free Session物件
Set OraSession = nothing
End If

</Script> 
</BODY>
</HTML>


------測試範例結束------------

開啟那ASP時,並沒有出現"資料庫成功連結",當然也沒有出現錯誤訊息!請問有關這方面的DSN要怎麼設定?

那如果要用OLEDB!那是不是不需要設定DSN!那ASP有關資料庫連線的部又該如何寫?
本篇文章回覆於2002-09-10 17:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

adida
檢舉此回應
精華區它連結的方式我沒有用過
我大概跟你說我的方式
第一 用odbc連結....
你照之前小正正的方式去做....然後選擇oracle 的provider.....不要選Microsoft的
接下來來資料來源名稱(DSN),自己取一個別名(隨便取個ora),
接下來打你的登入帳號/密碼/與SID
SID是你登入sqlplus時 scott/tiger@xxxx   ,xxxx那個就是
設定完之後,你就用一般ASP連結odbc的方式連結
objConn.open "DSN=ora"

第二用oledb連
ConnectionString就用我上面給你的
set objConn = servre.createobject("adodb.connection")
objConn.open ConnectoinString

這兩種方式皆可....我通常是用第二種.....你試試看
本篇文章回覆於2002-09-11 10:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

adida
檢舉此回應
對..你用oledb就不用設DSN
設DSN的方式就是我第一個我說明的,你把odbc設完就ok了
本篇文章回覆於2002-09-11 10:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

peco
檢舉此回應
請問一下我去設定odbc時為什麼沒有輸入密碼的地方啊
我選systemDSN-->Add-->Oracle ODBC Driver-->只有看到
Date Source Name:AAA
Description
Serviec Name:PECO
Userid:system
沒看到可以輸入密碼的地方啊~
所以我連的時侯
conn.open "DSN=AAA;Password=manager"    -->這邊還要給他密碼
是不是有那些步驟錯了呢?
一般不是只要這樣就可以連了呢
conn.open "DSN=AAA"
請幫我看看吧~謝謝囉
本篇文章回覆於2002-09-11 11:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

Maulian
檢舉此回應
adida,謝謝您~~~

目前我已經成功連上我們公司的Oracle db~~!

關於精華區的範例!我大致知道那裡出問題!
以下附上我修正後之範例!提供給有心想要測試OracleDB之朋友們參考!

------測試範例開始------------
<HTML>
<HEAD>
<TITLE>Oracle 測試連線</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>Oracle 測試連線</FONT>
</CENTER>
<HR>

'以下的Code在Server端執行!
<%
On Error Resume Next 

'連結資料庫
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("請輸入Oracle之SID", "帳號/密碼", Cint(0))

If Err.Number > 0 Then

'判斷是否發生錯誤
Response.Write "<H4>ASP的錯誤控制</H4>"
Response.Write "ASP 的錯誤來源:" & Err.Source & "<BR>"
Response.Write "ASP 的的錯誤代碼:" & Err.Number & "<BR>"
Response.Write "ASP 的的錯誤說明:" & Err.Description & "<BR>"
Err.Clear 

Response.Write "<H4>Oracle OLE 的錯誤控制</H4>"
Response.write "Oracle OLE的錯誤代碼:" & OraSession.LastServerErr &"<BR>"
Response.write "Oracle OLE的錯誤說明:" & OraSession.LastServerErrText &"<BR>"

else
Response.write "<H3>資料庫成功連結</H3>"
'關閉資料庫
OraDatabase.Close

'Free Session物件
Set OraSession = nothing
End If

%>

</BODY>
</HTML>
------測試範例結束------------

peco,有關你的問題,設定DSN時!要不要輸入密碼!答案是不要!您可以參考Oracle Client安裝完成的Oracle ODBC HELP!
本篇文章回覆於2002-09-12 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

michael
檢舉此回應
各位高手,再請問一下,我設定了好久,就是沒法連上…
windown 2K pro + oracle 9i client

我用
Set OraDatabase=Server.CreateObject("ADODB.Connection")
OraDatabase.Open "Provider=OraOLEDB.Oracle;Data Source=『dsn名稱』;User ID=『』;Password=『』;"

會出現
ADODB.Connection (0x800A0E7A)
找不到提供者。它可能未被正確安裝。

----------------------------------------------------------------------------------------------
另外,我也有試了其他幾個方法

方法一:
Set conn=Server.CreateObject("ADODB.Connection")
conn.open "DSN=『DSN名稱』;UID=『』;PWD=『』;"

方法二:
Set conn=Server.CreateObject("ADODB.Connection")
string="driver={microsoft odbc for oracle};Data Source=『DSN名稱』;Password=『』;User ID=『』;"
conn.ConnectionString = string
conn.open

方法三:
Set conn=Server.CreateObject("ADODB.Connection")
string="driver=MSDAORA;Data Source=『DSN名稱』;Password=『』;User ID=『』;"
conn.ConnectionString = string
conn.open

以上三個方法,都會出現下面的錯誤訊息
錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
因為系統錯誤 5 (Oracle ??OraHome92) 導致指定驅動程式無法載入。

---------------------------------------------------------------------------------------------

此外,查詢了之前的文章,有提到:

----------------
要通過Oracle Objects Server來訪問Oracle8資料庫,除了基本的Web伺服器與ASP等軟體外,還必須確定Web伺服器已經安
1.裝了Oracle Object for OLE軟體,其所需的軟體包括:Network Protocol Adapter、Oracle Object for OLE2.X、
SQL*Net Client2.X或Oracle Net8 Client8.X、SQL*Plus及Oracle8 ODBC Driver。
2.在確定Web伺服器已安裝上述軟體後,
還必須利用SQL*Net Client2.X或Oracle Net8 Client8.X進行資料庫的連接測試並設置資料庫別名(Database Alias)
------------------

我是使用 oracle 9i client ,上面說的幾項需要安裝的東西,我從已安裝的清單裡面,都有找到
但在第二項,要用 SQL*Net Client2.X或Oracle Net8 Client8.X 來進行資料庫連接測試的部份
我則是找不到在那邊測…和在那邊設定

請問我是在最後這一步沒有設定,所以才不能連嗎 ????

還是有其他的地方有問題呢 ??


本篇文章回覆於2005-09-28 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.