  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 1 樓
  | 
		
			
				 發表於: 星期六 十月 17, 2015 8:13 pm    文章主題: 如何在 vfp9 通過 view update '0000-00-00' 去 mysql date column | 
				     | 
			 
			
				
  | 
			 
			
				請教各位高手
 
 
我用的是 vfp 9.0 sp2 和 mysql 5.0.37
 
 
我在mysql里建立了一個 table, 如下
 
 
CREATE TABLE `policy` (
 
  `policy_id` int(10) unsigned NOT NULL auto_increment,
 
  `ref_no` varchar(10) NOT NULL default '',
 
  `effective_date` date NOT NULL default '0000-00-00',
 
  `expire_date` date NOT NULL default '0000-00-00',
 
  PRIMARY KEY  (`policy_id`),
 
  KEY `idx_ref_no` (`ref_no`)
 
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 
然後, 我在vfp的view建立了一個remote view ( 名字是view_policy ), 如下
 
 
SELECT Policy.policy_id, Policy.ref_no,;
 
  Policy.effective_date, Policy.expire_date;
 
 FROM ;
 
     policy Policy;
 
 WHERE  Policy.ref_no = ( ?cRef_No );
 
 ORDER BY Policy.ref_no
 
 
DBSetProp(ThisView,"View","SendUpdates",.F.)
 
DBSetProp(ThisView,"View","BatchUpdateCount",1)
 
DBSetProp(ThisView,"View","CompareMemo",.T.)
 
DBSetProp(ThisView,"View","FetchAsNeeded",.F.)
 
DBSetProp(ThisView,"View","FetchMemo",.T.)
 
DBSetProp(ThisView,"View","FetchSize",100)
 
DBSetProp(ThisView,"View","MaxRecords",-1)
 
DBSetProp(ThisView,"View","Prepared",.F.)
 
DBSetProp(ThisView,"View","ShareConnection",.F.)
 
DBSetProp(ThisView,"View","AllowSimultaneousFetch",.F.)
 
DBSetProp(ThisView,"View","UpdateType",1)
 
DBSetProp(ThisView,"View","UseMemoSize",255)
 
DBSetProp(ThisView,"View","Tables","policy")
 
DBSetProp(ThisView,"View","WhereType",3)
 
 
DBSetProp(ThisView+".policy_id","Field","DataType","I")
 
DBSetProp(ThisView+".policy_id","Field","UpdateName","policy.policy_id")
 
DBSetProp(ThisView+".policy_id","Field","KeyField",.T.)
 
DBSetProp(ThisView+".policy_id","Field","Updatable",.F.)
 
 
DBSetProp(ThisView+".ref_no","Field","DataType","C(10)")
 
DBSetProp(ThisView+".ref_no","Field","UpdateName","policy.ref_no")
 
DBSetProp(ThisView+".ref_no","Field","KeyField",.F.)
 
DBSetProp(ThisView+".ref_no","Field","Updatable",.T.)
 
 
DBSetProp(ThisView+".effective_date","Field","DataType","D")
 
DBSetProp(ThisView+".effective_date","Field","UpdateName","policy.effective_date")
 
DBSetProp(ThisView+".effective_date","Field","KeyField",.F.)
 
DBSetProp(ThisView+".effective_date","Field","Updatable",.T.)
 
 
DBSetProp(ThisView+".expire_date","Field","DataType","D")
 
DBSetProp(ThisView+".expire_date","Field","UpdateName","policy.expire_date")
 
DBSetProp(ThisView+".expire_date","Field","KeyField",.F.)
 
DBSetProp(ThisView+".expire_date","Field","Updatable",.T.)
 
 
當我在vfp 增加一個新的一筆資料如下, 
 
 
select view_policy
 
appe blan 
 
cRef_No = '0001'
 
dEffective_Date = date()
 
dExpire_Date = date()
 
 
replace ref_no with cRef_No, effective_date with dEffective_Date, expire_date with dExpire_Date
 
 
CursorSetProp("SendUpdates",.T.,"view_policy")
 
TABLEUPDATE(.f.,.t.,"view_policy")
 
CursorSetProp("SendUpdates",.f.,"view_policy")
 
 
就沒問題, 但當我更改程式如下, 就出現問題了
 
 
select view_policy
 
appe blan 
 
cRef_No = '0001'
 
dEffective_Date = ctod( "" )
 
dExpire_Date = ctod( "" )
 
 
replace ref_no with cRef_No, effective_date with dEffective_Date, expire_date with dExpire_Date
 
 
CursorSetProp("SendUpdates",.T.,"view_policy")
 
TABLEUPDATE(.f.,.t.,"view_policy")
 
CursorSetProp("SendUpdates",.f.,"view_policy")
 
 
就會出現 error 1526, incorrect date value for column effective_date
 
請問我如何可以 update '0000-00-00' 去 mysql date column? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 2 樓
  | 
		
			
				 發表於: 星期六 十月 17, 2015 9:32 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				試看看這樣行否?
 
dEffective_Date = "0000-00-00"
 
dExpire_Date = "0000-00-00" | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 十月 17, 2015 9:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 我試了, 不可以, 請問你有方法可以讓 mysql 接受空的日期? 是不是一定要用null ? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		CCB2000
 
 
  註冊時間: 2009-03-25 文章: 97
 
  第 4 樓
  | 
		
			
				 發表於: 星期日 十月 18, 2015 9:17 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不要在SQL數據庫中存儲空日期{//}。
 
 
PUBLIC m.p_sql_emptydate
 
m.p_sql_emptydate=DATE(1900,1,1)
 
 
REPL dEffective_Date WITH IIF(dEffective_Date={//}, m.p_sql_emptydate, dEffective_Date)
 
 
需要顯示日期時:
 
?IIF(dEffective_Date=m.p_sql_emptydate, {//}, dEffective_Date) _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 5 樓
  | 
		
			
				 發表於: 星期日 十月 18, 2015 2:18 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				哈哈哈......說的也是, 為甚麼沒有想到
 
 
我一直在想方法在數據庫中存儲空日期, 一直在那裡轉
 
你的簡單的方法就是最好的方法, 謝謝 !!!!!!!!!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 6 樓
  | 
		
			
				 發表於: 星期日 十月 18, 2015 9:07 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我都是透過spt去操控mysql , 存入 '0000-00-00' 不會有問題
 
不去使用 remote view 和 mysql 溝通 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 7 樓
  | 
		
			
				 發表於: 星期一 十月 19, 2015 8:47 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我現在覺得,
 
最好的方法就是"不要用DATE型態".  Orz _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		aizz
 
 
  註冊時間: 2007-01-29 文章: 172
 
  第 8 樓
  | 
		
			
				 發表於: 星期五 十月 30, 2015 9:39 am    文章主題: 樓上 +1 | 
				     | 
			 
			
				
  | 
			 
			
				 	  | syntech 寫到: | 	 		  我現在覺得,
 
最好的方法就是"不要用DATE型態".  Orz | 	  
 
 
 
35年前用 dBase 開始, 就從來沒用過 DATE 格式, 果然都沒有被這個問題困擾過
 
 
也不會被千禧蟲蟲咬到
 
也沒有民國跨百年問題
 
 
好爽  ~~
 
 
 
 
            | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |