[英]How do i get a TDataset to store empty string instead of null?
我的數據庫中有一個必填字段(NOT NULL),但允許使用空字符串。
我如何獲得一個delphi TDataset來使用它? 將字段對象的required屬性設置為true或false時,它似乎仍試圖存儲null而不是空字符串。
有關信息,請使用TIBDataset和TIBStringField。
通常,您可以像這樣在OnBeforePost
設置值:
if IBDataSet1.FieldByName('OPTION_TEXT').IsNull then
begin
IBDataset1.FieldByName('OPTION_TEXT').Value = '';
end;
但是,TIBStringField具有未發布的屬性EmptyAsNull
,您必須將其設置為False
。 默認值為True
。 啟用此功能后,數據集將幫您一個忙,並將空字符串轉換為NULL
:
您可以這樣關閉它:
if IBDataSet1.FieldByName('OPTION_TEXT').IsNull then
begin
TIBStringField(IBDataset1.FieldByName('OPTION_TEXT')).EmptyAsNull := False;
IBDataset1.FieldByName('OPTION_TEXT').Value = '';
end;
另外,如果您使用的是靜態(設計時)字段,或者在任何創建字段的位置,都可以在窗體的OnCreate
的字符串字段上設置EmptyAsNull
屬性。
TField具有默認值的屬性,但它是字符串,不幸的是,空字符串表示沒有默認值,因此對您的情況沒有幫助。 但是您可以從數據集中捕獲OnBeforePost事件並檢查是否字段為NULL,然后使用空字符串進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.