Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135

Qt 5.2.0 + MS Sql server. Ошибки при добавление данных

17.01.2014, 07:49. Показов 6826. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

сделал добавление данных по нажатию на кнопку

C++ (Qt)
1
2
3
4
5
6
    QSqlQuery queri;
 
    queri.prepare("INSERT INTO znaki_zodiaka (name_zodiak, opisanie_zodiak) values (:name_zodiak, :opisanie_zodiak)");
            queri.bindValue(":name_zodiak", ui->lineEdit->text());
            queri.bindValue(":opisanie_zodiak", ui->lineEdit_2->text());
            queri.exec();

Добавлено через 6 минут
Господа, как сделать следующие, чтобы после нажатие кнопки, данные сразу отобразились в Qtableview?

Добавлено через 59 секунд
т.е. сейчас окно с таблицей надо закрыть и открыть снова чтобы увидеть изменения, как сделать чтобы они сразу отображались?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2014, 07:49
Ответы с готовыми решениями:

Ошибки при подключении к MS SQL Server 2008
Был написан проект для SCADA Citect. В отдельном потоке выполняется в цикле передача данных на сервер (MS SQL Server 2008), находящийся...

Добавление сразу нескольких полей в базу данных (sql server 2014)
Здравствуйте. Есть 3 таблицы в БД. 1 - Услуги, 2 - Клиенты, 3 - Заказы. БД подключена к проекту соответственно. Выбираю пользователя и...

Добавление файла *.mdf. Ошибка "Должен быть установлен и запущен экспресс-выпуск SQL Server 2005 или SQL Server 2008"
Установлена Visual Studio 2010 и SQL Server 2008 R2 Standard. Хочу добавить в приложение файл базы данных *.mdf, но пишет: "должен...

41
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 19:23
Студворк — интернет-сервис помощи студентам
Что думаю?
Я же написал что проблема с генерацией запроса. bindValue чудит.
Юзайте такой вариант:
C++ (Qt)
1
QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt()));
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
18.01.2014, 19:40  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Что думаю?
Я же написал что проблема с генерацией запроса. bindValue чудит.
Юзайте такой вариант:
C++ (Qt)
1
QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt()));
про такой вариант даже не знал.

ругаетьсо зараза.

QODBCResult::exec: Unable to execute statement: "[Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций"
слот вот так выглядит

C++ (Qt)
1
2
3
4
5
6
7
void Dialog::on_delete_2_clicked()
{
 
     QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt()));
     query.exec();
     model6->select();
}
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 19:50
Покажите:
C++ (Qt)
1
qDebug() << QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt());
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
18.01.2014, 19:56  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Покажите:
C++ (Qt)
1
qDebug() << QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt());
C:\Qt\Qt5.2.0\Tools\QtCreator\bin\untitl e\dialog.cpp:54: ошибка: invalid use of incomplete type 'class QDebug'
qDebug() << QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt());
^
вызывал вот так, если расккомментить строки то те же самые ошибки

C++ (Qt)
1
2
3
4
5
6
7
8
9
void Dialog::on_delete_2_clicked()
{
 
//     QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt()));
 
//     query.exec();
       qDebug() << QString("DELETE FROM znaki_zodiaki WHERE 'id_znak'='%1'").arg(ui->id_spin->text().toInt());
//     model6->select();
}
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 20:09
...

C++ (Qt)
1
#include <QtDebug>
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
18.01.2014, 20:17  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
...

C++ (Qt)
1
#include <QtDebug>
я идиот..

"DELETE FROM znaki_zodiaki WHERE 'id_znak'='16'"
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 20:26
Странно. Нормальный запрос. Попробуйте через... хз если у mysql консоль... в общем не знаю.

Если не ошибаюсь, то верный запрос должен выглядеть так:
MySQL
1
DELETE FROM `znaki_zodiaki` WHERE `id_znak`='16';
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
18.01.2014, 20:32  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Странно. Нормальный запрос. Попробуйте через... хз если у mysql консоль... в общем не знаю.

Если не ошибаюсь, то верный запрос должен выглядеть так:
MySQL
1
DELETE FROM `znaki_zodiaki` WHERE `id_znak`='16';
я вам более скажу, ручками запрос к бд выаполняеться верно...

запрос невыполняеться только если в спин боксе указываю число. Если же в SqlQueri написать запрос который будет удалять конкретную запись, то он работает.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 21:21
Начнем с того, что почитайте что вообще возвращает QSpinBox::text(). Он возвращать может не только число.
C++ (Qt)
1
2
QSqlQuery query(QString("DELETE FROM `znaki_zodiaki` WHERE `id_znak`='%1'").arg(QString::number(ui->id_spin->value()));
query.exec();
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
18.01.2014, 21:55  [ТС]
QODBCResult::exec: Unable to execute statement: "[Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций"

опять :с
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
18.01.2014, 22:07
Код верный. Запрос вроде бы верный. Я не знаю в чем у вас проблема.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
19.01.2014, 00:07
SQL
1
DELETE FROM `znaki_zodiaki` WHERE `id_znak`='%1'
Что-то не понимаю зачем тут `` и ''
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
19.01.2014, 11:41  [ТС]
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
SQL
1
DELETE FROM `znaki_zodiaki` WHERE `id_znak`='%1'
Что-то не понимаю зачем тут `` и ''
это необязательно писать, но с ними правильнее

PS выполнил запрос без них, все та же ошибка
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
19.01.2014, 14:15
Хоть бы вывел ошибку.
C++ (Qt)
1
QSqlError QSqlQuery::lastError () const
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
19.01.2014, 15:01  [ТС]
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Хоть бы вывел ошибку.
C++ (Qt)
1
QSqlError QSqlQuery::lastError () const
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
void Dialog::on_delete_2_clicked()
{
 
 
     QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE id_znak = %1 ").arg(QString::number(ui->id_spin->value())));
 
     query.exec();
 
     model6->select();
 
     QSqlError QSqlQuery::lastError  ()  const;
}
C:\Qt\Qt5.2.0\Tools\QtCreator\bin\untitl e\dialog.cpp:59: ошибка: invalid use of qualified-name 'QSqlQuery::lastError'
QSqlError QSqlQuery::lastError () const;
^
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
19.01.2014, 15:54
...
Ну хоть немного вдумывайтесь в то что вы делаете...

C++ (Qt)
1
2
3
4
5
#include <QSqlError>
 
QSqlQuery query(QString("DELETE FROM znaki_zodiaki WHERE id_znak = %1 ").arg(QString::number(ui->id_spin->value())));
query.exec();
qDebug() << query.lastError().text();
1
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
19.01.2014, 19:31  [ТС]
QODBCResult::exec: Unable to execute statement: "[Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций"
"[Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций QODBC3: Unable to execute statement"
вот

Добавлено через 3 часа 25 минут
господа, расходимся, всем огромное спасибо!

благодаря помощи модератора под ником Чистый, проблема была решена

достаточно было сделать так

C++ (Qt)
1
2
3
4
5
6
void Dialog::on_delete_2_clicked()
{
    QSqlQuery query(QString("DELETE FROM znaki_zodiaka WHERE id_znak=" + ui->id_spin->text() + ""));
         query.executedQuery();
      model6->select();
}
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
19.01.2014, 19:41
Что-то я не понял. executedQuery() не выполняет запрос. Он просто возвращает последний удачно выполненный запрос.
То есть в коде выше вы ничего не удаляете.
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
19.01.2014, 19:57  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Что-то я не понял. executedQuery() не выполняет запрос. Он просто возвращает последний удачно выполненный запрос.
То есть в коде выше вы ничего не удаляете.
Только что проверил везде где только можно, все удалилось
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
19.01.2014, 20:05
Но этот метод ничего не удаляет:
http://qt-project.org/doc/qt-4... cutedQuery
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2014, 20:05
Помогаю со студенческими работами здесь

Как средствами джавы реализовать просмотр базы данных Access, SQL Server, SQL Server Compact и запись в нее?
---

Тип ошибки: Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AL_AS
Я только начинаю, это мой первый пробный пример и никак не могу начать: Вот пример, который я хотел запустить: за ним сообщение об...

Не удалось сформировать пользовательский экземпляр SQL Server из-за ошибки при запуске процесса для экземпляра пользователя
Всем привет. В названии темы сама загвоздка. Перепробовал вроде бы уже всё. http://support.microsoft.com/kb/2002980/ru сделал всё как...

Ошибка при импорте данных в таблицу SQL server
При попытке импорта в таблицу выдаётся ошибка в копировании из double в int . Как это исправить , может задать какой-то другой тип данных...

Ошибка при восстановлении базы данных SQL Server 6.5
Подскажите как восстановить базу данных из файла. Пытаюсь это сделать следущим образом: USE My_Data RESTORE DATABASE My_Data FROM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru