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

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

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;

{/codecitation}

Добавить комментарий