Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ dBase + Qt

Автор: JuryS1806 10.12.2009, 2:15

Здрасте Товарищи ! Я вот сейчас к своей программе подключаю базу данных. Я пишу объемник, с использованием OpenCascade и хочу чтобы данные о моделях и каталогах хранились в базе данных, также для учета клиентской базы.

У меня сейчас уже есть база данных отлаженная, только она написана на MS Access. Из под Wine'a все это прекрасно работает и экспорт-импорт файлов в формате dBase из под Access'a срабатывает DoCmd.TransferDatabase

А в QT насколько я понимаю нет драйвера для доступа к базам данных dBase.

Вот что умеет выставлять MS Access.
dBase III
dBase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
ODBC Databases
WSS

Может быть кто посоветует, какой из этих форматов можно прикрутить для использования в QT приложении ??? При этом я абслолютно не дружу с ODBC. потому как под Wine'ом его тяжело отладить. И еще я не хочу переписывать базу данных /~12Мб/ .

Заранее спасибо за помощь!

Автор: JuryS1806 10.12.2009, 3:27

и еще вот такой глупый вопрос

Paradox 7.x не то же самое что Oracle 7.x

т.е. драйвер QOCI сможет его проглотить или нет ???

Автор: Litkevich Yuriy 10.12.2009, 8:28

Цитата(JuryS1806 @ 10.12.2009, 6:27) *
Paradox 7.x не то же самое что Oracle 7.x
совсем не одно и тоже.

Цитата(JuryS1806 @ 10.12.2009, 5:15) *
При этом я абслолютно не дружу с ODBC. потому как под Wine'ом его тяжело отладить.
смотри в сторону http://www.freetds.org/

Автор: panter_dsd 10.12.2009, 12:44

Я так понял, тебе нужен импорт dbf файлов? Если да, то у меня есть класс, работающий с dbf, правда пока только на чтение. Если нужно, обращайся.

Автор: Tonal 11.12.2009, 11:25

Есть библиотеки работающие с dbf-ом напрямую.
Я использую подправленную Xbase64 3.1.2. Правда собирал её только mingw под виндой.

Ну и если данные простые (без блобов), можно налабать утилитку на python + http://pyobject.ru/projects/YDbf/ для конвертации в нужный тебе формат и обратно. :)

Ну и неужели, OpenCascade не умеет обмениваться по CSV или XML - тогда бы можно было вообще без гиммора с dbf-ками обойтись. :)

Автор: trdm 11.12.2009, 14:51

Цитата(Tonal @ 11.12.2009, 11:25) *
Ну и если данные простые (без блобов), можно налабать утилитку на python + http://pyobject.ru/projects/YDbf/ для конвертации в нужный тебе формат и обратно. :)

достали уже эти микроутилиты с гиганским надором зависимостей.
Поставил себе Debian, DE-LXDE, захотел поставить Kate по привычке, так эта зараза мне пол-KDE поставила...
Фигня какая-то ИМХО....

Автор: Kagami 11.12.2009, 15:36

Цитата(trdm @ 11.12.2009, 14:51) *
Цитата(Tonal @ 11.12.2009, 11:25) *
Ну и если данные простые (без блобов), можно налабать утилитку на python + http://pyobject.ru/projects/YDbf/ для конвертации в нужный тебе формат и обратно. :)

достали уже эти микроутилиты с гиганским надором зависимостей.
Поставил себе Debian, DE-LXDE, захотел поставить Kate по привычке, так эта зараза мне пол-KDE поставила...
Фигня какая-то ИМХО....

Все гораздо проще. Начиная с версии 5.0, в дебиане по-умолчанию ставятся рекомендуемые пакеты. Неплохо про это написано http://blogs.koolwal.net/2009/01/07/howto-tell-apt-get-not-to-install-recommends-packages-in-debian-linux/. Вкратце, чтобы это отключить, в /etc/apt/apt.conf надо добавить (или создать отдельный файлик в /etc/apt/apt.conf.d со следующим содержимым):
Цитата
APT::Install-Recommends "0";
APT::Install-Suggests "0";


Автор: JuryS1806 12.12.2009, 1:38

Друзья, спасибо за Ваше активное участие в теме !
Я и вправду много чего нашел по этому поводу !

Во-первых !
Есть драйверы ODBC для любой из баз данных
нашел тут: http://www.easysoft.com/
После регистрации дает качать. работает только с unixODBC
Делаю так: sudo ODBCconfig добавляю системный DNS и пошел.
И ЧТО САМОЕ ИНТЕРЕСНОЕ. есть драйвера под все извесные базы данных и даже под ACCESS (!!!) 97-2007 версии.

Но на этом я не остановился.
Нашел более легковесное решение:

В Windows/Wine устанавливаю sqliteodbc.exe . Беру его здесь:
http://www.ch-werner.de/sqliteodbc/sqliteodbc.exe

Эта вещь отменная предоставляет сразу 3 интерфейса :
SQLite Datasource
SQLite UTF-8 Datasource (! уже UTF8 !!!)
SQLite3 Datasource - по-умолчанию также UTF8

далее в ACCESS DoCmd.TransferDatabase acExport, "ODBC", "ODBC;DSN=SQLite3 Datasource; DATABASE=имя_и_путь_к_базе", acTable, "имя_отправляемой_таблицы", "имя_созданной_таблицы", False

И после этого уже в QT пользую готовый интерфейс без каких либо ODBC, при этом UTF8 рабоет ! ! !
Об этом уже подробнее Макс Шлее пишет.

P.S. ненавижу ACCESS 2007 !

Автор: Litkevich Yuriy 12.12.2009, 11:55

А зачем с SQLite через ODBC работать?

Автор: JuryS1806 12.12.2009, 23:42

Цитата(Litkevich Yuriy @ 12.12.2009, 11:55) *
А зачем с SQLite через ODBC работать?


В том то весь и прикол, что с SQLite QT умеет работать без ODBC, своим родным драйвером. И к тому же на сайте производителя SQLite есть C++ код для использования базы данных, типа класса. Т.е. можно и обойти комерческое использование QT.

а ODBC нужен для MS Access потому как он не умеет его создавать.

А может быть можно как нибудь по - другомму ?? ? через JET 4.0 просто вписать библиотеку для MS ACCESS в реестре ???? И он ее примет как родную ?!

Есть рекомендации ? На хорошую мысль вы меня наткнули. Сейчас попробую DLL -ку на JET4.0 повесить, а то и вправду без odbc обойтись можно.

Автор: Litkevich Yuriy 13.12.2009, 4:34

Ничё не понял, а это тем более:

Цитата(JuryS1806 @ 13.12.2009, 2:42) *
Т.е. можно и обойти комерческое использование QT.

Автор: JuryS1806 13.12.2009, 18:32

Цитата(Litkevich Yuriy @ 13.12.2009, 4:34) *
Ничё не понял, а это тем более:
Цитата(JuryS1806 @ 13.12.2009, 2:42) *
Т.е. можно и обойти комерческое использование QT.



Дело в том, что если писать программу на QT нужно соблюдать лицензию GPLv2. т.е. программа должна быть с открытым исходным кодом. Так вот, если покупать Qt, то он стоит 6000 евро. Ну и как следствие патент и авторские права на программу будет возможным получить.

В идеале вообще обойти QT и тогда с патентом не будет никаких проблем. Иначе заниматься OpenSource программным обеспечением. Начиная с версии 4.5.0 также в файле лицензии сказано, что для работы с базой данных, OpenGL графикой и еще некоторыми функциями ты должен купить QT. Или отказаться от ее использования.

Я хочу часть программы сделать с закрытым исходным кодом. А посему никаких QT там быть не должно. А opensource часть не будет работать с базой данных и вообще не будет выходить за рамки обычного геометрического редактора.

УВЫ QT - ЭТО НЕ ТРОЛЕВСКИЙ БЕСПЛАТНЫЙ ЯЗЫК, А ШКУРА ОТ КОМПАНИИ NOKIA. КОТОРАЯ СТОИТ КАК ВЫ ЗАМЕТИЛИ НЕ ДЕШЕВО.

Абсолютно бесплатным остался QT v.3.3 на ftp.trolltech.com он так и называется QT-free.
А уже все 4-ки opensource.

Автор: Litkevich Yuriy 13.12.2009, 18:55

Цитата(JuryS1806 @ 13.12.2009, 21:32) *
GPLv2.
Или LGPL, начиная с версии 4.5.x

Цитата(JuryS1806 @ 13.12.2009, 21:32) *
сказано, что для работы с базой данных
с какой конкретно БД

Вот по поводу SQLite:
Цитата
According to the comments in the source files, the code is in the public domain

Автор: JuryS1806 13.12.2009, 21:29

Хе ! Дело в том что я не программист, это мое хобби, я уже 4 года занимаюсь написанием своей проектировочной программы.
И к сожалению времени нет на полное изучение лицензии и QT в целом.

Вот многоуважаемый Жасмин Бланшет пишет, что нужно для использования QT в своих программах его купить, либо распространять программы в открытом исходном коде. То же самое на сайте qt.nokia.com.
Может быть я не так понял конечно

Я вот с одним знакомым разговаривал сегодня. Так вот он мне сказал: давай 10 тыс рублей и патент твой. У нас ведь в стране нет патентов на конкретные алгоритмы и коды. Назовы классы QT - PT или MT и пиши себе спокойно. Патент у тебя уже в кармане... Не знаю, не сталкивался с лицензированием ни разу.

В любом случае, если я не прав, поправьте меня.

Автор: Kagami 13.12.2009, 21:35

Ты не прав. Смотриhttp://qt.nokia.com/products/licensing. Есть три лицензии: коммерческая, GPL и LGPL (появилась с версии 4.5, книга Бланшет старее и не отражает этих изменений). С коммерческой все ясно - хочешь закрывай код, хочешь открывай. С GPL тоже все просто - код должен быть открыт. LGPL хитрее - ты можешь закрыть код своей программы если не будешь линковаться с библиотеками Qt статически, при этом все изменения в самой библиотеке (если они есть) ты должен открыть.

Автор: JuryS1806 13.12.2009, 23:43

Спасибо за информацию. Я вообще не сторонник статических сборок в принципе.
Никогда этого не пользовал. Т.е. как я понимаю, я могу писать свою программу, используя все достоинства QT без каких-либо скрытий того.
Это здорово. Потому что Standard_C меня вообще не вставляет. К тому же для каждой платформы подбирать код невозможно долго.

СПАСИБО ЗА СОВЕТ. Вообще, тема интересная с лицензированием. Promt дает кривой перевод этой LGPL. Думаю у нас тоже должны быть подобные лицензии.

Автор: Litkevich Yuriy 14.12.2009, 7:19

JuryS1806, тема лицензирования уже поднималась на форуме. Если кратко, то так:
используй Qt 4.5. и выше, используй стандартную сборку, (т.е. DLLки Qt, для виндовоза) не меняй исходники Qt и пиши любую программу, в том числе с закрытыми исходниками.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)