Добавление записей в таблицу базы данных MS Access
Похожие статьи вашей тематики
Совсем маленькую программу из предыдущего раздела можно использовать для выполнения любого запроса, обращенного к базе данных. Например, модифицируем всего лишь одну строчку программного кода программы из предыдущего примера для добавления новой записи в таблицу БД. Для этого при создании экземпляра объекта Command зададим SQL-запрос на вставку (INSERT) новой записи в таблицу БД.
Заметим, что в SQL-запросе мы сознательно обратились к таблице по имени [бд телефонов], то есть со строчной буквы, хотя следовало бы с прописной. Дело в том, что в именах таблиц следует точно указывать регистр символа, поскольку их поиск ведется с учетом регистра (case-sensitive search). Однако это не обязательно при наличии только одной таблицы с таким именем, поскольку при этом используется поиск без учета регистра (case-insensitive search).
Свойству Connection объекта класса Command следует дать ссылку на объект класса Connection:
Команда-Connection = Подключение;
Причем для добавления записи в таблицу БД такая ссылка обязательна в отличие от предыдущего примера, где мы создавали новую таблицу в существующей БД. Программный код будет выглядеть так, как представлено в листинге 5.
Листинг 5. Добавление записей в таблицу базы данных MS Access
// БдДобавлЗаписи.cpp: главный файл проекта.
// Программа добавляет запись в таблицу базы данных MS Access. Для этого
// при создании экземпляра объекта Command задаем SQL-запрос
// на вставку (Insert) новой записи в таблицу базы данных
#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(
"INSERT INTO [бд телефонов] (" +
"Фио, [номер телефона]) VALUES (‘Света-X’, ‘521-61-41’)");
// Для добавления записи в таблицу БД эта команда обязательна:
Команда->Connection = Подключение;
// Выполнение команды SQL:
Команда->ExecuteNonQuery();
MessageBox::Show("В таблицу 'БД телефонов' добавлена запись");
Подключение->Close();
return 0;
}
Зачастую, отлаживая программный код на Visual Studio C++, при работе с БД появляется необходимость проверки работы программы, например требуется узнать, создалась ли таблица в БД, добавилась ли запись в таблице БД, правильно ли сформирован SQL-запрос. Не обязательно запускать MS Access, чтобы выполнить SQL-запрос или проверить правильность его синтаксиса. Это можно сделать в среде Visual Studio. Для этого в пункте меню View выбираем команду Other Windows ► Server Explorer (комбинация клавиш Ctrl+Alt+S), далее в списке подключений указываем полный путь к нужной БД. Затем, щелкая правой кнопкой мыши на значке нужной таблицы, в контекстном меню выбираем пункт Retrieve Data. При этом в панели инструментов (Toolbar) появляется значок SQL, после щелчка по этому значку (или нажатия комбинации клавиш Ctrl+3) получим окно SQL-запроса. В этом окне мы можем задавать SQL-запрос, а затем, например, щелкая правой кнопкой мыши, либо проверять его синтаксис, либо выполнять.
Убедиться в работоспособности программы можно, открыв решение БдДобавл-Записи.sln в папке БдДобавлЗаписи.
|