Нестандартні gui-тулкіта: бази даних в ultimate ++

Відео: Створення локальної бази даних. Visual Studio. LocalDB. C #

Нестандартні GUI-тулкіта: бази даних в Ultimate ++
Не секрет, що сучасне комерційне програмування дуже часто орієнтоване на роботу з базами даних. Зручність роботи з базами даних і швидкість написання призначених для користувача інтерфейсів до них часто є вирішальним фактором при виборі тулкіта і середовища розробки. Творці U ++ добре розуміють це, так що зручна робота з базами даних є однією з найсильніших сторін цього тулкіта. Як і у всіх інших сферах, при роботі з базами даних проявляється незвичайність U ++, яка, тим не менш, обертаючи-ється серйозною економією часу при рутинній роботі з запитами SQL.

В U ++ є інтерфейси до СУБД SQLite3, MySQL, PostgreSQL та Oracle. У цій статті я буду використовувати SQLite3, оскільки вона безпосередньо включена до складу U ++ і не вимагає інсталяції або конфігурації. Її можна використовувати відразу ж, не відволікаючись на особливості адміністрування «великих» баз даних, що не мають відношення до U ++.

Ultimate ++ дозволяє створювати програмні рішення практично будь-якої складності на мові програмування C ++. Так, подейкують, що перші ревізії яндекс.браузер створювалися саме за допомогою даного інструментарію. Ну а ознайомиться з останньою версією даного інтернет-браузера Ви зможете на https://onebooks.ru (https://onebooks.ru/brauzery/22-yandeks.brauzer.html).

Сесії і об`єкти запитів

Доступ до баз даних в U ++ реалізований за допомогою плагінів, що дозволяє відносно легко додавати інтерфейси до нових типів баз даних. Підключити плагін для SQLite3 можна так:
#include
#include

Робота з БД в U ++ починається зі створення об`єкта сесії. Його назва залежить від використовуваної бази даних і в разі SQLite3 виглядає так:
Sqlite3Session session-

Далі слід з`єднатися з існуючою базою даних. Для SQLite3 використовується метод Open, якому передається ім`я файлу бази даних. Для інших СУБД назву методу і передані параметри можуть бути іншими - зокрема, для більш «серйозних» баз потрібно передавати ім`я користувача і пароль.
if (! session.Open (ConfigFile ( "simple.db"))) {
Cout () lt; lt; "Can not create or open database filen" -
return;
}

Для налагодження дуже корисним буває метод SetTrace (), який виводить в стандартний лог всі виконувані базою команди SQL:



#ifdef _DEBUG
session.SetTrace ();
#endif

Нестандартні GUI-тулкіта: бази даних в Ultimate ++

Після створення сесії потрібно створити об`єкт для обробки SQL-запитів, який «прив`язаний» до певної сесії:
Sql sql (session) -

Як правило, в програмі використовується тільки одна сесія і передача її як параметра до всіх запитам стає надмірною. В цьому випадку можна використовувати змінну так званої «головної бази даних» (Main Database) з ім`ям «SQL». Їй присвоюється об`єкт сесії і все створювані об`єкти запитів автоматично «прив`язуються» до цієї сесії:
SQL = session- // Задати сесію глобально



Sql db- // Автоматично використовується сесія, задана
// для глобального об`єкта SQL

Методи об`єкта запиту мають інтуїтивно зрозумілі імена, тому я відразу наведу готовий приклад, який створює нову таблицю і наповнює її цілими числами і їх квадратами:
#include
#include
using namespace Upp;
CONSOLE _ APP _ MAIN {
Sqlite3Session session- if (! Session.Open (ConfigFile ( "simple.db"))) {
Cout () lt; lt; "Can not create or open database filen";
return;
}
#ifdef _ DEBUG
session.SetTrace ();
#endif
SQL = session;
Sql db;
db.Execute ( "drop table TEST") - // Видалити таблицю, якщо вона вже є db.ClearError () - // Очистити буфер помилок
// Створити таблицю. Перший стовпець - число, другий - його квадрат // в текстовому вигляді
db.Execute ( "create table TEST (A INTEGER, B TEXT)") - // Наповнюємо таблицю for (int i = 0 i lt; 10;
db.Execute ( "insert into TEST (A, B) values (?,?)", J i, AsString (i * i)) - // Вибірка з таблиці db.Execute ( "select * from TEST") - / / Виводимо імена колонок for (int i = 0 i lt; db.GetColumns () - i ++)
Cout () lt; lt; db.GetColumnInfo (i) .name lt; lt; "N" - // Виводимо значення while (db.Fetch ())
Cout () lt; lt; db [0] lt; lt; " `" lt; lt; db [1] lt; lt; " `N";
ReadStdIn () - // Щоб консольне вікно не закривалося
}

У запиті Execute можна (і потрібно) використовувати «наповнювачі» (placeholders). На місце знаків «?» Вставляються передані подальшими параметрами дані на зразок функції printf (). Метод Fetch () забезпечує ітерацію по рядках запиту, а доступ до стовпців здійснюється за індексом оператором [].

ІНШЕ

Кулінарні рецепти 1.12 фото

Кулінарні рецепти 1.12

Програма призначена для ведення бази даних кулінарних рецептів, обліку продуктів, складання та калькуляції страв,…

Ultimate ++: sqlexp фото

Ultimate ++: sqlexp

Відео: N ++: Intro tab invisible ninja speedrun in 35:04 Поки робота з SQL в U ++ виглядає настільки ж нудною, як і в…

Ultimate ++: схеми баз даних фото

Ultimate ++: схеми баз даних

Відео: Бази даних, лекція №1 (2013) Об`єкти SqlExp кардинально полегшують створення запитів, але створення самих…

Oracle, open source і спадщина sun фото

Oracle, open source і спадщина sun

Відео: Java and the Shadow of Sun Ось уже більше року співтовариство FLOSS приділяє пильну увагу корпорації Oracle в…

» » Нестандартні gui-тулкіта: бази даних в ultimate ++