crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Qt_Mysql Null поля
Stoptyssin
  опции профиля:
сообщение 14.3.2012, 23:03
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 20.1.2012
Пользователь №: 3145

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем Здравствуйте! Возникла следующая проблемка: Есть таблица допустим "Основная", также есть таблицы "Пациент" и "Прибор". 2 последние соединины с "Основной" по вторичным ключам Pat_ID и IP_ID. В "Основной " таблице эти поля могут быть NULL. Если я вставляю новую запись в таблицу из phpmyadmin все работает. Если я пишу запрос в Qt следующим образом
if (query.prepare(tr("INSERT INTO Osn_dan VALUES (:Dan_ID, :Osnov_dan, :Pat_ID, :Pers_ID, :IP_ID)")))
{
query.bindValue(":Dan_ID", "Trigered");
query.bindValue(":Osnov_dan", "Null");
query.bindValue(":Pat_ID", "Null");
query.bindValue(":IP_ID", "Null");

query.exec();
}
Запрос срабатывает, триггер срабатывает, но данные не вставляются

а вот так

if (query.prepare(tr("INSERT INTO Osn_dan VALUES (:Dan_ID, :Osnov_dan, :Pat_ID, :Pers_ID, :IP_ID)")))
{
query.bindValue(":Dan_ID", "Trigered");
query.bindValue(":Osnov_dan", "Null");
query.bindValue(":Pat_ID", "1");
query.bindValue(":IP_ID", "2");

query.exec();

}
Все работает. Подскажите почему так, и что мне собственно делать. Заранее спасибо за ответы))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 15.3.2012, 6:11
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Stoptyssin, покажи запросы создания таблиц, что ж в уме людям это делать ? Но сразу могу сказать, что ключи не могут быть равны null
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Stoptyssin
  опции профиля:
сообщение 15.3.2012, 14:59
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 20.1.2012
Пользователь №: 3145

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 15.3.2012, 9:11) *
Stoptyssin, покажи запросы создания таблиц, что ж в уме людям это делать ? Но сразу могу сказать, что ключи не могут быть равны null

аблицы уже созданны в phpmyAdmin , я просто подключаюсь к базе.... т.е если делать в phpmyadmin - ключи могут быть нулевыми, потому что запись вставляется, а из qt нет???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 15.3.2012, 21:58
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Ну так использование связанных переменных подразумевает не тупую замену плейсхолдеров, это целый механизм. Для передачи NULL-значений надо передавать NULL типа QVariant. Например, для передачи NULL в поле, с типом "строка", надо передать QVariant(QVariant::String).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Stoptyssin
  опции профиля:
сообщение 15.3.2012, 22:25
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 20.1.2012
Пользователь №: 3145

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(MoPDoBoPoT @ 16.3.2012, 0:58) *
Ну так использование связанных переменных подразумевает не тупую замену плейсхолдеров, это целый механизм. Для передачи NULL-значений надо передавать NULL типа QVariant. Например, для передачи NULL в поле, с типом "строка", надо передать QVariant(QVariant::String).


Точно))). Просто недавно начал изучать С++, и тем более Qt))) - можно примерчик, пожалуйста. Заранее спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 5:52