Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 1074; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.141 (0.007 с.) |