ms-access - 如何使用代码在 Delphi 中创建 Microsoft 的 Access 字段
问题描述
我目前正在研究床和早餐管理系统。我想使用代码在 Delphi 中创建一个 Microsoft 访问字段。我要创建的字段名称是rooms
,我希望数据类型是text
,我希望大小是6
。我在堆栈溢出帖子上找到了一些代码,但不是全部。我不知道在括号里放什么。
//Adds the field to the ms access database
Adotable2.fielddefs.add()
解决方案
将字段添加到 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 应用程序将该字段添加到表中。
推荐阅读
- javascript - 我希望图像在我将鼠标悬停在单词上时显示并在鼠标移出时隐藏
- database - 为什么我在 Andriod Studio 的 Dart 中的 Flutter 中编写我的应用程序时收到此 DatabaseService 和 initialData 错误?
- webpack-module-federation - 模块联合不适用于 webpack.config.js 中的动态挂钩远程
- spinnaker - 卡在大三角帆操作员的 yaml 配置中
- google-apps-script - Google Sheet Scripts -> ss.getRange() -> JSON.Stringify 删除一维数组的元素级别的括号
- google-colaboratory - 无法打开新的 Google Colab 笔记本
- ios - 在 Swift 中循环对象数组
- android - 有没有办法通过没有服务器的套接字连接两个反应本机应用程序?
- javascript - 无法删除重复的 cookie
- laravel - 如何验证laravel中的对象数组?