首页 > 解决方案 > 如何使用代码在 Delphi 中创建 Microsoft 的 Access 字段

问题描述

我目前正在研究床和早餐管理系统。我想使用代码在 Delphi 中创建一个 Microsoft 访问字段。我要创建的字段名称是rooms,我希望数据类型是text,我希望大小是6。我在堆栈溢出帖子上找到了一些代码,但不是全部。我不知道在括号里放什么。

//Adds the field to the ms access database

Adotable2.fielddefs.add()

标签: ms-accessdelphi

解决方案


将字段添加到 Access 表非常简单,前提是当时没有应用程序打开该表。但是,使用 FieldDefs.Add 不是这样做的方法,因为它会执行与此任务无关的其他操作。

假设您的 Delphi 表单(或数据模块)设置了一个 AdoTable1 来访问您要更改的表,并且 Access 数据库中的表名是“Hotels”,这将向其中添加 Rooms 列:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if AdoTable1.Active then //  close the Hotels table if AdoTable1 accesses it
    AdoTable1.Close;
  try
    AdoConnection1.Connected := True;
    AdoConnection1.Execute('alter table Hotels add column rooms text(6)');
  finally
    AdoTable1.Open;
  end;
end;

注意:我的 AdoConnection1 设置为使用“Microsoft Office 16 Access Database Engine OLE DB Provider”访问数据库。

顺便说一句,如果您在 AdoTable 中使用“持久字段”(如果您右键单击它并从弹出菜单中选择“字段编辑器...”,您将获得的字段列表,您将需要添加房间字段到它。如果你不使用持久字段,你不需要担心这个。

您提到的FieldDefs.Add用于将 Delphi 应用程序中的字段添加到例如 AdoTable1,如果由于某种原因它尚未包含它,例如,如果您使用 MS Access 应用程序将该字段添加到表中。


推荐阅读