線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1847
推到 Plurk!
推到 Facebook!

如何強制client連到MSSQL是走TCP/IP呢

尚未結案
mingshean
一般會員


發表:4
回覆:6
積分:2
註冊:2003-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-25 14:29:12 IP:61.220.xxx.xxx 未訂閱
各位先進好: 請問我寫了一支程式,我使用ADO,用OLE DB 連線到ms sql,當我安裝到clent時,只要client端是有裝NETBEUI通訊協定時,就會連不到SQL,除非把NetBeui移除只剩TCP/IP,就可連上,但是NetBeui因為其他原因,故不能移除,請問有解決的方式嗎? 謝謝各位。 開發環境:Delphi 6.0 SQL : Windows Server 2000 MS SQL2000 Client : Windows 98,Windows 2000,client分散在各大樓,各大樓之間走TCP/IP Delphi ADO的設定:Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-25 15:30:48 IP:211.20.xxx.xxx 未訂閱
至 client 端的 ODBC 中設定資料庫連線方式,作法如下:
1. 開啟 ODBC 設定
2. 新增一個資料來源,挑選 SQL Server,按「完成」
3. 「名稱」任意輸入,「伺服器」隨便輸入,按「下一步」(重點還沒到)
4. 按「用戶端設定」(注意!重點來了!)
5. 伺服器別名輸入:www.123.com.tw
   左邊點選「TCP/IP」,右邊伺服器名稱輸入:www.123.com.tw
   按「確定」關閉此視窗
6. 按「取消」,結束新增資料來源的動作
完成! 這個動作和有安裝
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
mingshean
一般會員


發表:4
回覆:6
積分:2
註冊:2003-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-25 15:41:06 IP:61.220.xxx.xxx 未訂閱
謝謝Sryang 大大的回應, 我知道這樣的設定方式,可是有沒有辦法直接用程式就可控制,因為不太可能要客戶到每個Client做這個動作。    謝謝您    
引言: 至 client 端的 ODBC 中設定資料庫連線方式,作法如下:
1. 開啟 ODBC 設定
2. 新增一個資料來源,挑選 SQL Server,按「完成」
3. 「名稱」任意輸入,「伺服器」隨便輸入,按「下一步」(重點還沒到)
4. 按「用戶端設定」(注意!重點來了!)
5. 伺服器別名輸入:www.123.com.tw
   左邊點選「TCP/IP」,右邊伺服器名稱輸入:www.123.com.tw
   按「確定」關閉此視窗
6. 按「取消」,結束新增資料來源的動作
完成! 這個動作和有安裝 >< face="Verdana, Arial, Helvetica">
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-25 15:42:02 IP:211.20.xxx.xxx 未訂閱
剛剛搜尋了一下 Registry,發現這個設定值寫在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo 裡面。 所以,上一篇的動作,可以簡化為 1. 開啟 regedit,並開啟上述機碼 2. 新增一字串值,名稱為:www.123.com.tw 3. 值為:DBMSSOCN,www.123.com.tw 完畢! 所以,在程式中利用 TRegistry 寫入這個 registry 值咯! 加油喔,喵~ 發表人 - sryang 於 2004/05/25 15:43:56
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
mingshean
一般會員


發表:4
回覆:6
積分:2
註冊:2003-02-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-25 16:19:41 IP:61.220.xxx.xxx 未訂閱
感謝Sryang 大大的回應 測試的結果發現如果這台Client在odbc的設定上曾經設定過用TCPIP連到MSSQL,那麼方式就可行,但是如果從來沒有設定過,而且在網路協定上有NetBeui的話,那麼一樣是不行的。    謝謝您    
引言: 剛剛搜尋了一下 Registry,發現這個設定值寫在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo 裡面。 所以,上一篇的動作,可以簡化為 1. 開啟 regedit,並開啟上述機碼 2. 新增一字串值,名稱為:www.123.com.tw 3. 值為:DBMSSOCN,www.123.com.tw 完畢! 所以,在程式中利用 TRegistry 寫入這個 registry 值咯! 加油喔,喵~ 發表人 - sryang 於 2004/05/25 15:43:56
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-25 17:22:08 IP:211.20.xxx.xxx 未訂閱
那麼,在 registry 值的部分輸入 DBMSSOCN,(ip address) 如何? 例如:DBMSSOCN,192.168.100.1 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
gowtay
一般會員


發表:0
回覆:1
積分:0
註冊:2002-12-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-25 18:04:28 IP:202.39.xxx.xxx 未訂閱
只要更改 ADOConnection 中 ConnectString 即可 你原先 ConnectString 為 Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw 只要更改為 Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw;Network Library=dbmssocn 即為使用 TCP/IP 通信協定 其中 Network Library 字串值參照如下 dbnmpntw : Named Pipes dbmssocn : TCP/IP dbmsspxn : IPX/SPX dbmsvinn : Banyan  dbmsrpcn : Multi-Protocol ( Windows RPC )        
引言: 各位先進好: 請問我寫了一支程式,我使用ADO,用OLE DB 連線到ms sql,當我安裝到clent時,只要client端是有裝NETBEUI通訊協定時,就會連不到SQL,除非把NetBeui移除只剩TCP/IP,就可連上,但是NetBeui因為其他原因,故不能移除,請問有解決的方式嗎? 謝謝各位。 開發環境:Delphi 6.0 SQL : Windows Server 2000 MS SQL2000 Client : Windows 98,Windows 2000,client分散在各大樓,各大樓之間走TCP/IP Delphi ADO的設定:Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-25 23:01:45 IP:61.64.xxx.xxx 未訂閱
原來這樣就可以了,又學到一招 感謝 gowtay 兄! 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
mingshean
一般會員


發表:4
回覆:6
積分:2
註冊:2003-02-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-26 12:27:04 IP:61.56.xxx.xxx 未訂閱
非常謝謝gowtay大大 已經可以了
引言: 只要更改 ADOConnection 中 ConnectString 即可 你原先 ConnectString 為 Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw 只要更改為 Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw;Network Library=dbmssocn 即為使用 TCP/IP 通信協定 其中 Network Library 字串值參照如下 dbnmpntw : Named Pipes dbmssocn : TCP/IP dbmsspxn : IPX/SPX dbmsvinn : Banyan dbmsrpcn : Multi-Protocol ( Windows RPC )
引言: 各位先進好: 請問我寫了一支程式,我使用ADO,用OLE DB 連線到ms sql,當我安裝到clent時,只要client端是有裝NETBEUI通訊協定時,就會連不到SQL,除非把NetBeui移除只剩TCP/IP,就可連上,但是NetBeui因為其他原因,故不能移除,請問有解決的方式嗎? 謝謝各位。 開發環境:Delphi 6.0 SQL : Windows Server 2000 MS SQL2000 Client : Windows 98,Windows 2000,client分散在各大樓,各大樓之間走TCP/IP Delphi ADO的設定:Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=dbtest;Data Source=www.123.com.tw
系統時間:2024-05-18 21:26:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!