全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:8933
推到 Plurk!
推到 Facebook!

Oracle-12514

答題得分者是:carstyc
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-26 13:36:38 IP:60.249.xxx.xxx 未訂閱
各位大大好:

我用 TADOConnection 連 Oracle 資料庫,會出現這問題要怎麼解決?? 謝謝!!

http://delphi.ktop.com.tw/download/upload/4a445c4ce86eb_圖片1.JPG



因為客戶用的資料庫是用Oracle,因此小弟在開發時是灌 Oracle Database 10g Express Edition (Universal)

Client 灌 OracleXEClient.exe 來連資料庫,都可以正常連線,但拿去客戶那兒確不能連,是那兒出問題了??

我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

客戶有說是 SID 的問題,但 ConnectionString 又沒有 SID 的參數???
(SID=*)
(SERVICE_NAME=192.168.1.101)(....................................

因為對oracle 不熟,所以煩請大大幫助,謝謝!!

編輯記錄
2007 重新編輯於 2009-06-26 14:46:51, 註解 無‧
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-26 16:22:06 IP:203.79.xxx.xxx 訂閱
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME



===================引 用 2007 文 章===================
各位大大好:

我用 TADOConnection 連 Oracle 資料庫,會出現這問題要怎麼解決?? 謝謝!!

http://delphi.ktop.com.tw/download/upload/4a445c4ce86eb_圖片1.JPG



因為客戶用的資料庫是用Oracle,因此小弟在開發時是灌 Oracle Database 10g Express Edition (Universal)

Client 灌 OracleXEClient.exe 來連資料庫,都可以正常連線,但拿去客戶那兒確不能連,是那兒出問題了??

我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

客戶有說是 SID 的問題,但 ConnectionString 又沒有 SID 的參數???
(SID=*)
(SERVICE_NAME=192.168.1.101)(....................................

因為對oracle 不熟,所以煩請大大幫助,謝謝!!

編輯記錄
carstyc 重新編輯於 2009-06-26 16:23:50, 註解 無‧
carstyc 重新編輯於 2009-06-26 16:28:04, 註解 無‧
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-06-26 16:37:00 IP:60.249.xxx.xxx 未訂閱
謝謝carstyc大大的回應!!

大大的意思是:

我原本的:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

改成:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=SID;Persist Security Info=True

也就是我讓客戶輸入IP 的那一個 edit,輸入客戶設定的 SID 值,就可以了,是嗎???

PS:我有放三個 EDIT ,一個輸入 Password,一個輸入 User ID,一個輸入 IP 或 SERVERNAME

還有:
為什麼
Provider=OraOLEDB.Oracle.1; <--我用這個 測試連線會失敗???
Provider=MSDAORA.1; <--我用這個連 "Oracle Database Express" 是ok 的。

謝謝大大!!!


===================引 用 carstyc 文 章===================
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME




我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

編輯記錄
2007 重新編輯於 2009-06-26 16:44:12, 註解 無‧
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-06-26 16:46:32 IP:203.79.xxx.xxx 訂閱


不是哦..

應該是我剛剛沒有講完整, 電腦端裝好了 Oracle Client 後,可以用它的 network assistant 去設定 TNSID

而 TNS 就是由 IP / SID / connect port 三個要素組成的

而你的 AP 裡面的 Connect String 是描述用那一個 TNSID 去連接,而 TNS 有三個要素,再配合 userid 及 password 後,才可以連接到 Oracle。


ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=TNSID;Persist Security Info=True




TNSID=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)





===================引 用 2007 文 章===================
謝謝carstyc大大的回應!!

大大的意思是:

我原本的:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

改成:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=SID;Persist Security Info=True

也就是我讓客戶輸入IP 的那一個 edit,輸入客戶設定的 SID 值,就可以了,是嗎???

PS:我有放三個 EDIT ,一個輸入 Password,一個輸入 User ID,一個輸入 IP 或 SERVERNAME



===================引 用 carstyc 文 章===================
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME




我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

編輯記錄
carstyc 重新編輯於 2009-06-26 16:54:32, 註解 無‧
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-06-26 17:00:44 IP:60.249.xxx.xxx 未訂閱
謝謝大大!!

大大的意思是,那個 "tnsnames.ora" 檔,

裡面的,你說的 TSSID 名字( 假設為 "ABC " 好了 )。

ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=ABC;Persist Security Info=True

這樣是嗎???

ABC=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)

謝謝大大!!!
===================引 用 carstyc 文 章===================


不是哦..

應該是我剛剛沒有講完整, 電腦端裝好了 Oracle Client 後,可以用它的 network assistant 去設定 TNSID

而 TNS 就是由 IP / SID / connect port 三個要素組成的

而你的 AP 裡面的 Connect String 是描述用那一個 TNSID 去連接,而 TNS 有三個要素,再配合 userid 及 password 後,才可以連接到 Oracle。


ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=TNSID;Persist Security Info=True




TNSID=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)





===================引 用 2007 文 章===================
謝謝carstyc大大的回應!!

大大的意思是:

我原本的:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

改成:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=SID;Persist Security Info=True

也就是我讓客戶輸入IP 的那一個 edit,輸入客戶設定的 SID 值,就可以了,是嗎???

PS:我有放三個 EDIT ,一個輸入 Password,一個輸入 User ID,一個輸入 IP 或 SERVERNAME



===================引 用 carstyc 文 章===================
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME




我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-06-26 17:05:36 IP:203.79.xxx.xxx 訂閱
沒注意到你的第二個問題

那只是 Driver 的問題,也就是你在裝 Oracle Client 的 Driver 版本。

OraOLEDB.Oracle.1 是我電腦上的版本。

你的可以用就用 MSDAORA.1 就好了,這好像是微軟家的東西


===================引 用 2007 文 章===================
謝謝carstyc大大的回應!!

大大的意思是:

我原本的:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

改成:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=SID;Persist Security Info=True

也就是我讓客戶輸入IP 的那一個 edit,輸入客戶設定的 SID 值,就可以了,是嗎???

PS:我有放三個 EDIT ,一個輸入 Password,一個輸入 User ID,一個輸入 IP 或 SERVERNAME

還有:
為什麼
Provider=OraOLEDB.Oracle.1; <--我用這個 測試連線會失敗???
Provider=MSDAORA.1; <--我用這個連 "Oracle Database Express" 是ok 的。

謝謝大大!!!


===================引 用 carstyc 文 章===================
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME




我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-06-26 17:10:50 IP:60.249.xxx.xxx 未訂閱
謝謝大大!!



大大的意思是,那個 "tnsnames.ora" 檔,

裡面的,你說的 TSSID 名字( 假設為 "ABC " 好了 )。

ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=ABC;Persist Security Info=True

這樣是嗎???

ABC=
(DEforbiddenION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)

謝謝大大!!!
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-06-26 17:19:38 IP:203.79.xxx.xxx 訂閱
這樣應該就沒錯了,要注意一下的是 tnsnames.ora 中的 IP 跟 SID 是不是你User提供的正確資訊。


===================引 用 2007 文 章===================
謝謝大大!!

大大的意思是,那個 "tnsnames.ora" 檔,

裡面的,你說的 TSSID 名字( 假設為 "ABC " 好了 )。

ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=ABC;Persist Security Info=True

這樣是嗎???

ABC=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)

謝謝大大!!!
===================引 用 carstyc 文 章===================


不是哦..

應該是我剛剛沒有講完整, 電腦端裝好了 Oracle Client 後,可以用它的 network assistant 去設定 TNSID

而 TNS 就是由 IP / SID / connect port 三個要素組成的

而你的 AP 裡面的 Connect String 是描述用那一個 TNSID 去連接,而 TNS 有三個要素,再配合 userid 及 password 後,才可以連接到 Oracle。


ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=TNSID;Persist Security Info=True




TNSID=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.1.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=SID)
)
)





===================引 用 2007 文 章===================
謝謝carstyc大大的回應!!

大大的意思是:

我原本的:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

改成:
ConnectionString
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=SID;Persist Security Info=True

也就是我讓客戶輸入IP 的那一個 edit,輸入客戶設定的 SID 值,就可以了,是嗎???

PS:我有放三個 EDIT ,一個輸入 Password,一個輸入 User ID,一個輸入 IP 或 SERVERNAME



===================引 用 carstyc 文 章===================
這個訊息就是告訴你 SID 不正確。

因為我沒用過 Oracle Database Express ,好像曾經聽說它是沒有 SID,亦或說是只有一個SID,不能更改。

所以你在開發的時候才不需要特別指定 SID。


一般連接 Oracle DB 的 Application 需要有三個資訊,才能順利連到 ORACLE, SID 、 User ID、 Password。

除了你的 AP 裡面要有這三個資訊,在你執行的電腦上,也要安裝 Oracle Client,並把 network assistant 設定好 SID 指到那一台 Oracle 去(但你的user能跟你講這個資訊,我猜他的電腦環境應該有設定好)。

你只需要跟User要到那個 SID 名稱,並把它補到你的程式中的Connectstring,應該就能使用了。


Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myuserid;Password=mypassword;Data Source=SIDNAME




我的TADOConnection ConnectionString 提供三個參數 給客戶輸入 Password、User ID、Data Source
Provider=MSDAORA.1;Password=1234;User ID=system;Data Source=192.168.1.101;Persist Security Info=True

2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-06-26 17:28:51 IP:60.249.xxx.xxx 未訂閱
謝謝carstyc 大大

不厭其煩的!!

一直給予答覆!!



===================引 用 carstyc 文 章===================
這樣應該就沒錯了,要注意一下的是 tnsnames.ora 中的 IP 跟 SID 是不是你User提供的正確資訊。


系統時間:2024-11-21 17:27:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!