LINUX.ORG.RU
ФорумAdmin

Odbc DSN к firebird во FreeBSD


0

0

Добрый день,

Собственно вот в чём вопрос:
установил unixODBC, firebirdclient

Настроил соединение.

odbc.ini

[etalon]
Description = etalon
Driver = Firebird
Dbname = 192.168.1.2:D:\FirebirdBases\Etalon\newdatasd.ssd
User = login
Password = pass
Role =
CharacterSet = WIN1251
ReadOnly = No

odbcinst.ini
[Firebird]
Description = InterBase/Firebird ODBC Driver
Driver = /usr/local/lib/libfbclient.so.1
Threading = 1
FileUsage = 1
CPTimeout =

Но вот почемуто коннект не проходит:
isql -v etalon
[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
[ISQL]ERROR: Could not SQLConnect

Есть ли у кого догадки по этому поводу?

Далее

Проблема кроется здесь
Driver = /usr/local/lib/libfbclient.so.1

Требуется указать драйвер ODBC а не библиотеку клиента.

Но возникли сложности с компиляцией библиотеки

cvs -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird login
cvs -z3 -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird co OdbcJdbc

cd OdbcJdbc/Builds/Gcc.freeBSD
gmake -f makefile.linux

но получал сообщения об ошибке:
error FBINCDIR is undefind

просмотрев файл makefile.environ, заметил что файлы, требуемые для компиляции(iBase.h и ещё какието) ищутся в дирректории /opt/firebird/include
Но такой дирректории у меня нет, хотя клиент и сервер ФБ у меня установлен(2.0)
Подправив makefile.environ, заменив /opt/firebird/include и /opt/firebird/lib на /usr/local/include и /usr/local/lib соответственно, компилятор выдал мне ошибки нехватки какихто *.h файлов.
Нашёл эти файлы и копировал в /usr/include.

Компилятор ругаться перестал на их отсутствие.

Но теперь появилась ошибка к которой я не знаю как подступиться:
user# gmake -f makefile.freeBSD
../makefile.environ:12: ARCH is amd64
../makefile.environ:27: ODBCMANAGER is unixODBC in /usr/lib
../makefile.environ:45: FBINCDIR is /usr/local/include
../makefile.environ:51: FBLIBDIR is /usr/local/lib
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/Attachment.cpp -o Release/obj/Attachment.o
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/BinaryBlob.cpp -o Release/obj/BinaryBlob.o
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/DateTime.cpp -o Release/obj/DateTime.o
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/EnvShare.cpp -o Release/obj/EnvShare.o
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/extodbc.cpp -o Release/obj/extodbc.o
g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -pthread -DNDEBUG -c ../../IscDbc/IscArray.cpp -o Release/obj/IscArray.o
In file included from ../../IscDbc/IscArray.cpp:31:
../../IscDbc/IscArray.h:46: error: stray '`' in program
../../IscDbc/IscArray.h:45: error: ISO C++ forbids declaration of 'OC' with no type
../../IscDbc/IscArray.h:45: error: expected ';' before 'int'
../../IscDbc/IscArray.cpp:137: error: no 'int IscDbcLibrary::CAttrArray::getBufferLength()' member function declared in class 'IscDbcLibrary::CAttrArray'
../../IscDbc/IscArray.cpp: In member function 'virtual void IscDbcLibrary::IscArray::attach(char*, bool, bool)':
../../IscDbc/IscArray.cpp:302: error: 'intptr_t' was not declared in this scope
../../IscDbc/IscArray.cpp:302: error: expected primary-expression before '*' token
../../IscDbc/IscArray.cpp:302: error: expected primary-expression before ')' token
../../IscDbc/IscArray.cpp:302: error: expected primary-expression before ')' token
../../IscDbc/IscArray.cpp:302: error: expected ',' or ';' before 'pointBlob'
gmake: *** [Release/obj/IscArray.o] Error 1

Может быть есть у кого-нибудь опыт сборки данного драйвера? или ктото может предположить в чём проблема?

moskanz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.