Russian Qt Forum
Сентябрь 30, 2024, 18:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: CREATE DATABASE  (Прочитано 28705 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #30 : Октябрь 20, 2009, 16:42 »

Пиплы, говорю всем, в том числе и себе - перед тем, как что-то доказывать/хаять, проверьте.
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
 
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
 
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
 
QSqlDatabase base = QSqlDatabase::addDatabase("QPSQL");
base.setHostName("localhost");
base.setUserName("postgres");
base.setPassword("postgres");
 
if (!base.open()) {
qDebug(base.lastError().text().toLocal8Bit());
}
QSqlQuery query;
query.exec("CREATE DATABASE tmp_base");
qDebug(query.lastError().text().toLocal8Bit());
 
base.close();
return 0;
}
 
Все отлично работает и никакой БД указывать при коннекте не нужно. Тему, считаю, можно закрывать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #31 : Октябрь 20, 2009, 19:46 »

Цитировать
Все отлично работает и никакой БД указывать при коннекте не нужно. Тему, считаю, можно закрывать.

Хорошо а что тогда открывает оператор if (!base.open()) в вашем примере? если не другую БД?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #32 : Октябрь 20, 2009, 19:56 »

Открывает соединение с сервером.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
CroCIV
Гость
« Ответ #33 : Октябрь 21, 2009, 07:37 »

Во, сразу видно практика, а не какого-нибудь там теоретика. Мне было влома сервер ставить, и так подтормаживает все, но знал, что как-то так работать и должно.  Улыбающийся
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #34 : Октябрь 21, 2009, 11:07 »

Цитировать
Во, сразу видно практика, а не какого-нибудь там теоретика. Мне было влома сервер ставить, и так подтормаживает все, но знал, что как-то так работать и должно.

Сам ты теоретик я с БД 5 лет работаю и эта ситуация с FB не катит - проверил еще в асамом начале.
Записан
BaltikS
Гость
« Ответ #35 : Октябрь 21, 2009, 11:33 »

Можно всё жизнь на SQLit-е сидеть и бить себя в грудь...но этого ничего не изменит! Да с FB - не катит, с другими -  катит!
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #36 : Октябрь 21, 2009, 12:09 »

Ну судя по тому как вы себя бьете в грудь - да можно и не важно какая БД

а на счет метода open из асистента:

Opens the database connection using the current connection values. Returns true on success; otherwise returns false. Error information can be retrieved using lastError().

т.е. открывает соединения с базой - на счет того что это работает я даже и не спорил, но на счет того что это использовать неправильно считаю до сих пор т.к.

1) Не соответствует документации (там ничего не сказано про соединение с сервером после которого сожно создавать метаданные в том числе Базу)
2) Не интуитивно и вообще не понятно что будет если сделать rollback
3) Не имеет смысла т.к. чтобы работать с созданной Базой все равно потребуется переподключиться к ней через QSqlDatabase
4) Есть как минимум 2 способа сделать то же самое более правильным и понятным способом

а вы господа BaltikS и CroCIV - наверное пока работаете на уровне сделать "чтобы заработало" а не сделать правильно и красиво чтобы другой программист взявшись за поддержку проекта сразу мог понять в чем дело

кроме того надоели ваша хамская критика не содержащая в себе никакой информации по теме - это вроде форум для обсуждения технических вопросов а не меня или вас - кто теоретик а кто пи......рас. Если сказать по техническому вопросу ничего не можете молчите, я послушаю других людей у которых есть доводы.

Кроме того кокретно применительно к FB на этом форуме обсуждался вопрос создания БД средствами QT и он так и не был решен средствами CREATE DATABASE

http://www.prog.org.ru/topic_3265_0.html

http://www.prog.org.ru/index.php?topic=9400.msg53633#msg53633
Записан
BaltikS
Гость
« Ответ #37 : Октябрь 21, 2009, 12:33 »

Уважаемый break, мой стаж работы с базами повыше вашего и я бы на вашем месте не стал бы так утверждать! То что Вам кажется не логичным не правильным - сугубо Ваша точка зрения! Пробелы Вашего же не знания, Вы пытаетесь перекинуть на личные! Мне например всё равно открывается база или сессия....подозреваю, что если не указывается имя базы в Postgres, то автоматом идёт подключения к базе к template1. Но разговор совершенно не об этом... Я перечитал заново топик и Ваш вопрос был именно почему у меня не работает Create Database с FB... Видимо Вы работая 5 лет с ним так и не поняли, что в нём это сделать нельзя. А попытки Вас убедить, что в некоторых СУБД это возможно, Вы просто выражете в виде истерики и споров. Как говорится надо Учится, учится и ещё раз учится...
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #38 : Октябрь 21, 2009, 12:45 »

хоть один технический вопрос в вашем посте описан - только ваше отношение ко мне - и это не первый раз уже ( "МОЙ ОПЫТ ПОВЫШЕ ВАШЕГО........") !

Цитировать
То что Вам кажется не логичным не правильным - сугубо Ваша точка зрения!

Так я свою точку зрения и выражаю - это и так понятно - истерики как раз у вас.

Цитировать
Мне например всё равно открывается база или сессия....подозреваю, что если не указывается имя базы в Postgres, то автоматом идёт подключения к базе к template1.

Так вы подозреваете - то есть даже не знаете 100% как оно работает?
Записан
BaltikS
Гость
« Ответ #39 : Октябрь 21, 2009, 12:49 »

Улыбающийся улыбнул этот парень....я больше не буду отвечать на глупые вопросы... Улыбающийся
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #40 : Октябрь 21, 2009, 13:45 »

Цитировать
улыбнул этот парень....я больше не буду отвечать на глупые вопросы..
очередная несодержательная нападка
Записан
CroCIV
Гость
« Ответ #41 : Октябрь 21, 2009, 13:55 »

так, разбежались по комнатам  Смеющийся, я под теоретиками не имел ввиду кого-то конкретного, а в общем всех, т.к. проблемы на самом деле нет, а тема раскатана на 3 страницы. И потом, теоретик - это такое же обзывательство как и интеллигент.

З.Ы.: Моя задача - вкрутить в патрон лампу. Все, что мне надо знать, это чтоб патрон, лампа и электричество в сети соответствовали единым стандартам, чтоб лампа, и вкрутилась, и светила. Мне совершенно все равно из какого они теста, или какой у патрона серийный номер, или сколько сигарет выкурил за смену Вася в которую этот патрон изготовил. И, если патрон имеет какие-то индивидуальные особенности, и чтобы в него лампу грамотно вкрутить надо подкладывать токопроводящую пластинку в основание, и потом еще все скотчем зафиксировать, то зачем мне этот патрон? Это называется не особенности, а брак. вот бы и с компиляторами такая же фигня была, каждый компилятор с++ пусть бы компилировал по своему так, чтоб исходный код между ними переносим не был, я б точно тогда на яву перешел.
 
Вот лично я делаю упор на использование стандартных типов и стандартных языковых конструкций и потому я не привязан к какому-то конкретному серверу, вот завтра оракул поглатит огнептица и мускуль и закроет их нафиг, и вот не знаю как вам, а мне переписывать мегабайты кода не придется, весь мой гемор будет в том, чтобы установить новый сервер и перекинуть на него базу со стандартными типами, ну максимум день.
Записан
Vexator
Гость
« Ответ #42 : Октябрь 22, 2009, 04:17 »

Вот лично я делаю упор на использование стандартных типов и стандартных языковых конструкций и потому я не привязан к какому-то конкретному серверу, вот завтра оракул поглатит огнептица и мускуль и закроет их нафиг, и вот не знаю как вам, а мне переписывать мегабайты кода не придется, весь мой гемор будет в том, чтобы установить новый сервер и перекинуть на него базу со стандартными типами, ну максимум день.
+1
вообще бесит, что существуют уникальные конструкции, выпадающие из стандартов, по началу было очень не приятно узнавать, что используемые тобой конструкции, не будут работать на другом сервере
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #43 : Октябрь 22, 2009, 11:02 »

Цитировать
вообще бесит, что существуют уникальные конструкции, выпадающие из стандартов, по началу было очень не приятно узнавать, что используемые тобой конструкции, не будут работать на другом сервере

Создание БД указанным способом как раз и является такой конструкцией - неявной и неработающей на другом сервере, кроме того не описанной в документации поэтому именно эта ситуация и мне не нравится.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.133 секунд. Запросов: 23.