簡體   English   中英

我如何獲取一個TDataset來存儲空字符串而不是null?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM