使用Format = Yes / No添加yes / no字段

时间:2016-02-23 03:11:19

标签: delphi ms-access

我有Delphi 6代码,它为Access表添加了一个位字段。 我无法获得任何代码将'Field Properties.General.Format'设置为是/否。 在现有表中,我有其他位字段,其值为0或1,其格式为“是/否”,因此现有字段显示复选框。 添加字段的代码是......

ADOQuery1.SQL.Text := 'ALTER TABLE MKSystem ADD COLUMN Use_GMK Bit Default 0 not      Null';
ADOQuery1.ExecSQL;

在我逐步执行ExeSQL代码后,我可以查看数据库,看到“Use_GMK”已添加到“MKSystem”表中,其默认值为0.列的“格式”为空。我已经尝试了一些我能想到的将格式设置为“是/否”但我没有成功。

检查以前的帖子后,我没有找到任何关于如何将此列的“格式”设置为是/否

的回复

非常感谢任何协助。

1 个答案:

答案 0 :(得分:1)

这个问题是更多数据库格式的链接。 Access是否能够创建枚举器格式?

在其他情况下,您应该在加载记录之后和显示之前解释该值(在这种情况下,您需要在加载数据之后以及保存之前实现代码)

使用String格式

const
  Enum[0] = 'NO';
  Enum[1] = 'YES';
begin
...
  showmessage(Enum[ADOQuery1.Fieldbyname('Use_GMK').asInteger]);

或使用布尔格式

const
  EnumBool[0] = false;
  EnumBool[1] = true;
begin
...
  CheckBox.checked := EnumBool[ADOQuery1.Fieldbyname('Use_GMK').asInteger];

或直接使用布尔本地

procedure TForm1.Button6Click(Sender: TObject);
begin
  checkbox1.Checked := boolean(Button6.Tag);  // this line can maybe fulfill your needs
  if Button6.Tag = 0 then
    Button6.Tag := 1
  else
    Button6.Tag := 0;
End;

我希望它有所帮助,因为它应该是存储正确值的数据库。 (MySQL有Enum类型允许这种事情)。在其他情况下,只需处理值即可转换"即时#34;在展示之前。