💀
Второй курс РПО
Основы проектирования баз данных
Основы проектирования баз данных
  • Понятия баз данных
  • Типы моделей данных
    • Реляционные базы данных
  • Реляционная алгебра
  • Модель процессов
  • Проектирование базы данных
  • Нормальные формы
    • Определения, и самое важное
  • Моделирование базы
    • Практическая работа: Решение
    • Для тех у кого iq как у Антона
  • Инструменты проектирования
  • Проектирование БД
  • Ключи и объекты
  • SQL Операции
  • Группировка данных
  • Пользовательский интерфейс
  • Проектирование БД
  • Управление таблицами
  • Ключи и индексы
  • Сортировка и поиск
    • 🤪Короткая версия
  • Работа с файлами
  • Запись массива в таблицу
  • Меню баз данных
  • Рабочие окна
  • Создание формы
  • Создание проекта БД и интерфейса
  • Ограничения полей
  • Работа с таблицами
  • Обработка транзакций
Powered by GitBook
On this page
  • 1. Создание Рабочих Окон
  • Создание окна в C++ (с использованием библиотеки, например, Qt)
  • 2. Подключение к базе данных через SQL
  • Подключение к базе данных
  • 3. Выполнение SQL команд
  • Добавление данных в таблицу
  • Запрос на получение данных
  • 4. Обработка ошибок
  • 5. Добавление Меню для Управления Базой Данных

Рабочие окна

21.11.2024

1. Создание Рабочих Окон

Рабочие окна — это интерфейс, через который взаимодействуют пользователи.

Создание окна в C++ (с использованием библиотеки, например, Qt)

В C++ с использованием библиотеки Qt можно создать окно с элементами управления, такими как кнопки и меню, для взаимодействия с базой данных.

cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    
    QWidget window;
    window.setWindowTitle("Рабочее окно");
    window.setGeometry(100, 100, 400, 300);  // Размеры и позиция окна

    QPushButton button("Подключить к базе данных", &window);  // Кнопка для подключения
    button.setGeometry(100, 100, 200, 50);  // Размер и позиция кнопки
    
    window.show();  // Показываем окно
    return app.exec();  // Запускаем цикл обработки событий
}

Примечание:

  • QWidget — базовый элемент для всех виджетов в Qt.

  • QPushButton — кнопка для выполнения действий, например, подключения к базе данных.

  • setGeometry задает позицию и размеры окна или элемента управления.


2. Подключение к базе данных через SQL

Для работы с базой данных мы используем SQL запросы. В C++ через библиотеку Qt можно подключить драйвер для работы с SQL базами.

Подключение к базе данных

cpp
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");  // Подключение драйвера SQLite
db.setDatabaseName("my_database.db");  // Указываем файл базы данных

if (!db.open()) {
    qDebug() << "Ошибка подключения!";
    return 1;
}
qDebug() << "Подключение успешно!";

QSqlDatabase::addDatabase("QSQLITE") — выбираем драйвер SQLite (можно использовать и другие, например, MySQL).

open() — открывает соединение с базой данных. Если подключение не удалось, будет выведено сообщение об ошибке.


3. Выполнение SQL команд

Теперь, когда соединение с базой данных установлено, можно выполнять SQL запросы для работы с данными.

Добавление данных в таблицу

cpp
QSqlQuery query;
query.prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
query.bindValue(":name", "Иван Иванов");
query.bindValue(":email", "ivan@example.com");

if (!query.exec()) {
    qDebug() << "Ошибка выполнения запроса!";
} else {
    qDebug() << "Данные добавлены!";
}

prepare() подготавливает SQL запрос, bindValue() привязывает значения к параметрам запроса.

exec() выполняет запрос на добавление данных в таблицу.

Запрос на получение данных

cpp
QSqlQuery query;
query.exec("SELECT * FROM users");

while (query.next()) {
    QString name = query.value(0).toString();  // Получаем имя
    QString email = query.value(1).toString();  // Получаем email
    qDebug() << name << email;
}

next() переходит к следующей строке результата.

value() извлекает данные из указанного столбца.


4. Обработка ошибок

Обработка ошибок критична для предотвращения сбоев. Например, проверка успешности подключения и выполнения запросов.

cpp
if (!db.isOpen()) {
    qDebug() << "Ошибка подключения: " << db.lastError().text();
}

lastError().text() выводит описание последней ошибки, если соединение не удалось.


5. Добавление Меню для Управления Базой Данных

Для удобства пользователя можно добавить меню с пунктами для подключения к базе данных.

cpp
#include <QMenuBar>
#include <QAction>

QMenu *menu = window.menuBar()->addMenu("Меню");
QAction *connectAction = menu->addAction("Подключиться к базе");

QObject::connect(connectAction, &QAction::triggered, [&]() {
    db.open();  // Открытие базы данных при нажатии на пункт меню
});

Примечание:

  • menuBar() добавляет строку меню в окно.

  • addAction() добавляет пункт меню для взаимодействия с базой данных.

PreviousМеню баз данныхNextСоздание формы

Last updated 6 months ago