線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2510
推到 Plurk!
推到 Facebook!

DEFAULT ' ',not null 的欄位中無法修改成空白字串存入

尚未結案
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-16 14:34:51 IP:61.222.xxx.xxx 未訂閱
我在此一事件下想要把使用者輸入930101年改成20030101存入 且希望若修改時,輸入空白時,能存入空白.. 但一直會有錯誤訊息出來 "提供不一致或不完全的資訊導致參數物件不適當地被拒,錯誤碼3708 是為什麼哩 procedure TMD.vCDStrepstOUT_DTSetText(Sender: TField; const Text: String); var newDate:string; begin //轉中文年存入 if trim(text)='' then begin Sender.Value:=''; exit; end; newDate:=inttostr(strtoint(Text) 19110000); try StrToDate(sToDateStr(newDate)); Sender.Value :=newDate; except on E: EConvertError do begin showmessage(ERROR_INPUT_DATE); exit; end; end; 發表人 - cosuki 於 2004/02/16 14:56:27
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-16 14:45:08 IP:211.22.xxx.xxx 未訂閱
您好: 請問你的欄位型態是文字型態ㄇ?我想你的型態應該是『日期型態』,這種型態你存空字串,就會出錯因為型態不符 ~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/02/16 14:48:51
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-16 14:49:57 IP:61.222.xxx.xxx 未訂閱
是char
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-16 14:53:42 IP:61.222.xxx.xxx 未訂閱
且不管放幾個空白進去都是'' ''不等於null吧 因我有改成sender.clear,反而會有error說不可存入null
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-16 15:00:06 IP:61.221.xxx.xxx 未訂閱
您好: 你將處理的程式放在dataset.beforepost事件中試試,好像程式跑不到你的事件中,錯誤就先出現了 ~~應無所住而生其心~~
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-16 15:06:26 IP:61.222.xxx.xxx 未訂閱
我有在before post 給值:=' '; 但applyupdate時還是會變成'',就有err
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-16 15:14:18 IP:61.221.xxx.xxx 未訂閱
您好: 下斷點去偵錯,看錯在哪,我想是其他地方或其他程式的錯,這樣說不夠清楚,也難以猜測 ~~應無所住而生其心~~
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-16 17:13:01 IP:61.222.xxx.xxx 未訂閱
我們是用oracle 9i 且是在加入default '' 時,程式才變成這樣的 就是原本有值,要把他改成空白字串時就會這樣耶
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-16 19:55:58 IP:218.160.xxx.xxx 未訂閱
Hi cosuki 試試這個:

   if trim(text)='' then
   begin
      Sender.Clear;
      exit;
   end;    
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-16 21:24:15 IP:211.20.xxx.xxx 未訂閱
cosuki 你好    我沒有用Oracle  , 但我用MSSQL試了一下 1.預設值的欄位我輸入一個空白,它不理我,等於沒預設值。 2.輸入空字串(隨便輸入後再刪除),也等於沒預設值。 3.輸入'' 則預設值為兩個引號而不是空字串 4.輸入其他,當然輸入什麼預設值即是什麼。    所以,我真的沒辦設定預設值為''(空字串不是兩個引號),我在想你所謂的Default '' 會不會是上述的第三種狀況啊!不過即使如此,也不會出現你說的錯誤。     當然,預設值僅會影響新增的記錄及欄位值被清除時(Field.Clear),所以你在資料庫的欄位定義中是否有其他的約束條件(制約條件)影響到空字串儲存?即使預設值為xxxx,而存入空字串也不會出事。 祝好運 發表人 - chance36 於 2004/02/16 21:39:04
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-17 08:45:59 IP:61.222.xxx.xxx 未訂閱
Sender.Clear; 不行,我試過了..因為是設定not null的,所以修改存入時會有err 預設值沒有作用只有在新增時預設值有產生做用, 最後我把datasetprovider的resolvetodataset設成TRUE 就可以了,有人知道為何嗎 為什麼把存檔處理轉給DATASET就可以了(我用三層式在寫)
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-02-17 14:00:29 IP:218.160.xxx.xxx 未訂閱
Hi cosuki 您好: 我看了TDataSetProvider.ResolveToDataSet的Help, 有一點疑問, 你的資料有確實存到Server去嗎? This can be useful if the application uses the events on the dataset component or if the dataset does not represent the data from a database server (for example, a client dataset). 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
water
初階會員


發表:90
回覆:89
積分:35
註冊:2003-07-07

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-02-20 10:34:56 IP:61.222.xxx.xxx 未訂閱
引言: 930101 不等於 20030101 因該為 20040101
一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-02-24 08:52:22 IP:61.222.xxx.xxx 未訂閱
資料有存入server, resolvetodataset設成TRUE 只是存檔時經由dataset直接存, 所以我想資料型態會經由dataset做轉換吧
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-02-26 13:30:54 IP:211.20.xxx.xxx 未訂閱
Oracle 沒有「空字串」這玩意兒 只有「null」和「非空字串」 所以,在 Oracle 中,空字串相當於 null 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-06-29 16:32:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!