![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Программное создание таблиц и ключей (первичных и вторичных) для БД AccessDelphi , Базы данных , Access
Автор: Дима { **** UBPFD *********** by delphibase.endimus.com **** >> Программное создание таблиц/ключей(первичных и вторичных) для бд Access В принципе данный пример описан на сайте http://www.olap.ru/desc/microsoft/borland_ado.asp ,за исключением создания ключей. Там же можно прочитать , о том как включить ссылку на библиотеку типов ADOX(Для этого следует выбрать Project | Import Type Library главного меню среды разработки Delphi, а затем из списка доступных библиотек типов выбрать Microsoft ADO Ext. 2.5 for DDL and Security. Чтобы избежать конфликтов с именами уже имеющихся классов Delphi (например, TTable), следует переименовать классы ADOX, заменив имена на что-нибудь типа TADOXxxx. Затем нужно убрать отметку из опции Generate Component Wrapper — в данном случае нам нужен только файл *.pas, содержащий интерфейс для доступа к объектам ADOX, а затем нажать кнопку Create Unit. Это приведет к созданию файла ADOX_TLB.PAS, содержащего интерфейс к библиотеке типов ADOX. Создав этот файл, мы должны сослаться на него, а также на модуль ADODB в предложении Uses главного модуля нашего проекта). Создаются 2 таблицы (Otdel,Departament).Поле NumDepartament в таблице Otdel является внешним ключем к полю NumDepartament в таблице NumDepartament. Поля NumDepartament и NumOtdel в таблицах Departament и Otdel сответственно являются первичными ключами. Зависимости: Библиотека типов ADOX Автор: Дима Copyright: http://www.olap.ru/desc/microsoft/borland_ado.asp + msdn Дата: 30 июля 2003 г. ***************************************************** } var Catalog: _Catalog; Table: _Table; Column: _Column; FKKey: _Key; begin Catalog := CoCatalog.Create; try Catalog.Set_ActiveConnection('Provider=Microsoft.Jet.OLEDB.4.0;' + 'Data Source=' + DatabaseName + ';Persist Security Info=False'); //DatabaseName - Путь к файлу с базой данных (C:\1\12.mdb) //=============================================DOLGNOST========================= Table := CoTable.Create; try Table.Name := 'Dolgnost'; Table.ParentCatalog := Catalog; Column := CoColumn.Create; try with Column do begin ParentCatalog := Catalog; Name := 'NumDolgnost'; Type_ := adInteger; end; Table.Columns.Append(Column, 0, 0); finally Column := nil; end; with Table.Columns do begin Append('NameDolgnost', adVarWChar, 50); end; Catalog.Tables.Append(Table); finally Table := nil; end; //=============================================DEPARTAMENT====================== Table := CoTable.Create; try Table.Name := 'Departament'; Table.ParentCatalog := Catalog; Column := CoColumn.Create; try with Column do begin ParentCatalog := Catalog; Name := 'NumDepartament'; Type_ := adInteger; end; Table.Columns.Append(Column, 0, 0); finally Column := nil; end; with Table.Columns do begin Append('NameDepartament', adVarWChar, 50); end; Catalog.Tables.Append(Table); finally Table := nil; end; //==============================Создание первичных ключей======================= //Otdel FKKey := CoKey.Create; try with FKKey do begin Name := 'PKNumOtdel'; Type_ := adKeyPrimary; Columns.Append('NumOtdel', adInteger, 0); end; Catalog.Tables['Otdel'].Keys.Append(FKKey, 0, EmptyParam, '', ''); finally FKKey := nil; end; //Departament FKKey := CoKey.Create; try with FKKey do begin Name := 'PKNumDepartament'; Type_ := adKeyPrimary; Columns.Append('NumDepartament', adInteger, 0); end; Catalog.Tables['Departament'].Keys.Append(FKKey, 0, EmptyParam, '', ''); finally FKKey := nil; end; //==============================Создание вторичных ключей======================= //Otdel FKKey := CoKey.Create; try with FKKey do begin Name := 'FKNumOtdel'; Type_ := adKeyForeign; Columns.Append('NumDepartament', adInteger, 0); RelatedTable := 'Departament'; Columns['NumDepartament'].RelatedColumn := 'NumDepartament'; UpdateRule := adRICascade; end; Catalog.Tables['Otdel'].Keys.Append(FKKey, 0, EmptyParam, '', ''); finally FKKey := nil; end; finally Catalog = nil; end; Программа на Delphi создает таблицы и ключи в базе данных Microsoft Access с помощью библиотеки ADOX. Программа создает две таблицы - "Otdel" и "Departament", с первичными ключами в столбцах "NumOtdel" и "NumDepartament", соответственно. Она также создает внешний ключ между таблицей "Otdel" и таблицей "Departament". Программа состоит из следующих шагов:
Код содержит подробные комментарии, объясняющие каждую часть программы, что помогает понимать логику программы. Для улучшения кода предлагаются следующие предложения:
В целом, код хорошо структурирован и легко читаемый. С несколькими минимальными улучшениями он мог бы быть еще более эффективным в создании таблиц и ключей в базе данных Access с помощью ADOX. Создание таблиц и ключей (первичных и вторичных) для базы данных Microsoft Access с помощью программного кода на языке Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |