Russian Qt Forum

Qt => Базы данных => Тема начата: like-nix от Май 22, 2011, 17:21



Название: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 17:21
Здравствуйте уважаемые программисты.
Я наверное перегрелся на солнце =). не могу понять как сделать список таблиц тех которые в присутствуют в конкретной базе.

Попробую сормулировать мысль четче. Используя функцию
Код:
QStringList QSqlDatabase::tables ( QSql::TableType type = QSql::Tables ) const

Я могу получить таблицы видимые пользователем не зависимо от названия выбранной базы. А как получить список названий таблиц в базе данных с именем "test" например?

Qt 4.7
СУБД в которых хочется чтобы работало:
Mysql
Postres
Ms Sql



Название: Re: Список таблиц в конкретной базе данных
Отправлено: LisandreL от Май 22, 2011, 17:52
C SQLite'ом работает правильно (Qt 4.7.3).
Возможно баг, но всё же приведите на всякий случай ваш код.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 17:59
код можно взять из примера qt\demos\sqlbrowser у меня по нему сделано.

Он работает также как и описано у меня в первом посте.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: LisandreL от Май 22, 2011, 18:05
код можно взять из примера qt\demos\sqlbrowser у меня по нему сделано.
Этот пример с вашими БД также глючит?


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 18:20
Проверял пока только из под root под Mysql.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: LisandreL от Май 22, 2011, 18:32
Проверял пока только из под root под Mysql.
И каков результат?


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 18:32
От других пользователей в Mysql также работает


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 18:33
Проверял пока только из под root под Mysql.
И каков результат?

я его описал в первом посте.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 18:36
Я сейчас склоняюсь к тому что нудно использовать ,базу informatin shema. Я точно знаю что она доступна всем пользователям для чтения в mysql и postgres а вот на счет mssql не уверен.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 22, 2011, 18:37
Или у кого то пример из demos работает не так как у меня?)


Название: Re: Список таблиц в конкретной базе данных
Отправлено: LisandreL от Май 22, 2011, 19:31
Или у кого то пример из demos работает не так как у меня?)
С SQLite'ом у меня всё работает правильно. Серверных Бд у меня дома нет, что бы проверить.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: LisandreL от Май 22, 2011, 20:35
В общем баг (вроде бы только в новых MySql). Поправят, предположительно, в 4.7.4.
http://bugreports.qt.nokia.com/browse/QTBUG-11935
http://bugreports.qt.nokia.com/browse/QTBUG-18924


Название: Re: Список таблиц в конкретной базе данных
Отправлено: lit-uriy от Май 23, 2011, 08:17
собственно в хранилище уже поправлено (SHA:c0ca29efdeb442a6b88ccadff409e3f7ef828ce8) если сильно надо, то можно собрать из исходников.


Название: Re: Список таблиц в конкретной базе данных
Отправлено: like-nix от Май 23, 2011, 10:29
Спасибо за ответы. У меня возник еще один вопрос можно ли получить список баз данных на которые есть права у пользователя?