Russian Qt Forum

Qt => Базы данных => Тема начата: romanick от Декабрь 19, 2011, 21:09



Название: Qt+Firebird: не подключается к базе с пробелами в путях
Отправлено: romanick от Декабрь 19, 2011, 21:09
Подключаюсь к локальному серверу Firebird через QIBASE, однако последний не находит базу если в пути к ней есть пробелы. Если пробелов нет - всё ок. Можно ли как-нибудь заэкранировать пробелы?
Windows, Qt 4.7.4, Firebird 2.5

Спасибо!

P.S. альтернативу QIBASE не рассматриваю.


Название: Re: Qt+Firebird: не подключается к базе с пробелами в путях
Отправлено: romanick от Декабрь 19, 2011, 22:17
Разобрался. Всё дело в том я использовал
Код:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
а в пути к базе были русские буквы. Видать плагин QIBASE не умеет перекодировать строки исходя из системной локали.

Помогло
Код:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));
перед коннектом и возврат
Код:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
сразу после коннекта

Ну и в общем к Firebird этот пост как оказалась отношения не имеет.


Название: Re: Qt+Firebird: не подключается к базе с пробелами в путях
Отправлено: Whiplash от Декабрь 20, 2011, 08:51
Рекомендую на сервере с файербёрдом прописать алиас для базы и подключаться из клиента по алиасу.


Название: Re: Qt+Firebird: не подключается к базе с пробелами в путях
Отправлено: Пантер от Декабрь 20, 2011, 08:57
Рекомендую на сервере с файербёрдом прописать алиас для базы и подключаться из клиента по алиасу.
+1. Это очень правильный подход.