  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 1 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 3:38 pm    文章主題: 關於SPT方式時的數字問題 | 
				     | 
			 
			
				
  | 
			 
			
				想破頭了, 也找不到
 
 
語法如下:
 
sqlcmd = "INSERT INTO ymtmainor (oppdnp, opitnr, opvdnr, opodqt, opfddt, oppums, oppdate, opsales, opvdpc, optran, oppdnpdata, opdttime) " + ;
 
                   "VALUES ('&oppdnp', '&opitnr', '&opvdnr', &XOPODQT, '&opfddt', '&oppums', '&oppdate', '&oopsales', '&opvdpc', '&optran', '&oppdnpdate', '&opdttime')"
 
 
使用SPT方式, 要將資料入資料庫, 字串形態的都沒問題, 但是遇到數字欄位 XOPODQT, 我就破功了
 
 
請問一下
 
1.如果更新的欄位很多, 大大們是否用 CURSOR VIEW 的方式進行資料庫新增, 修改的方式??
 
2.如果以我的方式, 數字欄位該如何處理?? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		nelsonchuang
 
 
  註冊時間: 2003-09-04 文章: 564 來自: 臺灣
  第 2 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 3:55 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				"VALUES ('&oppdnp', '&opitnr', '&opvdnr',"+ALLT(STR( &XOPODQT))+", '&opfddt'... _________________ 大家好,請多指教 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 3 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 3:58 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				您應該先檢驗一下,messagebox(sqlcmd)
 
看看出來的內容有無漏失 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 4 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 4:10 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | nelsonchuang 寫到: | 	 		  | "VALUES ('&oppdnp', '&opitnr', '&opvdnr',"+ALLT(STR( &XOPODQT))+", '&opfddt'... | 	  
 
 
轉成文字的數字, 可以寫入 sql server 的數字欄位嗎??
 
還是 sql server 會自行轉換??
 
如果是自行轉換, 那我真是白忙了大半天 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 5 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 4:21 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				===== vfp help ======
 
若要用 SQL pass-through 建立一個有條件的查詢 
 
 
在 SQLEXEC( ) 函數中執行一個 SQL 字串,在字串中包含 Visual FoxPro 參數,在參數之前需要加上問號 (?)。 
 
所提供的參數被當作 Visual FoxPro 運算式進行求值,求得的值將作為該資料集 SQL 敘述的一部份被傳送。如果求值失敗,Visual FoxPro 會提示輸入參數的值。
 
 
秘訣 如果您的參數是一個運算式,請把該參數用括號括起來。這可以保證整個運算式做為參數的一部份進行求值。
 
 
例如,如果在遠端伺服器上的 Testdata 資料庫中有一個 customer的資料表格,下列程式碼建立一個有條件的查詢,只檢視那些國家名稱與 ?cCountry 參數值相符合的客戶:
 
 
? SQLEXEC(1,'SELECT * FROM customer WHERE customer.country = ?cCountry')
 
 
===== vfp help ======
 
 	  | 代碼: | 	 		  
 
sqlcmd = "INSERT INTO ymtmainor (oppdnp, opitnr, opvdnr, opodqt, opfddt, oppums, oppdate, opsales, opvdpc, optran, oppdnpdata, opdttime) " + ; 
 
"VALUES (?oppdnp, ?opitnr, ?opvdnr, ?xOPODQT, ?opfddt, ?oppums, ?oppdate, ?oopsales, ?opvdpc, ?optran, ?oppdnpdate, ?opdttime)" 
 
 
SELECT TABLE1
 
SCAN
 
&&   若table1中有oppdnp, opitnr, opvdnr, opfddt, oppums, oppdate, oopsales, opvdpc, optran, oppdnpdate, opdttime,OPODQT 等欄位
 
&&    而xOPODQT為一變數,為 1+OPODQT
 
   xOPODQT = 1+OPODQT
 
   =SQLEXEC(ConnectHandle,sqlcmd)
 
ENDSCAN
 
 | 	  
 
 
什麼型態都可以用,會自動處理型態.
 
你可以利用 SQL PROFILER 驗證 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙
  syntech 在 星期三 五月 27, 2009 4:30 pm 作了第 2 次修改 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 6 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 4:23 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				勿濫用 & 運算子 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		nelsonchuang
 
 
  註冊時間: 2003-09-04 文章: 564 來自: 臺灣
  第 7 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 5:43 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | goodnight 寫到: | 	 		   	  | nelsonchuang 寫到: | 	 		  | "VALUES ('&oppdnp', '&opitnr', '&opvdnr',"+ALLT(STR( &XOPODQT))+", '&opfddt'... | 	  
 
 
轉成文字的數字, 可以寫入 sql server 的數字欄位嗎??
 
還是 sql server 會自行轉換??
 
如果是自行轉換, 那我真是白忙了大半天 | 	  
 
你傳入的東西,本來就是字串啊~讓SQL SERVER看得懂的字串不是嗎?
 
另外,SYNTECH的帖也值得一看,因為我根本就忘了有使用?來傳參數的這招~
 
呵,謝啦SYNTECH _________________ 大家好,請多指教 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 8 樓
  | 
		
			
				 發表於: 星期三 五月 27, 2009 5:47 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				字串也不見得不好.
 
但是應該要DUMP出來檢查.
 
三樓也跟你說了.
 
 
例如
 
 	  | 代碼: | 	 		  
 
insert into table1 (f1,f2,f3) values ('a',1000,'b')
 
 | 	  
 
是對的
 
 
但
 
 	  | 代碼: | 	 		  
 
insert into table1 (f1,f2,f3) values ('a',1,000,'b')
 
 | 	  
 
 
則是大錯特錯
 
 
 
 
 
和紅狐說的一樣,
 
你對 SQL SERVER的了解太少,導致你對SPT的運作存在很多誤解.
 
SQL SERVER 在某些情況下會自動處理型態轉換,
 
你應該去了解這些. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		pilipala
 
 
  註冊時間: 2009-05-13 文章: 75
 
  第 9 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 10 樓
  | 
		
			
				 發表於: 星期一 六月 01, 2009 2:09 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				to syntech
 
 
雖然公司用 sql server , 但都沒有實際去開發程式應用, 最近因為需求, 所以才開始連上 sql 存取資料
 
測試後 
 
INSERT INTO INVMB VALUES ("6") 和 INSERT INTO INVMB VALUES (6) 都是可以, 如 nelsonchuang 說的, 本來就是丟字串上去了, 只是我沒有SQL 的一些特性的概念 _________________ 希望有更多人來參與
 
VFP wiki - 需要大家一起完成的VFP電子書與FAQ | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 11 樓
  | 
		
			
				 發表於: 星期一 六月 01, 2009 2:15 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				spt 法因為可以自己寫更新sql命令,
 
所以寫法的好壞就是自己對sql server熟悉的程度差別了.
 
 
你可以用 sql profiler 比較 5樓的方式做出來的sql 命令與你自己寫的sql 命令有何不同. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 12 樓
  | 
		
			
				 發表於: 星期三 六月 03, 2009 10:22 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				sy 大
 
另外請教一下, 如果有大量資料的變動或是新增, 假設有10000筆
 
下列哪一種方式會比較好??
 
 
方法一:
 
SQLSETPROP(ConnectHandle, 'Transactions', 2)  && 手動
 
scan
 
 
    SQLCMD = "SPT STRING"
 
    SQLEXEC(ConnectHandle, SQLCMD)
 
 
endscan
 
SQLCOMMIT(ConnectHandle)
 
 
 
方法二:
 
SQLSETPROP(ConnectHandle, 'Transactions', 2)  && 手動
 
scan
 
 
    SQLCMD = "SPT STRING"
 
    SQLEXEC(ConnectHandle, SQLCMD)
 
    SQLCOMMIT(ConnectHandle)
 
 
endscan | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		pilipala
 
 
  註冊時間: 2009-05-13 文章: 75
 
  第 13 樓
  | 
		
			
				 發表於: 星期四 六月 04, 2009 7:37 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				利用SQLSetProp啟動一個交易後,一旦遇上SQLCommit或是SQLRollBack後,交易就結束了,
 
所以方法二只能對你的第一筆資料進行交易,當第一筆資料結束時,無論成功與否,交易就結束了。
 
 
另,這兩個方法,只看見SQLCommit,卻沒有SQLRollback,
 
應該要寫個判斷,判斷何時要SQLCommit或是SQLRollback
 
 
最後記得要設回自動交易
 
 
個人想法,希望有幫助~~ ^^ | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 14 樓
  | 
		
			
				 發表於: 星期四 六月 04, 2009 11:01 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				進入交易模式,
 
意味 SQL SERVER 必須準備資源好應付可能發生的 ROLLBACK,
 
你要搞定10000筆?
 
純資料處理,我不作交易控制.
 
只有單據等需要嚴格確保"要不就都成功,要不就都失敗"才作交易控制.
 
 
 
從你對方法1/2的運作模式都搞不清楚的情況下,
 
先收集相關情報吧.
 
 
VFP 的遠端交易處理模式,請參閱 HELP.
 
都有範例.
 
基礎常識請參閱各資料庫運作原理 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 15 樓
  | 
		
			
				 發表於: 星期三 六月 10, 2009 8:44 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				sy 大
 
 sqlrollback() 的指令有, 我只是省略
 
我是在 sqlexec() 是 -1 時, 全部 rollback
 
目前我是使用方法一, 幾萬筆做完後才 commit
 
不過這樣的方式是不是風險比較高??
 
我本想每一筆就 commit , 不過考慮到效率, 所以才順便詢問一下, 
 
看看大家比較建議哪一種 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |