Russian Qt Forum

Qt => Базы данных => Тема начата: alexandrl от Июль 03, 2006, 19:50



Название: QT и создание базы ?
Отправлено: alexandrl от Июль 03, 2006, 19:50
Привет.

Возможно ли создать базу данных средствами QT или здесь можно работать только с существующими базами ?

Работаю с Firebird.

Спасибо.


Название: QT и создание базы ?
Отправлено: Nikolay_S от Июль 07, 2006, 08:10
Если правильно понял, то вы хотите выполнить команду SQL (читай документацию конкретного сервера БД). А в общем случае это делается так
Код:
CREATE DATABSE `Name`;


Название: QT и создание базы ?
Отправлено: rh9 от Июль 07, 2006, 14:12
db = QSqlDatabase::addDatabase("QPSQL7");
  db->setHostName("localhost");
  db->setDatabaseName("template1");
  db->setUserName(postgres);
  db->setPassword(psw);
  if (!db->open())
  {
    db->lastError().showMessage();
  }

sqlQuery.exec("CREATE DATABSE `Name`;");
может поможет если у тебя есть пароль postgres


Название: QT и создание базы ?
Отправлено: alexandrl от Июль 07, 2006, 20:53
Вопрос потому и возник что не получилось создать, так как sqlQuery требует соединение с сервером если я не ошибаюсь, а в данном случае оно отсутствует.
Пробовал ли кто такое, особенно интересует Firebird.
Все пароли есть, интересует возможность создания базы средствами QT.


Название: QT и создание базы ?
Отправлено: Sergey B. от Июль 07, 2006, 21:08
Цитата: "alexandrl"
Вопрос потому и возник что не получилось создать, так как sqlQuery требует соединение с сервером если я не ошибаюсь, а в данном случае оно отсутствует.
Пробовал ли кто такое, особенно интересует Firebird.
Все пароли есть, интересует возможность создания базы средствами QT.


там по умолчанию есть служебные базы, установи соединение с ними, потом передавай серверу QSqlQuery, потом создавай новое соединение.
В книге Бланше точно был пример нескольких соединений.


Название: QT и создание базы ?
Отправлено: alexandrl от Июль 07, 2006, 22:28
Что такое служебные базы ? В Firebird 2 доступ к базе пользователей закрыт(только через API сервисов), как после этого можно будет организовать создание базы ?
Как сделать несколько соединений я знаю, но вот почему нет штатного варианта создания базы, понять не могу. Бегло просмотрев исходный код, пришел к выводу, что классы рассчитаны на работу с данными, а не с метаданными.