Russian Qt Forum

Qt => Базы данных => Тема начата: finka от Январь 18, 2008, 16:35



Название: Возможность DCL statements в QSqlQuery
Отправлено: finka от Январь 18, 2008, 16:35
В Assistent'e написано:
Цитировать
QSqlQuery encapsulates the functionality involved in creating, navigating and retrieving data from SQL queries which are executed on a QSqlDatabase. It can be used to execute DML (data manipulation language) statements, such as SELECT, INSERT, UPDATE and DELETE, as well as DDL (data definition language) statements, such as CREATE TABLE. It can also be used to execute database-specific commands which are not standard SQL (e.g. SET DATESTYLE=ISO for PostgreSQL).

Судя по цитируемому создавать новых пользователей или менять их привилегии с помощью QSqlQuery нельзя, но так как я часто упускаю важные детали, все же уточню, это действительно так?:)


Название: Re: Возможность DCL statements в QSqlQuery
Отправлено: ритт от Январь 18, 2008, 18:49
по-моему в вышеприведённой цитате нет и намёка на подобные ограничения :)
попробуй для мускуля от юзверя, привелигерованного создавать других юзверей, например, от root'а:
QSqlQuery query("CREATE USER xep", QSqlDatabase());
qDebug() << query.numRowsAffected();

правда, в том же мускуле CREATE USER появился только в пятой линейке...


Название: Re: Возможность DCL statements в QSqlQuery
Отправлено: Вячеслав от Январь 20, 2008, 00:19
А Шо такое DCL ? DML понятно ,DDL тож ..... А DCL ?
PS За мускул не скажу, но птица(Firebird) за милую душу жрет CREATE USER/ GRANT .......


Название: Re: Возможность DCL statements в QSqlQuery
Отправлено: finka от Январь 21, 2008, 16:41
DCL - data control language, GRANT относится к нему, она же создает пользователя (по крайней мере в MySQL4), а в цитируемом тексте говорилось, что QSqlQuery используется для DML и DDL, значит GRANT, вероятно не может использоваться. CREATE относится к DDL, поэтому может использоваться. Но это я все теоретизиурю, сама ничего не пробовала:)