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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlRelationalTableModel и SQLite  (Прочитано 2669 раз)
virtual_root
Гость
« : Июль 10, 2012, 16:25 »

Ребята, что-то не могу понять почему у меня бд не создаётся..
не выполняется сам запрос... Код запроса проверила через утилиту SQlYog таблицы отлично создаются, но вот через Qt не хотят... Вот код:
Код:
 QSqlQuery a_query;

        QString str = "CREATE TABLE `sessions` ("
               " `dateTimeSession` datetime NOT NULL,"
               " `move_mouse` int(11),"
               " `keyboard` int(11),"
                " `flagBlock` int(1),"
              "  PRIMARY KEY  (`dateTimeSession`)"
                " ) ";
        str+= "CREATE TABLE `listwindow` ("
               " `dateTimeSession` datetime,"
               " `name` varchar(50) character set utf8 NOT NULL,"
               " `title` varchar(250) character set utf8 default NULL,"
               " `flagActivity` int(1),"
               " PRIMARY KEY  (`name`),"
               " KEY `FK_listwindow` (`dateTimeSession`),"
               " CONSTRAINT `FK_listwindow` FOREIGN KEY (`dateTimeSession`) REFERENCES `sessions` (`dateTimeSession`) ON DELETE NO ACTION ON UPDATE NO ACTION);";


         bool b = a_query.exec(str);
         if (!b) {
             qDebug() << "no create db..."<<sdb.lastError().text();;
             sdb.close();
         }
         else qDebug()<<QString::fromLocal8Bit("База данных создана успешно!");
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Июль 10, 2012, 16:30 »

1. Что в консоль выводит?
2. Что за странные кавычки?
3. Если хочешь объединить запросы, разделяй их через ;
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
virtual_root
Гость
« Ответ #2 : Июль 10, 2012, 17:14 »

кавычки убрала, но всё равно не создаёт таблицы. Причем если я их по отдельности создаю то всё в порядке, а как пытаюсь в одной строке, то никак..
Код:
"CREATE TABLE sessions ("
               " dateTimeSession datetime NOT NULL,"
               " move_mouse int(11),"
               " keyboard int(11),"
                " flagBlock int(1),"
              "  PRIMARY KEY  (dateTimeSession)"
                " ); "
           "CREATE TABLE listwindow ("
               " dateTimeSession datetime,"
               " name varchar(50),"
               " title varchar(250),"
               " flagActivity int(1),"
               " PRIMARY KEY  (name));";
Записан
mutineer
Гость
« Ответ #3 : Июль 10, 2012, 17:15 »

Ну так и создавай по отдельности, в чем проблема?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


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

Когда вы будете читать документацию?

Цитировать
bool QSqlQuery::exec ( const QString & query )

...

For SQLite, the query string can contain only one statement at a time. If more than one statements is give, the function returns false.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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