Russian Qt Forum

Qt => Базы данных => Тема начата: ecspertiza от Июль 23, 2009, 12:55



Название: Firebird connect
Отправлено: ecspertiza от Июль 23, 2009, 12:55
Вобщем давно пользуюсь Firebird под Виндой, тут решил пол Linux-ом поюзать, установил создал базу, коннектится из под консоли всё хорошо, а вот если коннекчусь у базе из проги то тут траблы вот код функции

Код:
static bool createConnect(QString basename)
{
        QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
        db.setDatabaseName(basename);
        db.setUserName("sysdba");
        db.setPassword("masterkey");
if (!db.open())
{
                QMessageBox::critical(0,QObject::tr("DataBase Error"),db.lastError().driverText());
                qDebug() << db.lastError() << db.lastError().driverText();
                return false;
}else
{
return true;
}
}

путь к базе передаю точно правельный, вот что мне КуТе отвечает

Цитировать
QSqlError(-902, "Error opening database", "Unable to complete network request to host "localhost". - Failed to establish a connection. - В соединении отказано") "Error opening database"

Это к чему, зачем он через localhost коннектится? Использую ClasicServer, плагин для КуТе собрал.


Название: Re: Firebird connect
Отправлено: crossly от Июль 23, 2009, 14:53
укажи явно имя хоста...


Название: Re: Firebird connect
Отправлено: ecspertiza от Июль 23, 2009, 14:55
Зачем если база в файле на локальной машине?

да и я пробовал явно указывать и localhost и 127.0.0.1


Название: Re: Firebird connect
Отправлено: ecspertiza от Июль 23, 2009, 16:02
И похоже это не я с ума сошел, стандартный пример sqlbrowser, отображает драйвер QIBASE но при коннекте выдаёт ту же ошибку.  ???


Название: Re: Firebird connect
Отправлено: break от Июль 24, 2009, 02:42
Сетка на компе живая? ping 127.0.0.1
Порт который использует файрберд по умолчанию не занят какой-тодругой программой? (не помню на память можно посмотреть в конфиге)
А на счет указания имени хоста лучше всегдя это делать явно как вам посоветовали, избавит от множества проблем.


Название: Re: Firebird connect
Отправлено: lit-uriy от Июль 24, 2009, 06:23
>>не помню на память можно посмотреть в конфиге
3050


Название: Re: Firebird connect
Отправлено: crossly от Июль 24, 2009, 08:53
вообще советовал бы под linux super-server...

в общем qt тут совершенно ни причем.... для начала проверь запущен ли у тебя сервер вообще!!...

проверь порт в /etc/services.... и посмотри с помощью netstat и или тупо telnet localhost 3050 (gds_db в /etc/services)...


Название: Re: Firebird connect
Отправлено: ecspertiza от Июль 24, 2009, 09:19
вот что в /etc/servies/

Код:
gds_db          3050/tcp   # gds_db
gds_db          3050/udp   # gds_db

тут всё нормально насколько я понимаю, команда nmap сказала что нет у меня открытого порта 3050.

Возникает совсем нубский вопрос, как тогда запустить огнептицу?


Название: Re: Firebird connect
Отправлено: crossly от Июль 24, 2009, 12:46
ну если сервер у тебя классик то запускатся должен он xinetd (inetd для старых дистрибутивов)... тобиш для начала проверь запущен ли у тебя xinetd... ну и соответственно надо бы проверить а прописан ли у тебя огнептиц в него...

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


Название: Re: Firebird connect
Отправлено: ecspertiza от Июль 24, 2009, 14:27
C xinetd попробую чуть позже сейчас работой загрузили, а дистрибутив OpenSUSE 11.1


Название: Re: Firebird connect
Отправлено: crossly от Июль 24, 2009, 16:02
ну.... на 11.1 он скорее всего даже не установлен по умолчанию... все же рекомендовал бы супер....


Название: Re: Firebird connect
Отправлено: Blayder от Июль 24, 2009, 21:50
в
/etc/hosts.allow
добавь
gds_db : ALL
может поможет.


Название: Re: Firebird connect
Отправлено: ecspertiza от Июль 27, 2009, 07:56
crossly, спасибо xinetd помог, всё запустилось собралось и заработало ;D