Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание базы данных MS Access в программном кодеСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Создадим программу, которая во время своей работы создает базу данных Access, то есть файл new_BD.mdb. Эта база данных будет пустой, то есть она не будет содержать ни одной таблицы. Наполнять базу данных таблицами можно впоследствии как из программного кода Visual C++ 2010, так и используя MS Access. Заметим, что в этом примере технология ADO.NET не использована. Запустим Visual Studio 2010 и в окне New Project выберем в среде CLR узла Visual C++ приложение шаблона Console Application CLR. Для добавления в наш проект DLL-библиотеки ADOX выполним следующее: в пункте меню Project выберем команду Properties ► Add Reference, затем на вкладке COM дважды щелкнем по ссылке Microsoft ADO Ext. 2.8 for DDL and Security, добавив тем самым эту библиотеку в текущий проект. Убедиться в том, что теперь существует ссылка на эту библиотеку, можно в окне Properties. Здесь, щелкнув на узле References, увидим ветвь ADOX. Теперь мы можем ссылаться на это имя в программном коде. Далее вводим программный код, приведенный в листинге 10.3. Листинг 3. Создание БД во время работы программы // БДСоздание.cpp: главный файл проекта. // Программа создает базу данных MS Access, то есть файл new_BD.mdb. // Эта база данных будет пустой, то есть не будет содержать ни одной таблицы. // Наполнять базу данных таблицами можно будет впоследствии // как из программного кода C++ 2010, так и используя MS Access. // В этом примере технология ADO.NET не использована #include "stdafx.h" // Добавим в наш проект библиотеку ADOX: ProjectAdd Reference, и на // вкладке COM выбираем Microsoft ADO Ext. 2.8 for DDL and Security using namespace System; // Для вызова MessageBox выберем следующие пункты меню: // ProjectAdd Reference и на вкладке.NET дважды щелкнем по ссылке // System.Windows.Forms.dll, а в тексте программы добавим директиву: using namespace System::Windows::Forms; int main(array<System::String ^> ^args) { ADOX::Catalog ^Каталог = gcnew ADOX::CatalogClass(); try { Каталог->Create("Data Source=\"D:\\new_BD.mdb\";User " + "ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";"); MessageBox::Show("База данных D:\\new_BD.mdb успешно создана"); } catch (System::Runtime::InteropServices::COMException ^ Ситуация) { MessageBox::Show(Ситуация->Message); } finally { Каталог = nullptr; } return 0; }
Чтобы был доступен объект MessageBox для вывода сообщений, добавим в проект еще одну dll-библиотеку. Для этого, как и в предыдущем случае, укажем пункты меню Project ► Properties ► Add Reference и на вкладке.NET дважды щелкнем по ссылке System.Windows.Forms.dll, а в тексте программы добавим директиву: Using namespace System::Windows::Forms; Ключевое слово using используется для импортирования пространства имен, которое содержит класс MessageBox. Программа работает следующим образом: создаем экземпляр класса ADOX::cata- log, одна из его функций Create способна создавать базу данных, если на ее вход подать строку подключения. Заметим, что в строку подключения входит также и полный путь к создаваемой БД. Функция Create заключена в блоки try...catch, которые обрабатывают исключительные ситуации. После запуска этого приложения получим сообщение о создании базы данных (рис. 8).
Если запустить наше приложение еще раз, то мы получим сообщение о том, что такая база данных уже существует (рис. 9), поскольку БД new_BD.mdb только что создана.
Данное сообщение генерировалось обработчиком исключительной ситуации. Программный код этой программы можно посмотреть, открыв решение БДСоздание.sln в папке БДСоздание.
Запись структуры таблицы в пустую базу данных MS Access. Программная реализация подключения к БД Теперь здесь и далее мы будем использовать только самую современную технологию ADO.NET. Создадим программу, которая записывает структуру таблицы, то есть «шапку» таблицы, в существующую БД. В этой БД может не быть ни одной таблицы, то есть БД может быть пустой. Либо в БД могут уже быть таблицы, но название новой таблицы должно быть уникальным. Создадим базу данных new_BD.mdb в корневом каталоге логического диска C:, используя MS Access или программным путем, как это было показано в предыдущем разделе. Никакие таблицы в базе данных создавать не будем, то есть наша БД будет пустой. Теперь запустим Visual Studio 2010 и в окне New Project выберем в среде CLR узла Visual C++ приложение шаблона Console Application CLR. Затем напишем программный код, представленный в листинге 4. Листинг 4. Создание таблицы в БД MS Access // БдСоздТаблицы.cpp: главный файл проекта. // Программа записывает структуру таблицы в пустую базу данных MS Access. // Программная реализация подключения к БД. В этой БД может еще не быть // ни одной таблицы, то есть БД может быть пустой. Либо в БД могут уже быть // таблицы, но название новой таблицы должно быть уникальным #include "stdafx.h" using namespace System; // Для вызова MessageBox выберем следующие пункты меню: // ProjectAdd Reference и на вкладке.NET дважды щелкнем по ссылке // System.Windows.Forms.dll, а в тексте программы добавим директиву: using namespace System::Windows::Forms; // Добавляем эту директиву для более краткого обращения к классам // обработки данных: using namespace System::Data::OleDb; int main(array<System::String ^> ^args) { // ЗАПИСЬ СТРУКТУРЫ ТАБЛИЦЫ В ПУСТУЮ БД: // Создание экземпляра объекта Connection с указанием строки // подключения: auto Подключение = gcnew OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\new_BD.mdb"); // Открытие подключения: Подключение->Open(); // Создание экземпляра объекта класса Command // с заданием SQL-запроса: auto Команда = gcnew OleDbCommand("CREATE TABLE [" + "БД телефонов] ([Номер п/п] counter, [ФИО] ch" + "ar(20), [Номер телефона] char(20))", Подключение); try // Выполнение команды SQL: { Команда->ExecuteNonQuery(); MessageBox::Show( "Структура таблицы 'БД телефонов' записана в пустую БД"); } catch (Exception ^ Ситуация) { MessageBox::Show(Ситуация->Message); } Подключение->Close(); return 0; }
Для работы функции MessageBox::Show следует в текущий проект добавить ссылку на DLL-библиотеку. Для этого в пункте меню Project ► Properties выберем команду Add Reference и на вкладке.NET дважды щелкнем на ссылке System.Windows.Forms.dll. Как видно из текста программы, вначале мы создаем экземпляр класса Connection с указанием строки подключения, это позволит нам управлять этой строкой программно. Далее создаем экземпляр класса Command с заданием SQL-запроса. В этом запросе создаем (CREATE) новую таблицу с именем БД телефонов с тремя полями: Номер п/п типа счетчик (counter), ФИО и Номер телефона. Имя таблицы и имена полей заключены в квадратные скобки, поскольку они содержат пробелы.
Таким образом, в данной программе сначала организовано подключение Connection к БД через строку подключения и открытие подключения Open. Затем задание SQL-запроса в объекте Command и выполнение запроса функцией ExecuteNonQuery. Если связывание данных организовать программно, то мы получим большую гибкость для тех случаев, когда, например, на стадии разработки неизвестно заранее, где (на каком диске, в какой папке) будет находиться БД. Убедиться в работоспособности программы можно, открыв решение БдСоздТаблицы.sln в папке БдСоздТаблицы.
|
|||||||
Последнее изменение этой страницы: 2016-12-11; просмотров: 964; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.151.153 (0.01 с.) |