VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

求教 vfp 連 ms sql

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
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玩熟了再去碰吧
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
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. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
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")
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作