Russian Qt Forum

Qt => Вопросы новичков => Тема начата: virtual_root от Июль 10, 2012, 16:25



Название: QSqlRelationalTableModel и SQLite
Отправлено: 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("База данных создана успешно!");


Название: Re: QSqlRelationalTableModel и SQLite
Отправлено: Пантер от Июль 10, 2012, 16:30
1. Что в консоль выводит?
2. Что за странные кавычки?
3. Если хочешь объединить запросы, разделяй их через ;


Название: Re: QSqlRelationalTableModel и SQLite
Отправлено: virtual_root от Июль 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));";


Название: Re: QSqlRelationalTableModel и SQLite
Отправлено: mutineer от Июль 10, 2012, 17:15
Ну так и создавай по отдельности, в чем проблема?


Название: Re: QSqlRelationalTableModel и SQLite
Отправлено: Alex Custov от Июль 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.