SQL под Qt Home - IT бележки
Тази бележка ще ви запознае накратко с основите на използването на Qt модули за работа с релационни бази данни. Предполага се, че вече имате познания по SQL, въпреки че това не е толкова критично за разбирането на представените примери.
Разглеждат се основните операции, необходими за започване на работа:
- Отваряне на базата данни;
- Изпълнение на заявки;
- Селекция от записи.
Свързване на sql модул към Qt проект
За да работят вградените SQL възможности на Qt, трябва да добавите следния израз към профайла:
Имайте предвид обаче, че различните драйвери за база данни са инсталирани като плъгини и може да не са налични във вашата Qt дистрибуция. Този проблем е особено важен под Windows поради лицензионните ограничения върху разпространението на двоични пакети. Ще говорим за това как да изградим правилния плъгин друг път.
Свързване към база данни на QSQLITE
За простота ще използваме драйвера QSQLITE (проектиран да работи с SQLite), тъй като той е предварително инсталиран във всички дистрибуции на Qt, които познавам. Освен това не е необходимо да инсталирате отделна система за управление на база данни.
Помислете за съответния код за връзка:
Ако всичко е минало добре, тогава в резултат на изпълнението на този код ще имате празен тестов файл в работната директория на приложението. Обърнете внимание и на следните членски функции на класа QSqlDatabase, които ще ви трябват, когато решите да използвате външен сървър на база данни:
Изпълнение на заявки с QSqlQuery
Нека създадем нова таблица в отворена база данни с помощта на QSqlQuery:
По подобен начин можете да използвате членската функция exec(), за да направите заявка къмбаза данни. Има обаче една тънкост.
Вмъкване на записи в базата данни
Ако заявката използва външни данни, тогава от съображения за сигурност не ги вмъквайте директно, а използвайте комбинация от подготви() и bindValue() :
Извличане на записи от базата данни
Сега нека да разгледаме как да получите записи от базата данни:
Заключение
Обобщавайки, ще дам пълен списък на разглеждания пример (обърнете внимание на неговото завършване, допълнено от кода за изтриване на таблицата и затваряне на връзката към базата данни):