Ultimate ++: віджети для роботи з базами даних

Відео: 30.Python для Початківців - Робота з Базами Даних SQL Server

Ultimate ++: віджети для роботи з базами даних
В U ++ є спеціальний віджет SqlArray, який відображає дані з обраної таблиці, а також дозволяє редагувати, вставляти і видаляти записи. Щоб цей віджет працював в повну силу і дозволяв вставляти записи, таблиця повинна мати ключ з атрибутом AUTO_INCREMENT. Додамо в схему нашої бази ключ:
INT _ (ID) PRIMARY _ KEY AUTO _ INCREMENT

Тепер створимо новий lay-файл app.lay, а в ньому - компоновку з ім`ям Main, яка містить єдиний віджет SqlArray з ім`ям arr (як це зробити, детально описано в попередній частині статті). Створення GUI-додатки з використанням компоновок я вже розбирав, тому відразу наведу готовий код програми. Нетривіальні моменти виділені жирним шрифтом:
#include
#include
using namespace Upp;
// Підключаємо схему бази даних
#define SCHEMADIALECT
#define MODEL
#include "Sql / sch _header.h"
#include
#include
// Підключаємо файл компоновок #define LAYOUTFILE
#include
// Клас головного вікна, успадковані від компоновки Main class App: public WithMain {Public:
// Рядки редагування для зміни полів в таблиці EditInt A _ edit- EditString B _ edit- App () {
CtrlLayout (* this, "Hello SQL!") - // Застосовуємо компоновку Title ( "Hello SQL!") .MinimizeBox () .MaximizeBox () .Sizeable ();
arr.SetTable (TEST) - // Встановлюємо таблицю
arr.AddKey (ID) - // Встановлюємо ключ
// Додаємо стовпці і віджети для їх редагування
arr.AddColumn (A, "Number") .Edit (A _ edit);



arr.AddColumn (B, "Square"). Edit (B _ edit);
// Дозволяємо додавання і видалення записів
arr.Appending (). Removing ();
arr.SetOrderBy (A) - // Сортування
arr.Query () - // Вибрати всі записи в таблиці
// Дозволяємо автоматично вставляти записи.
// Вимагає наявності ключа з AUTO _ INCREMENT!
arr.AppendingAuto ();
}



};
GUI _ APP _ MAIN
{
// Єднаймося з базою Sqlite3Session sqlite3- if (! Sqlite3.Open (ConfigFile ( "simple.db"))) {
ExclamationC `^ можу з`єднатися з базою даних! n ");
return;
}
SQL = sqlite3- sqlite3.SetTrace ();
// Застосовуємо схему SqlSchema sch (SQLITE3) - All _Tables (sch);
// Обробляємо зміни структури бази if (sch.ScriptChanged (SqlSchema :: UPGRADE))
Sqlite3PerformScript (sch.Upgrade ()) - if (sch.ScriptChanged (SqlSchema :: ATTRIBUTES))
Sqlite3PerformScript (sch.Attributes ()) - if (sch.ScriptChanged (SqlSchema :: CONFIG)) {
Sqlite3PerformScript (sch.ConfigDrop ());
Sqlite3PerformScript (sch.Config ());
}
// Запускаємо цикл обробки подій
App app;
app.Run ();
}

У цьому коді все вже звично - крім рядків, що відносяться до віджету SqlArray. У цьому віджеті встановлюється ім`я таблиці, до якої він буде «прив`язаний» і ім`я поля-ключа. Далі додаються ті стовпці, які ми хочемо бачити. Метод Edit кожного конкретного стовпця дозволяє призначити віджет для його редагування. Ці віджети повинні бути оголошені членами класу, куди входить сам SqlArray (в нашому випадку - App), але не повинні відображатися на формі (тобто не потрібно включати їх в компоновку або явно викликати для них метод Add ()). При вході в режим редагування ці віджети автоматично вставляються безпосередньо в потрібну комірку таблиці. Нарешті, метод AppendingAuto () дозволяє додавати порожні рядки (заповнені значеннями NULL), які потім можна відредагувати. Це найпростіший варіант, але він вимагає обов`язкової наявності в таблиці ключа.

Другий нетривіальний момент пов`язаний із застосуванням функції ScriptChanged () в основній програмі. Вона може бути викликана з різними прапорами і дозволяє коректно обробляти будь-які невідповідності між реальною структурою бази даних і структурою, описаною в завантаженому файлі схеми. Якщо такі невідповідності знайдені, то викликається Sqlite3PerformScript (), якій передаються потрібні параметри схеми. В результаті, автоматично генеруються запити на створення, видалення або модифікацію стовпців таблиці, щоб привести її у відповідність зі схемою. Такий механізм дуже зручний і дозволяє конструювати базу, вносячи послідовні зміни в її структуру (Incremental development). Детальний опис цього методу є в документації (https://ultimatepp.org/srcdo c $ Sql $ IncrementalDevelopment $ en-us.html).

Ultimate ++: віджети для роботи з базами даних
Програма, що використовує SqlArray

Скомпілювавши програму, отримаємо працює інтерфейс до бази даних. Вбудоване контекстне меню віджета SqlArray дозволяє вставляти, видаляти і редагувати записи (див. Малюнок вище). SqlArray можна використовувати і для редагування пов`язаних таблиць - в офіційній документації є відповідні приклади (https://ultimatepp.org/reference$SqlArray$en-us.html, https://ultimatepp.org/examples$SQLApp$en-us. html).
У наступній, завершальній, частині статті, присвяченій U ++, будуть розглянуті робота з графікою і інші можливості U ++, а також підведені підсумки.

Отже, з U ++ ми закінчили і тепер давайте поговоримо про здоров`я ваших зубів! Сьогодні стоматологія (https://zub.ru/) - високотехнологічна медицина, яка дозволяє досвідченим фахівцям творити справжні чудеса! Дізнайтеся подробиці прямо зараз на сайті zub.ru!

ІНШЕ

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

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

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

Ієрархія віджетів в u ++ фото

Ієрархія віджетів в u ++

Відео: Qt - Компонування віджетів 1 (для початківців) Важливо розуміти, що редактор компоновок не є повноцінним…

Ultimate ++: sqlexp фото

Ultimate ++: sqlexp

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

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

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

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

Juce: вкладені компонування фото

Juce: вкладені компонування

вкладені компонування У Juce використовується ідеологія, розглянута в попередній статті по U ++, - ієрархія віджетів…

Використовуємо the jucer фото

Використовуємо the jucer

Відео: Соковижималка Novis Vitajuicer Візуальний редактор компоновок The Jucer Як ми вже переконалися, розміщувати…

Налаштування bugzilla фото

Налаштування bugzilla

Відео: Installing Bugzilla in localhost параметри системи Після установки система використовує стандартні параметри, в…

Ultimate ++: перша програма фото

Ultimate ++: перша програма

Відео: Уроки C # (C sharp) | # 3 - Перша програма на C # Перейдемо до реального прикладу. Напишемо просту марну…

» » Ultimate ++: віджети для роботи з базами даних