Название: Qt с поддержкой QTDS Отправлено: Даниил от Август 24, 2011, 13:51 Здравствуйте.
Понадобился драйвер QTDS, для соединения с Adaptive Sybase сервер. Оказалось, что в опен-сорсной версси Qt, поддержка такового отсутствует и необходимо самому его собирать. Погуглив нашел инструкцию, по сборке плагинов http://doc.crossplatform.ru/qt/4.3.2/sql-driver.html (http://doc.crossplatform.ru/qt/4.3.2/sql-driver.html), но опять вылезла проблема. Оказалось, что тролли написали эту короткую инструкцию, для обладателей VS Studio, а при моем наборе (qt 4.7.3 + MinGW + Qt-Creator) сборка осуществляется более протяженным путем, однако ссылку на инструкции к такому пути - я не нашел. Имеет-ли кто-нить опыт подключения QTDS, если да, то поделитесь опытом. Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 09:37 Может быть кто-то попросту имел опыт соединения с СУБД Sybase?
Подскажите, как это осуществить. Может быть, я попросту вижу того, чего нет? :( Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 09:45 Напиши подробно что делаешь и что не получается.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 10:25 Имеется СУБД Sybase. Необходимо подключится к нему. После чтения документации- пришел к выводу, что для подключения, необходимо использовать sql драйвер QTDS. Написал вот такой код
Код В окне дебага вываливается Код: QSqlDatabase: QTDS driver not loaded Отсюда собственно сабж, как прикрутить? Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 10:27 Скачать драйвер, скомпилить его и положить рядом с остальными. На каком этапе загвоздка?
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 10:35 1)Скачать драйвер 1. Насколько я знаю, он уже присутствует в исходниках: "...Qt\4.7.3\src\sql\drivers\tds"2)Cкомпилить его 3)Положить рядом с остальными. А также присутствует нескомпиленный плугин "...Qt\4.7.3\src\plugins\sqldrivers\tds" 2. С компиляцией траблы возникают, если компилю плугин, он тыкается к исходникам, которые в свою очередь не могут найти библиотечки sqldb.h и sqlfron.h. 3. Что должно получится на выходе и куда это все кидать? ??? Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 10:40 2. Значит нужно саму либу БД скачать и указать ее при компилировании. Посмотри примеры сборки драйверов MySQL и PostgreSQL.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 11:00 Еще вопрос:
1) Везде описывают процесс сборки плагина qtds. Есть-ли возможность собрать *.dll-ку ? И да: Значит нужно саму либу БД скачать и указать ее при компилировании. 2) Это как понимать? Исходники qtds в инете нигде не нашел, а как уже говорил, при компилировании их сырцов - вылазиет ошибка отсутствия двух хеадеров, которые я нашел, скачал, положил рядом, но проект их упорно не хочет обнаруживать. Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 11:06 Погугли по названию хедеров.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 11:32 Привнтил те 2 либы к проекту, теперь ругается таким макаром
Код: :-1: ошибка: cannot find -lsybdb Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 11:34 Нужно указать что линковать. Поищи libsybdb.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 11:52 Нашел libsybdb.dll. Даже нашел, где её
Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 11:55 Нужно или .lib или .a
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 12:06 Что с ним делать? Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Август 25, 2011, 12:17 Указать его линковщику. -Lпуть_к_либе. Поищи по форуму.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 12:44 В .pri файле qsql_tds:
Код: unix|win32-g++*: { Точно файл: libsybdb.lib - это то, что нужно? Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 14:39 Чем больше читаю интернета, тем больше понимаю, что у меня чего-то не хватает исходников. А вот где их скачать, вот это вопрос ...
2. Значит нужно саму либу БД скачать и указать ее при компилировании. Посмотри примеры сборки драйверов MySQL и PostgreSQL. В случаем MySQL и PostgreSQL, программа и исходники находятся в открытом доступе. А в случае Sybase, их нет. Как тут быть? :'( Название: Re: Qt с поддержкой QTDS Отправлено: Странник от Август 25, 2011, 15:45 include и lib файлы обычно включаются в поставку сервера, установщик у вас есть? когда компилил QTDS, все необходимые файлы установились вместе с сервером.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 25, 2011, 19:12 include и lib файлы обычно включаются в поставку сервера, установщик у вас есть? когда компилил QTDS, все необходимые файлы установились вместе с сервером. С каким сервером? Sybase? Собственно Sybase сервер уже установлен, при чем давно, и я сильно сомневаюсь, что смогу так нарыть, что-то подобное. Но все же посмотрю. И да - Странник, у тебя скопиленные dll-ки остались: Я могу просто dll-ки скинуть к себе и через config.exe их приклеить?Название: Re: Qt с поддержкой QTDS Отправлено: Странник от Август 26, 2011, 09:24 dll, к сожалению, не осталось - с sybase уже год как не работаю.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 26, 2011, 09:28 Притащили мне дистрибы Sybase - сервер и OpenClient. Щас попробую поставить, покомпилять. :P
Странник, ты когда QTDS собирал, как путь до либ Sybase'овских прописывал? Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 26, 2011, 11:31 Странник, а ты под какой осью собирал? Lin, Unix? У меня под Win7 сервак ставится что-то даже не хочет.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 26, 2011, 12:25 Вернулся к отправной точке. В lib и .h файлах Sybase сервера нет того, на что ругается компилятор:
Код: In file included from main.cpp:50: Название: Re: Qt с поддержкой QTDS Отправлено: Странник от Август 26, 2011, 12:52 под XP дело было. qmake в INCLUDEPATH и LIBS указал пути к хедерам и либам. а что, нет их ни в сервере, ни в OpenClient?
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 26, 2011, 13:00 Сейчас другой накатил - в нем нашел.
Т.е. если у меня Sybase установлен в C:\Sybase. Мне в qmake нужно указывать: Код: qmake -o Makefile "INCLUDEPATH=C:/Sybase/OCS-12_5/include/" "LIBS=C:/Sybase/OCS-12_5/lib -lsybdb" tds.pro МЛЯ, там sqlfront.h и sqldb.h нету ... Господи, за что?! Теперь ругается на то, что не определены типы: Код: 'SQLCHAR' Может у меня libsybdb.lib не подключается?! Корректно пишу инструкцию для линковщика? Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 29, 2011, 14:37 Блин, ну совсем уже упарился. В хеадерсах от sybase (скачивал последнюю версию для девелоперов) хеадерсов sqlfront.h и sqldb.h НЕТУ. Оказалось, что это инструкция для Linux ( ;D ) - поржал и успокоился. НО, либу, которую троли говорят инклудить для виндовз тоже нигде нету! Что это за засада? Я дошел того, что слил коммерческую версию, но и в ней теже пироги - предлагают самому найти и скомпилить драйвер :'(
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Август 30, 2011, 12:20 Народ, помогите, чувствую, что уже совсем близок к победе, но опять вывалилась непонятная беда:
На этапе сборки вывалиется куча ошибок Код: :undefined reference to 'dbdead' Код Почему компилятор ругается? В аттаче хэадрсы и либы от Open Client Sybase 15.0 Название: Re: Qt с поддержкой QTDS Отправлено: Странник от Август 31, 2011, 14:04 development-файлы от MS SQL Server 8.0 (ntwdblib) и готовые бинарники плагина (Qt 4.7.3 MinGW).
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Сентябрь 01, 2011, 07:37 После удачной сборки драйвера, необходимо пересобирать Qt ?
Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Сентябрь 01, 2011, 09:15 Нет.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Сентябрь 01, 2011, 09:18 Тогда, подскажите. Как в проекте использовать плагин. Пробовал по примеру:
.pro Код: QTPLUGIN += qsqltds Код При компиляции выдает ошибку: Код: :-1: ошибка: cannot find -lqsqltdsd Название: Re: Qt с поддержкой QTDS Отправлено: Пантер от Сентябрь 01, 2011, 09:42 Просто положи плагин рядом с другими. В приложении его линковать не нужно, на то он и плагин.
Название: Re: Qt с поддержкой QTDS Отправлено: Даниил от Сентябрь 01, 2011, 20:13 Просто положи плагин рядом с другими. В приложении его линковать не нужно, на то он и плагин. Он как бы автоматом положился в директорию .../plugins/sqldriversКуда и с кем его положить еще нужно? :-\ Пантер, Если в про файле его не указывать, то вываливается другая ошибка: Код: undefined reference to `qt_plugin_instance_qsqltds()' |