Всем привет, люди подскажите плиз, есть qt sdk, qmysql драйвер, при попытке выполнить такой запрос SHOW CREATE TABLE `table` происходит странности, запрос тупо ни чего не возрашает,
затем тот же код компилю под виндой, там все норм работает.
Помогите разобраться в чем проблема, мжт дело в том что в результате выполнения такого запроса возращается структура табли в виде CREATE TABLE а заголовки столбцов написаны через пробел? Если так то как можно это обойти?
QMYSQL И SHOW CREATE TABLE (Проблемы с запросом или с драйвером)
Модератор: Модераторы разделов
-
OwnerCoder
- Сообщения: 186
- ОС: OpenSuSe 11, Apple OS X 10.5.8
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: QMYSQL И SHOW CREATE TABLE
Код: Выделить всё
SHOW CREATE TABLEА можно такой запрос писать?
Desipere in loco
-
OwnerCoder
- Сообщения: 186
- ОС: OpenSuSe 11, Apple OS X 10.5.8
Re: QMYSQL И SHOW CREATE TABLE
Да можно
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: QMYSQL И SHOW CREATE TABLE
По синтаксису 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
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
на такой год
такой ответ
Код: Выделить всё
#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
Гы интересно, версия QT одинаковая на системах, версия mysql тоже, в слчае если на винде это делать все норм.
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.