Qt_Mysql Null поля |
Здравствуйте, гость ( Вход | Регистрация )
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 |
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 |
Ну так использование связанных переменных подразумевает не тупую замену плейсхолдеров, это целый механизм. Для передачи NULL-значений надо передавать NULL типа QVariant. Например, для передачи NULL в поле, с типом "строка", надо передать QVariant(QVariant::String). Точно))). Просто недавно начал изучать С++, и тем более Qt))) - можно примерчик, пожалуйста. Заранее спасибо |
|
|
Текстовая версия | Сейчас: 30.11.2024, 7:08 |