Как создать поле Microsoft Access в Delphi с помощью кода - PullRequest
0 голосов
/ 26 апреля 2020

В настоящее время я работаю над системой управления Bed and Breakfast. Я хочу создать поле доступа Microsoft в Delphi, используя код. Имя поля, которое я хочу создать, - rooms, я хочу, чтобы тип данных был text, а размер - 6. Я нашел некоторый код в сообщении переполнения стека, но не все. Я не знаю, что поставить в скобки.

//Adds the field to the ms access database

Adotable2.fielddefs.add()

1 Ответ

3 голосов
/ 26 апреля 2020

Добавить поле в таблицу Access довольно просто, если в данный момент приложение не имеет открытой таблицы. Однако использование FieldDefs.Add не является способом сделать это, потому что он делает что-то еще, что не относится к этой задаче.

Предполагая, что ваша форма Delphi (или модуль данных) имеет AdoTable1, настроенный на доступ к таблице, которую вы хотите изменить, и то, что имя таблицы в базе данных Access - «Отели», добавит к ней столбец «Комнаты»:

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 настроен для доступа к базы данных, используя «Поставщик OLE DB для ядра базы данных Microsoft Office 16».

Кстати, если вы используете «постоянные поля» в своей таблице AdoTable (список полей, которые вы получаете, если щелкнуть по нему правой кнопкой мыши и выбрать « Редактор полей ... »из всплывающего меню, вам нужно будет добавить в него поле Комнаты. Если вы не используете постоянные поля, вам не нужно беспокоиться об этом.

FieldDefs.Add вы упомянули для добавления поля в вашем приложении Delphi, например, в AdoTable1, если по какой-то причине оно еще не было включено, например, если вы добавили поле в таблицу с помощью приложения MS Access.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...