Russian Qt Forum
Ноябрь 23, 2024, 20:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT3.3 SQLite AUTOINCREMENT  (Прочитано 5819 раз)
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« : Июнь 29, 2012, 14:36 »

Код:
		QSqlCursor sCur("server",true,MyPSQL);
QSqlRecord *buffer;
buffer = sCur.primeInsert();  // запись для вставки
buffer->setValue("id",NULL);
buffer->setValue("name",QString("Анаконда28"));
buffer->setValue("help","---------???-------");
int j=sCur.insert();
поле id ключевое INTEGER PRIMARY KEY.
Вставка не срабатывает Непонимающий
Если задаю номер "ручками", то все нормально.
Что я делаю не так?
Записан

Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 29, 2012, 14:44 »

PRIMARY KEY не может быть NULL.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #2 : Июнь 29, 2012, 14:49 »

"Когда вы вставляете строку с нулевым значением id, SQLite
автоматически присвоит полю следующее значение счётчика."
Это из букваря по SQLite Непонимающий
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #3 : Июнь 29, 2012, 15:00 »

зато конструкция
Код:
		QSqlQuery sql(MyPSQL);
bool ii=sql.exec("INSERT INTO server VALUES(NULL,1,2,3,4,5,6)");
срабатывает, как положено Непонимающий
Косяк QSqlCursor что ли?
Или я его не так пользую? Непонимающий
Записан

Как мало времени и как много нужно узнать
mutineer
Гость
« Ответ #4 : Июнь 29, 2012, 15:03 »

не делай buffer->setValue("id",NULL);
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Июнь 29, 2012, 15:05 »

buffer->setValue("id",NULL); тут NULL == 0, то есть, не пусто.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #6 : Июнь 29, 2012, 15:08 »

не делай buffer->setValue("id",NULL);
Не помогает, ошибка Непонимающий
Записан

Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Июнь 29, 2012, 15:10 »

Не знаю, есть ли в 3 версии, но попробуй
buffer->setValue("id",QVariant ());
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #8 : Июнь 29, 2012, 15:13 »

Не знаю, есть ли в 3 версии, но попробуй
buffer->setValue("id",QVariant ());
Спасибо!!!
Сработало Смеющийся
Записан

Как мало времени и как много нужно узнать
DmitryM
Гость
« Ответ #9 : Июнь 29, 2012, 17:42 »

Вместо 
Код
SQL
INSERT INTO server VALUES(NULL,1,2,3,4,5,6)
 
можно записать
Код
SQL
INSERT INTO server (colum1,colum2,colum3,colum4,colum5,colum6) VALUES(1,2,3,4,5,6))
 
и не придется  писать
Код
C++ (Qt)
buffer->setValue("id",QVariant ());
 
а то вдруг кто-то увидит такой код, и плохо о вас подумает  Подмигивающий
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #10 : Июль 08, 2012, 17:50 »

дело вкуса Смеющийся
Мне Курсор нравится больше Строит глазки
Нагляднее и гибче Шокированный
Записан

Как мало времени и как много нужно узнать
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.442 секунд. Запросов: 23.