上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
amytamst
註冊時間: 2010-04-06 文章: 15
第 1 樓
|
發表於: 星期三 一月 19, 2011 5:36 pm 文章主題: 求教 vfp 連 ms sql |
|
|
由於這兩天開始接觸 sql 都不懂 vfp to SQL 所以只能向各位前先進求教
我安裝好 ms sql 之後 在 sql 環境下設定了
主機部份
1.預設執行個體
2.採混合模式驗証
3.sa 使用者跟密碼都設了
4.ip位置也設了
5.伺服器也重啟動了 (ms sql 2005 ep版)
工作站沒設什麼 只有foxpro
接著試著由本站各位先進所留下文章內容 加以學習測試
首先 我試著開foxpro裡的connections
在主機上 可以建立 工作站就不行 後來試著在sql上遠端連線設定TCP/IP和具名通道
結果就可以建立connections
問題一 是請問在 vfp 跟 sql 連接時一定要選此模式嗎
問題二 就是如各位大大所述 spt 的方式 是否如下
主機 ip 114.22.246.29 我由工作站下
lcusername = 'sa'
lcservername = '114.22.246.29'
lcuserpass = '12345678'
lcdbname = 'master'
=SQLSETPROP(0,"DispLogin",3)
connectionhandle = SQLSTRINGCONNECT([DRIVER = SQL
Server;SERVER=]+lcservername+[;DATABASE=]+lcdbname+
[UID=]+lcusername+[;PWD=]+lcuserpass)
WAIT WINDOW connectionhandle
結果顯示的都是-1
接著我想會不會是無線ap惹的麻煩
主機我另接在 hinet 所提供的 撥接器
這時主機另外產生了 兩組 ip
我套進去一樣 值都是 -1
後來我改成
connectionhandle = SQLSTRINGCONNECT("DRIVER=SQL
Server;SERVER=測試;UID=sa;PWD=12345678")
結果竟然可以了
接著請問大大們 透過無線ap連主機 真實 ip 只有一個 這樣接法,主機需要獨立出
來換另外一個ip嗎 , 還有就是我為何沒法子用ip位置連呢 ?
盼各位大大解惑 謝謝 .. |
|
回頂端 |
|
 |
pilipala
註冊時間: 2009-05-13 文章: 75
第 2 樓
|
發表於: 星期三 一月 19, 2011 5:44 pm 文章主題: |
|
|
IP 用 XXX.XXX.XXX.XXX,Port 的方式去試看看
另外可以用aerror來抓取錯誤訊息
代碼: |
lnHandle = Sqlstringconnect(.....)
if lnHandle < 0
Aerror(laError)
messagebox(laError(2))
endif
|
|
|
回頂端 |
|
 |
amytamst
註冊時間: 2010-04-06 文章: 15
第 3 樓
|
發表於: 星期三 一月 19, 2011 6:09 pm 文章主題: |
|
|
感謝 pilipala 跟據您的作法 出現
connectivity error [Microsoft][ODBC驅動程式管理員]找不到資料來源名稱且未指定預設的驅動程式
再請問這錯誤要從哪設定 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期三 一月 19, 2011 6:11 pm 文章主題: |
|
|
有遇過 client 端網路函式庫版本不一致,不能連線的情況.
變成需要在client端上安裝同版本sql server 的連接工具才可以連.
請先利用[控制台][odbc] 手動連接,確定可以連上去之後,
再用程式連看看. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
amytamst
註冊時間: 2010-04-06 文章: 15
第 5 樓
|
發表於: 星期三 一月 19, 2011 7:03 pm 文章主題: |
|
|
剛看了help 去設定odbc 不管是 tcp/ip 或 具名通道
執行結果 都一樣 手動都可以連 程式還是
connectionhandle = SQLSTRINGCONNECT("DRIVER=SQL Server;SERVER=測試;UID=sa;PWD=12345678")
這樣下可以過
我在想 會不會 sql server 那邊的別名的問題 基本上 那裡的別名要留著對嗎?
另外 help 裡有提到odbc登錄基本類別 如下 不知各位前輩有用過沒
------------------------------------------------------------------
使用該類別的方法是:將其置放到專案或表單中,或者從 [元件陳列庫] 的 [項目] 快顯功能表中選擇 [加至專案] 或 [加至表單]。當您將該類別加至表單上時,Visual FoxPro 會將該類別放在表單上。然後可指定合適的屬性值,並提供必要的輸入和輸出物件。在將該類別置放到專案中時,可以選擇加入該類別或建立一個次類別。
有關使用基本類別的詳細內容,請參閱「Visual FoxPro 基本類別的使用指南」。
屬性、事件、方法程序 說明
LoadODBCFuncs 方法程序
載入 ODBC 登錄函數。
語法:LoadODBCFuncs( )
傳回值:無
參數:無
GetODBCDrvrs 方法程序
取出 ODBC 驅動程式。
語法:GetODBCDrvrs(@aDrvrs, lDataSources)
傳回值:nRetVal
參數:aDrvrs 指定陣列中需要取出的驅動程式。lDataSources 指定是否存取資料來源。
EnumODBCDrvrs 方法程序
列舉 ODBC 驅動程式。
語法:EnumODBCDrvrs(@aDrvrOpts, cODBCDriver)
傳回值:aDrvrOpts、m.cSourceKey、HKEY_LOCAL_MACHINE、.F.
參數:aDrvrOpts 指定可使用的驅動程式選項。cODBCDriver 指定驅動程式的名稱。
EnumODBCData 方法程序
列舉 ODBC 資料來源。
語法:EnumODBCData(@aDrvrOpts, cDataSource)
傳回值:aDrvrOpts、m.cSourceKey、HKEY_CURRENT_USER、.F.
參數:aDrvrOpts 指定可使用的驅動程式選項。cDataSource 指定資料來源的名稱。
*---------------------------------------------------
等等再來試 工作端也安裝連結驅動程式 |
|
回頂端 |
|
 |
wch277
註冊時間: 2004-10-07 文章: 13
第 6 樓
|
發表於: 星期四 一月 20, 2011 8:44 am 文章主題: |
|
|
會不會是這個問題?
DISABLENETWORKPROTOCOLS=n 指定執行個體是否接受來自其他電腦所執行之應用程式的網路連線。依預設,或當您指定 DISABLENTWORKPROTOCOL=1 時,安裝程式會將執行個體設定為不接受網路連線。指定 DISABLENETWORKPROTOCOLS=0 以啟用網路連線。 |
|
回頂端 |
|
 |
amytamst
註冊時間: 2010-04-06 文章: 15
第 7 樓
|
發表於: 星期四 一月 20, 2011 6:02 pm 文章主題: |
|
|
謝謝 先進們的指導 試了好久 總於好像可以了
經 foxpro help 及 sample 由 odbc 介面切入 方法 如下
Declare Integer SQLConfigDataSource In odbccp32 Integer, Integer, String, String
lreturn=SQLConfigDataSource(0,2,'SQL Server',[CON字串])
IF lreturn=0
lreturn=SQLConfigDataSource(0,1,'SQL Server',[CON字串])
endif
=SQLSETPROP(0,"DispLogin",3)
sql_connect=SQLConnect("連結名稱","sa","密碼")
if sql_connect < 0
Aerror(laError)
messagebox(laError(2))
endif
WAIT WINDOW sql_connect
接著應該由
=SQLEXEC(sql_connect,'SELECT * FROM ......','......')
再學習了 對嗎?
以上 會自動在工作站 產生連結的odbc ,不管con字串裡 server = 別名或server = ip 都連的上 只是 接在無線ap的後端而ap沒有採Bridge模式的情形以IP連接的話 需採取虛擬ip
因為剛入門 對 vfp to sql 真的陌生 有那裡不對的請各位先進 不吝指正 THANK~ |
|
回頂端 |
|
 |
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 8 樓
|
發表於: 星期四 一月 20, 2011 10:50 pm 文章主題: |
|
|
這就是4樓S大所說的
先建立好ODBC 確定能通了之後 VFP再去取用
STRINGCONN等你ODBC玩熟了再去碰吧 |
|
回頂端 |
|
 |
amytamst
註冊時間: 2010-04-06 文章: 15
第 9 樓
|
發表於: 星期五 一月 21, 2011 9:14 am 文章主題: |
|
|
感謝 LiuRambo 的指導我會再詳細研究odbc
上回做法 是為了 client 端可以固定 remode view 不過看看help裡的create sql view說明 想想也可以不用 真是初學者阿 希望各位多多指教
同時也有測試了lreturn=SQLConfigDataSource(0,2,'SQL Server',[CON字串])以
SQLSTRINGCONNECT([CON字串]) 不管以 ip 或伺服器名稱都可以過了 差就差在分享器 沒區分開ip 在這再問一下 主機接在分享器後面 登入ip 我的測試結果 要以虛ip登入 不知各位大大也是嗎 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 10 樓
|
發表於: 星期五 一月 21, 2011 9:23 am 文章主題: |
|
|
如果你把分享器上的設定 PORT 1433 映射到主機的IP ,
你就可以使用貴公司的外部IP連接.
順便也提供不肖分子侵入SQL SERVER的機會. XD _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
unian
註冊時間: 2010-07-03 文章: 3
第 11 樓
|
發表於: 星期三 三月 02, 2011 4:09 pm 文章主題: |
|
|
nHandle= SQLStringConnect("driver={SQL Server};server=192.168.0.4;uid=&cUID;pwd=&cPWD;database=&cDB") |
|
回頂端 |
|
 |
|