Russian Qt Forum
Март 29, 2024, 00:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
БД в Qt5 (primeInsert(), insert())
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: БД в Qt5 (primeInsert(), insert()) (Прочитано 2711 раз)
barm12345
Новичок
Offline
Сообщений: 21
БД в Qt5 (primeInsert(), insert())
«
:
Июль 31, 2020, 15:08 »
Доброго времени суток!
Прошу помощи - никак не могу разобраться с следующим кодом (Qt3), для примера возьмем из документации:
https://doc.qt.io/archives/3.3/qsqlcursor.html#insert
:
QSqlCursor cur( "prices" );
QSqlRecord *buffer = cur.primeInsert();
buffer->setValue( "id", 53981 );
buffer->setValue( "name", "Thingy" );
buffer->setValue( "price", 105.75 );
cur.insert();
Как это написать в Qt5? (не совсем понял primeInsert(), insert())
Записан
barm12345
Новичок
Offline
Сообщений: 21
Re: БД в Qt5 (primeInsert(), insert())
«
Ответ #1 :
Июль 31, 2020, 15:57 »
QSqlQuery query(db);
query.prepare("INSERT INTO prices (id, name, price) "
"VALUES (:id, :name, :price)");
query.bindValue(":id", 53981);
query.bindValue(":name", "Thindy");
query.bindValue(":price", 105.75);
query.exec();
Так правильно?
Записан
Hellraiser
Бывалый
Offline
Сообщений: 451
Re: БД в Qt5 (primeInsert(), insert())
«
Ответ #2 :
Июль 31, 2020, 16:05 »
В общих чертах, да, правильно. Но не все SQL драйверы поддерживают именованные заполнители. Если поддержки нет, то лучше будет вот так:
Код:
query.prepare("INSERT INTO prices (id, name, price) VALUES (?, ?, ?)");
query.bindValue(0, 53981);
query.bindValue(1, "Thindy");
query.bindValue(2, 105.75);
Записан
barm12345
Новичок
Offline
Сообщений: 21
Re: БД в Qt5 (primeInsert(), insert())
«
Ответ #3 :
Июль 31, 2020, 16:12 »
Это как пример, а так база у меня postgresql 9.4.5 (с соединением разобрался, все нормально). Она вроде поддерживает ?
Записан
Hellraiser
Бывалый
Offline
Сообщений: 451
Re: БД в Qt5 (primeInsert(), insert())
«
Ответ #4 :
Июль 31, 2020, 16:41 »
Проверка:
Код:
QSqlDatabase::database().driver().hasFeature(QSqlDriver::NamedPlaceholders)
Записан
barm12345
Новичок
Offline
Сообщений: 21
Re: БД в Qt5 (primeInsert(), insert())
«
Ответ #5 :
Июль 31, 2020, 16:45 »
Ок. Спасибо)
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...