Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как создать таблицу в MS Access при помощи DAO

Delphi , Базы данных , Access

Как создать таблицу в MS Access при помощи DAO

1. Объявляем переменные:


var
  access, db, td, recordset: Variant;

2. объявляем массив констант соответствия типов данных (между полями в Delphi и типами полей DAO)


  arrMDBTypes: array[TFieldType] of Integer =
    ({dbText} 10 {ftUnknown},
     {dbText} 10 {ftString},
     {dbInteger} 3 {ftSmallint},
     {dbLong} 4 {ftInteger},
     {dbInteger} 3 {ftWord},
     {dbBoolean} 1 {ftBoolean},
     {dbDouble} 7 {ftFloat},
     {dbCurrency} 5 {ftCurrency},
     {dbDouble} 7 {ftBCD},
     {dbDate} 8 {ftDate},
     {dbTime} 22 {ftTime},
     {dbDate} 8 {ftDateTime},
     {dbLongBinary} 11 {ftBytes},
     {dbLongBinary} 11 {ftVarBytes},
     {dbInteger} 3 {ftAutoInc},
     {dbLongBinary} 11 {ftBlob},
     {dbMemo} 12 {ftMemo},
     {dbLongBinary} 11 {ftGraphic},
     {dbMemo} 12 {ftFmtMemo},
     {dbLongBinary} 11 {ftParadoxOle},
     {dbLongBinary} 11 {ftDBaseOle},
     {dbBinary} 9 {ftTypedBinary},
     {dbText} 10 {ftCursor}

    {$IFDEF VER120}
     ,
     {dbText} 10 {ftFixedChar},
     {dbText} 10 {ftWideString},
     {dbBigInt} 16 {ftLargeint},
     {dbText} 10 {ftADT},
     {dbText} 10 {ftArray},
     {dbText} 10 {ftReference},
     {dbText} 10 {ftDataSet}
    {$ELSE}

    {$IFDEF VER125}
     ,
     {dbText} 10 {ftFixedChar},
     {dbText} 10 {ftWideString},
     {dbBigInt} 16 {ftLargeint},
     {dbText} 10 {ftADT},
     {dbText} 10 {ftArray},
     {dbText} 10 {ftReference},
     {dbText} 10 {ftDataSet}

    {$ELSE}

    {$     ,
     {dbText} 10 {ftFixedChar},
     {dbText} 10 {ftWideString},
     {dbBigInt} 16 {ftLargeint},
     {dbText} 10 {ftADT},
     {dbText} 10 {ftArray},
     {dbText} 10 {ftReference},
     {dbText} 10 {ftDataSet},
     {dbLongBinary} 11 {ftOraBlob},
     {dbLongBinary} 11 {ftOraClob},
     {dbText} 10 {ftVariant},
     {dbText} 10 {ftInterface},
     {dbText} 10 {ftIDispatch},
     {dbGUID} 15 {ftGuid}
    {$ENDIF}
    {$ENDIF}
    {$ENDIF}

    );


// 3. загружаем DAO:
    try
      access := GetActiveOleObject('DAO.DBEngine.35');
    except
      access := CreateOleObject('DAO.DBEngine.35');
    end;

// 4. открываем базу данных
    try
      db := access.OpenDatabase(yourDatabaseName);
    except
      exit
    end;

// 5. созда¸м новую таблицу в открытой базе данных
    td := db.CreateTableDef(yourTableName, 0, '', '');

// 6. добавляем в таблицу поле с описаниями
    td.Fields.Append(td.CreateField(strFieldName,
     arrMDBTypes[intDataType], Size));

// например,
    td.Fields.Append(td.CreateField('ID', arrMDBTypes[intDataType], Size));
    td.Fields.Append(td.CreateField('NAME', arrMDBTypes[intDataType], Size));

// 7. добавляем таблицу в список таблиц
    db.TableDefs.Append(td);

// 8. открываем созданную таблицу
    recordset := db.OpenTable(yourTableName, 0);

// 9. добавляем новую запись в открытую таблицу
    recordset.AddNew;

// 10. изменяем значения поля
     curField := recordset.Fields[0].Value := 1;
     curField := recordset.Fields[1].Value := 'First record';

// 11. помещаем новую запись в базу
     recordset.Update(dbUpdateRegular, False);
// где
const
  dbUpdateRegular = 1;

// 12. закрываем recordset
     recordset.Close;

// 13. закрываем базу данных
     db.Close;

// 14. освобождаем экземпляр DAO
     access := UnAssigned;

Перевод контента на русский язык:

Похоже, вы пытаетесь создать таблицу в MS Access с помощью DAO (Data Access Objects) в Delphi. Вот разбивка вашего кода:

Переменные и константы Вы объявляете переменные для приложения Access (access), объект базы данных (db), определение таблицы (td), записи (recordset) и некоторые константы.

Массив arrMDBTypes maps типы полей Delphi к типу данных DAO. Это умное решение упрощает процесс создания таблиц с конкретными типами данных.

Загрузка DAO Вы загружаете библиотеку DAO с помощью GetActiveOleObject или CreateOleObject, в зависимости от того, существует ли уже экземпляр движка DAO.

Открытие базы данных Вы открываете файл базы данных с помощью OpenDatabase.

Создание новой таблицы Вы создаете новый объект определения таблицы (td) и добавляете его в список таблиц в базе данных с помощью CreateTableDef и Append, соответственно.

Добавление полей в таблицу Вы добавляете поля в таблицу с помощью Fields.Append и CreateField. Метод последнего параметра принимает три параметра: имя поля, тип данных (из массива arrMDBTypes) и размер (если применимо).

Сохранение изменений После создания таблицы и добавления полей вы добавляете объект определения таблицы в список таблиц в базе данных с помощью TableDefs.Append.

Открытие новой таблицы для изменения Вы открываете новую таблицу для изменения с помощью OpenTable.

Добавление новой записи Вы добавляете новую запись в таблицу с помощью AddNew.

Обновление значений полей Вы обновляете значения конкретных полей (например, ID и NAME) в новой записи.

Сохранение изменений Наконец, вы сохраняете изменения в базе данных, вызывая Update с константой dbUpdateRegular.

Обратите внимание:

  • Вам всегда нужно проверять ошибки при взаимодействии с базами данных. Рекомендуется добавлять обработку ошибок с помощью блоков try-except или других механизмов.
  • Код предполагает, что файл базы данных существует и доступен. Если не так, вам может потребоваться обработка исключений соответствующим образом.
  • Этот код только демонстрирует основные операции создания таблиц и добавления записей. Для более сложных операций вам, вероятно, придется расширить этот код дополнительной логикой.

В целом, ваш код выглядит как хороший старт для создания таблиц в MS Access с помощью DAO. Хорошая работа!

Создание таблицы в MS Access с помощью DAO: обявляем переменные, загружаем DAO, открываем базу данных, создаем новую таблицу, добавляем поля, добавляем таблицу в список таблиц, открываем созданную таблицу, добавляем новую запись, изменяем значения поля и


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Access ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 23:01:55/0.0039310455322266/0