| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		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 文章: 4252 來自: 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 文章: 4252 來自: 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") | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |