[ASP][Oracle] TNS:無法解析指定連線 - Slash Engineer 要多斜有多斜

Breaking

Slash Engineer 要多斜有多斜

程式設計的學習過程 (環境設置、開發環境、程式設計、語法練習、資料結構等等...) 99'暑假:六月初開始. 社會新鮮人:十一月初開始.

2013年3月8日 星期五

[ASP][Oracle] TNS:無法解析指定連線

其實原因很多,但多半可能原因是設定錯誤,或是連接步驟/語法寫錯,
多參考網路上的資料或與人討論,都可以找出問題,不要怕花時間,
解開的成就感是無可比擬的!

這邊分享我的解決過程:

由於無法更動.dll的DB connection,只好另外建立DB connection,以更改需求


Dim cnDC1, rs1
 set cnDC1 = Server.CreateObject("ADODB.Connection")
'設定資料庫Connection
'建立資料庫連線--20130307cy

cnDC1.Open "provider=oraoledb.oracle;data source= ;user id= ;password= ;"
'                                            ↑連線驅動       ↑Server name ↑帳號   ↑密碼
response.write ""&cnDC1.state&""
'秀出connection狀態,如果是1表示通道open。

'建立資料庫連線的範例,沒試過以下provider
'dns="DRIVER={Oracle ODBC Driver};UID=_;PWD=_;DBQ=_;DBA=W"
'myDSN = "Provider=MSDAORA.1;Password=_;User ID=_;Data Source=_;Persist Security Info=True"
'cnDC1.Open "DSN=_;uid=_;pwd=_" 此種方式需另外先設定DSN,否則無法辨識連接驅動
'設定SQL參數--20130307cy
'strsql = "select * from sometable where user_ID = '"&Session("USER")&"'"       'select用,
  strsql = "Update sometable  set COMPANY_ID='"&nowTime&"' Where USER_ID ='" & Session("User") & "'" 'Update用,對應User ID 將登入時間塞入
  cnDC1.Execute strsql        '將SQL 函數執行,Update使用Excute即可--20130307cy
  'response.write ""&strsql&""
  'set rs1 = Server.CreateObject("ADODB.Recordset")
  'rs1.open strsql, cnDC1,3,1       '←此方式適用於SQL Select

為什麼會說是設定錯誤或是程式寫錯,我一開始就用DSN的方式連接,但是DSN我沒有去定義,server根本無從解析位置,因此我改用oraoledb.oracle這個provider,資料庫就連通了,所以說囉...

PS.關於資料庫是否有連通:
Yet the value of ADODB.Connection.State was 1, meaning "connected" and not "0" meaning "closed".Ref: DB connection state


以上僅供參考
Ref : TNS無法解析指定連線

沒有留言:

張貼留言

問題沒有大小或好壞