QMYSQL И SHOW CREATE TABLE (Проблемы с запросом или с драйвером)

Модератор: Модераторы разделов

Аватара пользователя
OwnerCoder
Сообщения: 186
ОС: OpenSuSe 11, Apple OS X 10.5.8

QMYSQL И SHOW CREATE TABLE

Сообщение OwnerCoder »

Всем привет, люди подскажите плиз, есть qt sdk, qmysql драйвер, при попытке выполнить такой запрос SHOW CREATE TABLE `table` происходит странности, запрос тупо ни чего не возрашает,
затем тот же код компилю под виндой, там все норм работает.
Помогите разобраться в чем проблема, мжт дело в том что в результате выполнения такого запроса возращается структура табли в виде CREATE TABLE а заголовки столбцов написаны через пробел? Если так то как можно это обойти?
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QMYSQL И SHOW CREATE TABLE

Сообщение Crazy »

Код: Выделить всё

 SHOW CREATE TABLE

А можно такой запрос писать?

Desipere in loco
Спасибо сказали:
Аватара пользователя
OwnerCoder
Сообщения: 186
ОС: OpenSuSe 11, Apple OS X 10.5.8

Re: QMYSQL И SHOW CREATE TABLE

Сообщение OwnerCoder »

Crazy писал(а):
15.01.2010 12:37

Код: Выделить всё

 SHOW CREATE TABLE

А можно такой запрос писать?

Да можно :)
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QMYSQL И SHOW CREATE TABLE

Сообщение Crazy »

По синтаксису SHOW и CREATE TABLE непонятно, что следует ожидать от кода

Код: Выделить всё

SHOW CREATE TABLE `table`

Desipere in loco
Спасибо сказали:
Аватара пользователя
OwnerCoder
Сообщения: 186
ОС: OpenSuSe 11, Apple OS X 10.5.8

Re: QMYSQL И SHOW CREATE TABLE

Сообщение OwnerCoder »

Crazy писал(а):
15.01.2010 14:48
По синтаксису SHOW и CREATE TABLE непонятно, что следует ожидать от кода

Код: Выделить всё

SHOW CREATE TABLE `table`

Блин народ вы что??? Это стандартный синтаксис:)
Вот вывод:

Код: Выделить всё

mysql> SHOW CREATE TABLE `test`\G
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `t1` int(11) NOT NULL,
  `t2` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QMYSQL И SHOW CREATE TABLE

Сообщение Crazy »

на такой год

Код: Выделить всё

#include <QtGui>
#include <QtSql>

static bool createConnect()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("test");
    if(!db.open())
    {
    qDebug()<<db.lastError();
    return false;
    }
    return true;
}

int main(int argc, char** argv)
{
    if(    createConnect())
    {
        QApplication app(argc, argv);
        QTableView    view;
        QSqlQueryModel model;
        QString str = "SHOW CREATE TABLE `TEST_TB`;";
        QSqlQuery query;
        query.exec(str);
        qDebug()<<query.lastError().text();
        QSqlRecord rec = query.record();
        QString str2= query.value(rec.indexOf("Table")).toString();

        return app.exec();
    }
    else return 0;
}

такой ответ
"This command is not supported in the prepared statement protocol yet QMYSQL3: Unable to prepare statement"
QSqlQuery::value: not positioned on a valid record

Desipere in loco
Спасибо сказали:
Аватара пользователя
OwnerCoder
Сообщения: 186
ОС: OpenSuSe 11, Apple OS X 10.5.8

Re: QMYSQL И SHOW CREATE TABLE

Сообщение OwnerCoder »

Crazy писал(а):
15.01.2010 17:23
такой ответ
"This command is not supported in the prepared statement protocol yet QMYSQL3: Unable to prepare statement"
QSqlQuery::value: not positioned on a valid record



Гы интересно, версия QT одинаковая на системах, версия mysql тоже, в слчае если на винде это делать все норм.
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QMYSQL И SHOW CREATE TABLE

Сообщение Crazy »

хм. забавно в версии 4.6.0 все работает.

Desipere in loco
Спасибо сказали: