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

ClienDataSet 不能給與not nullable 欄位空白值??

尚未結案
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 15:35:51 IP:61.221.xxx.xxx 未訂閱
小弟是用 D7 SQL2000 DBExpress ClientDataSet 來存取資料 當我的定義欄位為not Null 不管是否為PK值,當我使用ClientDataSet.fieldbyname('a').asstring:=''; ClientDataSet.Post; --會出現錯誤詢息 field value required 以前使用ADO來處理的時候,是沒有問題的,此欄位會存入空白。換成ClientDataSet SQLQuery之後就不行,還必須asstring 一個值,還不能為' '(空一格或空白)。
------
ivankuo
kensoong
初階會員


發表:31
回覆:70
積分:45
註冊:2003-05-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-17 11:22:19 IP:61.56.xxx.xxx 未訂閱
這可能與dbExpress的特性有關,您必須設定正確才不會出現這些問題... (您的Table欄位是否有定義Default 初值???) 所以:Update鎖定PK即可Update正常. 將DataSetProvider之UpdateMode設為upWherekeyOnly 再將key欄位設為pinKey(doubleclick TQuery->選取field->於Object Inspector中providerFlag設pInkey為True) 請試試看...
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-17 13:30:00 IP:61.221.xxx.xxx 未訂閱
kensoong前輩: 我的PK欄位沒有預設值,not null(非PK)的欄位有設定預設值為空白,您的方式我有試過,也是不行,但是我並沒有下ApplyUpdate(-1)的動作,應該不會受到DataSetProvider的影響(不曉得對不對)。
------
ivankuo
kensoong
初階會員


發表:31
回覆:70
積分:45
註冊:2003-05-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-17 14:15:47 IP:61.56.xxx.xxx 未訂閱
那可能是有些欄位的設定問題: 請例查 例如: 1.不必要的欄位設成[Required] 2.欄位名稱為保留字... 3.欄位有Auto-Incremental 有沒有Update DBExpress for SQL Server ?==> dbexpmss.dll
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-17 18:15:18 IP:61.221.xxx.xxx 未訂閱
引言: 那可能是有些欄位的設定問題: 請例查 例如: 1.不必要的欄位設成[Required] PK不能不設,PK欄位有可能新增的時候需要給空白值。 2.欄位名稱為保留字... 沒有 3.欄位有Auto-Incremental 沒有 有沒有Update DBExpress for SQL Server ?==> dbexpmss.dll 我的版本是7.1.1308.21581 應該是最新的吧~~
------
ivankuo
kensoong
初階會員


發表:31
回覆:70
積分:45
註冊:2003-05-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-19 12:01:58 IP:211.76.xxx.xxx 未訂閱
建議您使用DBExpress的SQL Monitor去Debug... 若不會再把Sample丟出來幫您看.
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-20 11:30:48 IP:61.221.xxx.xxx 未訂閱
我有SQLMonitor 找過此問題,因為我的SQLQuery敘述中,有某個欄位是用SubQuery的方式去select 出來的,假設我的語法如下 select f1,f2, f3=(select a2 from t2 where a1=t1.f1), f4=(select b2 from t3 where b1=t1.f1) from t1 f3,f4都是虛擬欄位, 若我新增一筆資料 結果從SQLMonitor看到的卻是 insert into t2(f1,f2) value (...) //t2 是第一個subquery 的table 我try過把第二個subquery換到前面,結果變成 insert into t3(f1,f2) value (...) //t3 是第一個subquery 的table 除非把subquery拿掉,要不然會有問題。 不過,就算是這樣 f1為PK f2為not null 在append的時候還是不能為空白。
------
ivankuo
系統時間:2024-05-19 13:03:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!