Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: dBase + Qt
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
JuryS1806
Здрасте Товарищи ! Я вот сейчас к своей программе подключаю базу данных. Я пишу объемник, с использованием 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
и еще вот такой глупый вопрос

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

т.е. драйвер QOCI сможет его проглотить или нет ???
Litkevich Yuriy
Цитата(JuryS1806 @ 10.12.2009, 6:27) *
Paradox 7.x не то же самое что Oracle 7.x
совсем не одно и тоже.

Цитата(JuryS1806 @ 10.12.2009, 5:15) *
При этом я абслолютно не дружу с ODBC. потому как под Wine'ом его тяжело отладить.
смотри в сторону freeTDS
panter_dsd
Я так понял, тебе нужен импорт dbf файлов? Если да, то у меня есть класс, работающий с dbf, правда пока только на чтение. Если нужно, обращайся.
Tonal
Есть библиотеки работающие с dbf-ом напрямую.
Я использую подправленную Xbase64 3.1.2. Правда собирал её только mingw под виндой.

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

Ну и неужели, OpenCascade не умеет обмениваться по CSV или XML - тогда бы можно было вообще без гиммора с dbf-ками обойтись. :)
trdm
Цитата(Tonal @ 11.12.2009, 11:25) *
Ну и если данные простые (без блобов), можно налабать утилитку на python + ydbf для конвертации в нужный тебе формат и обратно. :)

достали уже эти микроутилиты с гиганским надором зависимостей.
Поставил себе Debian, DE-LXDE, захотел поставить Kate по привычке, так эта зараза мне пол-KDE поставила...
Фигня какая-то ИМХО....
Kagami
Цитата(trdm @ 11.12.2009, 14:51) *
Цитата(Tonal @ 11.12.2009, 11:25) *
Ну и если данные простые (без блобов), можно налабать утилитку на python + ydbf для конвертации в нужный тебе формат и обратно. :)

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

Все гораздо проще. Начиная с версии 5.0, в дебиане по-умолчанию ставятся рекомендуемые пакеты. Неплохо про это написано тут. Вкратце, чтобы это отключить, в /etc/apt/apt.conf надо добавить (или создать отдельный файлик в /etc/apt/apt.conf.d со следующим содержимым):
Цитата
APT::Install-Recommends "0";
APT::Install-Suggests "0";

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

Во-первых !
Есть драйверы 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
А зачем с SQLite через ODBC работать?
JuryS1806
Цитата(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
Ничё не понял, а это тем более:
Цитата(JuryS1806 @ 13.12.2009, 2:42) *
Т.е. можно и обойти комерческое использование QT.
JuryS1806
Цитата(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
Цитата(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
Хе ! Дело в том что я не программист, это мое хобби, я уже 4 года занимаюсь написанием своей проектировочной программы.
И к сожалению времени нет на полное изучение лицензии и QT в целом.

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

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

В любом случае, если я не прав, поправьте меня.
Kagami
Ты не прав. Смотри здесь. Есть три лицензии: коммерческая, GPL и LGPL (появилась с версии 4.5, книга Бланшет старее и не отражает этих изменений). С коммерческой все ясно - хочешь закрывай код, хочешь открывай. С GPL тоже все просто - код должен быть открыт. LGPL хитрее - ты можешь закрыть код своей программы если не будешь линковаться с библиотеками Qt статически, при этом все изменения в самой библиотеке (если они есть) ты должен открыть.
JuryS1806
Спасибо за информацию. Я вообще не сторонник статических сборок в принципе.
Никогда этого не пользовал. Т.е. как я понимаю, я могу писать свою программу, используя все достоинства QT без каких-либо скрытий того.
Это здорово. Потому что Standard_C меня вообще не вставляет. К тому же для каждой платформы подбирать код невозможно долго.

СПАСИБО ЗА СОВЕТ. Вообще, тема интересная с лицензированием. Promt дает кривой перевод этой LGPL. Думаю у нас тоже должны быть подобные лицензии.
Litkevich Yuriy
JuryS1806, тема лицензирования уже поднималась на форуме. Если кратко, то так:
используй Qt 4.5. и выше, используй стандартную сборку, (т.е. DLLки Qt, для виндовоза) не меняй исходники Qt и пиши любую программу, в том числе с закрытыми исходниками.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.