Q:Interbase 並沒有提供布林型態的欄位,如何解決?
A:利用 domain:
  CREATE DOMAIN BOOLEAN AS CHAR(1) CHECK (VALUE IN ("T","F")) NOT NULL;

  至於 data-aware control 則仍是使用 TDBCheckBox, 只不過要把
  ValueChecked 及 ValueUnchecked 分別設為 'T' 及 'F' 即可。

  如果你的布林欄位需要顯示在 DBGrid 中,而且你所使用的 DBGrid 能夠將
  布林欄位以 CheckBox 的樣式顯示出來的話,你可以利用 Calculated field
  建立真正的布林欄位供顯示之用。例如:

  procedure TDmod.tbleEmpCalcFields(DataSet: TDataSet);
  begin 
    DataSet.FieldByName('CalcSex').AsBoolean := 
      DataSet.FieldByName('Sex').AsBoolean;
    // 注意此處欄位 Sex 雖然實際上為 'T' 或 'F', 但使用 AsBoolean
    // 一樣可以得到正確值
  end;

  如果這樣還嫌不夠,你希望能夠以滑鼠點選 DBGrid 上的 CheckBox 來修改
  該欄位的值,你可以在計算欄位的 OnChange 事件中設定真正的資料欄位值。
  而為了避免發生無限遞回的情形,你必須在指定資料欄位值的時候先關閉
  AutoCalcFields,參考下面的程式碼:

  procedure TDmod.tblEmpCalcSexChange(Sender: TField);
  begin
    Sender.DataSet.AutoCalcFields := false;
    if Sender.AsBoolean then
      Sender.DataSet.FieldByName('Sex').AsString := 'T'
    else
      Sender.DataSet.FieldByName('Sex').AsString := 'F';
    Sender.DataSet.AutoCalcFields := true;
  end;


    Source: geocities.com/huanlin_tsai/faq

               ( geocities.com/huanlin_tsai)