全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2562
推到 Plurk!
推到 Facebook!

使用日期形態欄位存取錯誤

答題得分者是:SwingGuppy
cutena
一般會員


發表:11
回覆:10
積分:4
註冊:2006-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-23 11:57:17 IP:59.125.xxx.xxx 訂閱
各位前輩您好~
想請問:
目前使用Oracle 9i 的資料庫
在主檔M和明細檔D都有一個UPDDATE欄位為DATE型態
在修改資料時才會異動到這個欄位
QruerM.fieldbyname('UPDDATE').AsDateTime:=now;
QruerD.fieldbyname('UPDDATE').AsDateTime:=now;
存檔大部分可以成功
偶爾卻會出現
“Invaild Time.“ 這錯誤訊息
UPDDATE欄位值為0000/00/00 00:00:00
而明細部份若是一整批更新也是到某一行才會出現這問題,其餘行都是正確的日期值
而且都是偶爾才會發生這些情況

連進去資料庫看Table
一點Table即會出現“0.0 is not a valid timestamp“ 這樣的錯誤訊息
或是拉到UPDDATE欄位時也會出現相同錯誤訊息

查了好久,一直查不出原因
該怎麼做該如何修改呢?

~謝謝了~
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-23 20:08:54 IP:61.62.xxx.xxx 訂閱
0000/00/00 00:00:00 或是 0.0 應該是空值或是null值,DateTime型態欄位當然不接受。

這可能是當初由Delphi Insert資料時沒有過濾掉空值或是null值所留下的後遺症。

我的做法是直接到資料庫找出有問題的資料,然後直接下指令更新日期為1900/01/01,再把這些欄位回到應用程式來更新。

供您做參考。

===================引 用 cutena 文 章===================
各位前輩您好~
想請問:
??????? 目前使用Oracle 9i 的資料庫
在主檔M和明細檔D都有一個UPDDATE欄位為DATE型態
在修改資料時才會異動到這個欄位
QruerM.fieldbyname('UPDDATE').AsDateTime:=now;
QruerD.fieldbyname('UPDDATE').AsDateTime:=now;
存檔大部分可以成功
偶爾卻會出現
“Invaild Time.“ ?這錯誤訊息
UPDDATE欄位值為0000/00/00 00:00:00
而明細部份若是一整批更新也是到某一行才會出現這問題,其餘行都是正確的日期值
而且都是偶爾才會發生這些情況

連進去資料庫看Table
一點Table即會出現“0.0 is not a valid timestamp“ 這樣的錯誤訊息
或是拉到UPDDATE欄位時也會出現相同錯誤訊息

查了好久,一直查不出原因
該怎麼做該如何修改呢?

~謝謝了~
------
受人點滴,湧泉以報。
編輯記錄
SwingGuppy 重新編輯於 2007-04-23 20:21:11, 註解 無‧
cutena
一般會員


發表:11
回覆:10
積分:4
註冊:2006-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-25 09:39:16 IP:59.125.xxx.xxx 訂閱
感謝您熱情解答,目前也試著這樣做
看是否又有情況發生。
感恩~
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-10 16:11:15 IP:202.39.xxx.xxx 未訂閱
我的經驗,這種狀況大多會發生在每天 00:00 附近,DELPHI的元件在塞值的時候會有機率的發生這種狀況。
檢查日期是否為空值,不一定能100%抓到問題。因為他可能發生在寫入資料庫的過程中,而不是發生寫入之前。
由其日期格式為 yyyy/mm/dd hh:nn:ss 發生率還挺高,建議到控制台將日期格式改成 yyyymmddhhnnss 或者
yyyy-mm-dd hh:nn:ss 狀況會有所改善。
cutena
一般會員


發表:11
回覆:10
積分:4
註冊:2006-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-10 18:03:59 IP:59.125.xxx.xxx 訂閱
真是太謝謝了~
因為日前將資料庫的所有日期更新一次後,
居然還有相同問題發生...
您的建議一定會試試的!~
不過想確定一下..是在控制台/地區選項/時間、日期
中去設定嗎?
偶是Win2000..^^"..
而“狀況會有所改善“意思是說還是不能完全解決是嗎?
~感恩~

===================引 用 chenyk 文 章===================
我的經驗,這種狀況大多會發生在每天 00:00 附近,DELPHI的元件在塞值的時候會有機率的發生這種狀況。
檢查日期是否為空值,不一定能100%抓到問題。因為他可能發生在寫入資料庫的過程中,而不是發生寫入之前。
由其日期格式為 yyyy/mm/dd hh:nn:ss 發生率還挺高,建議到控制台將日期格式改成 yyyymmddhhnnss 或者
yyyy-mm-dd hh:nn:ss 狀況會有所改善。
系統時間:2024-05-16 2:44:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!