Russian Qt Forum

Qt => Базы данных => Тема начата: Anarchist от Май 09, 2009, 16:57



Название: работа с dbf
Отправлено: Anarchist от Май 09, 2009, 16:57
Нужно читать и писать в *.dbf файл. Подскажите пожалуйста как. Через QODBC не получилось, может что не так делаю. xbase64 собрать не могу что-то  >:(. Может кто сталкивался и имеются наработки, поделитесь пожалуйста.


Название: Re: работа с dbf
Отправлено: ged от Май 09, 2009, 23:45
Я только читал dbf, если хочешь могу скинуть исходники куда-нибудь.


Название: Re: работа с dbf
Отправлено: Anarchist от Май 10, 2009, 07:31
Нашёл патч для xbase64: http://www.loicp.eu/patchs/xbase64/. С ним всё собралось, но в qt работать пока с ним не вышло... На такую строку:  xbXBase x; ругается так: undefined reference to `xbXBase::xbXBase()'  :(


Название: Re: работа с dbf
Отправлено: pastor от Май 10, 2009, 10:24
На такую строку:  xbXBase x; ругается так: undefined reference to `xbXBase::xbXBase()'  :(

Нужно прилинковать xbase64 к твоему проекту


Название: Re: работа с dbf
Отправлено: Anarchist от Май 10, 2009, 11:02
to pastor: Огромное спасибо что ткнул носом куда надо  :).
добавил в *.pro:
LIBS += -L C:\Qt\2009.02\qt\lib -l:libxbase64.a
INCLUDEPATH += C:\Qt\2009.02\qt\include\xbase64

Всё работает


Название: Re: работа с dbf
Отправлено: vincent от Декабрь 24, 2009, 20:51
Привет всем!

Задам тут вопрос, вроде как по теме ветки будет:

кому-нибудь удалось собрать libxbase64.a на gcc 4.4.0 (тот, который сейчас идет с QT 4.6.0)?
Если удалось - поделитесь секретом ... либо библиотекой собранной :))


Название: Re: работа с dbf
Отправлено: Tonal от Декабрь 25, 2009, 08:52
Я собирал. На винде мингвой. :)
Оригинальный проект довольно давно не поддерживается, но меня некоторое количество своих патчиков там навёрнуто. :)

Могу куда-нибудь выложить исходники. :)


Название: Re: работа с dbf
Отправлено: vincent от Декабрь 25, 2009, 09:55
Я собирал. На винде мингвой. :)
....
Могу куда-нибудь выложить исходники. :)

Если они соберутся MinGW с версией gcc 4.4.0 - буду только рад, а то не хочется возвращаться к QT 4.5.3 :)


Название: Re: работа с dbf
Отправлено: Tonal от Декабрь 28, 2009, 13:21
Я собирал на официальной мингве 4.4.0
http://python.promsoft.ru/download/xbase64.zip


Название: Re: работа с dbf
Отправлено: vincent от Декабрь 28, 2009, 14:53
Я собирал на официальной мингве 4.4.0
http://python.promsoft.ru/download/xbase64.zip

Большое спасибо! Подсунул библиотеку и исходники из архива в проект - все заработало как и прежде.  :)
Но решил попробовать сам собрать из исходников - не получилось  :(, запустил команду make clean, а на выходе получил:
Код:
$ make clean
config.status: creating MakefileMakefile
make[1]: Entering directory `/c/vincent/qt/xbase64/xbase64/libtest'
Makefile:78: *** missing separator.  Stop.
make[1]: Leaving directory `/c/vincent/qt/xbase64/xbase64/libtest'
make: *** [clean-recursive] Error 1

Тупо набрал ./configure и make, тоже ошибка:
Код:
$ make
Making all in xbase64
make[1]: Entering directory `/c/vincent/qt/xbase64/xbase64/xbase64'
Makefile:95: *** missing separator.  Stop.
make[1]: Leaving directory `/c/vincent/qt/xbase64/xbase64/xbase64'
make: *** [all-recursive] Error 1

Вручную Makefil'ы не трогал - отчего он ругается на отсутствующий разделитель... понять не могу.

UPD: сначала не обратил внимание, а следовало бы, ругается make вот на такие строки:
Код:
GXXVER = gcc../../gcc-4.4.1/configure
4.4.1 <== Ошибка на этой строке

заменив конечно на:
Код:
GXXVER = gcc../../gcc-4.4.1/configure 4.4.1
ошибка исчезает, но странно - почему строки так формируются?

Не могли бы вы чистые исходники разместить (архив после make clean), попробую из них собрать  ???


Название: Re: работа с dbf
Отправлено: Tonal от Декабрь 29, 2009, 08:01
Я собирал из под msys-а - вроде без проблем. :)
Надо бы проект форкнуть, раз уж он кому-то нужен а автор его напрочь забросил.
На каникулах займусь. :)


Название: Re: работа с dbf
Отправлено: vincent от Декабрь 29, 2009, 09:31
Я собирал из под msys-а - вроде без проблем. :)
Да я тоже из под него и собирал (версия 1.0.11) - но вот как то не сработало  :-\.
Библиотеку в итоге то мне собрать удалось, правда заметил что там закоментирован кусок кода отвечающий за блокировку файла  :).

Надо бы проект форкнуть, раз уж он кому-то нужен а автор его напрочь забросил.
На каникулах займусь. :)
А это вот хорошая затея  ;)


Название: Re: работа с dbf
Отправлено: panAlexey от Декабрь 29, 2009, 12:44
Я собирал из под msys-а - вроде без проблем. :)
Надо бы проект форкнуть, раз уж он кому-то нужен а автор его напрочь забросил.
Форкни пожалуйста. Иногда очень нужно поиметь простую БД.
+ можно и SQL двиган прикрутить с пом. SQLite. Пример:
http://code.google.com/p/sqlite1c/downloads/list
работа с dbf с пом SQLite.


Название: Re: работа с dbf
Отправлено: Tonal от Январь 08, 2010, 12:49
Собрал под Kubuntu. Попутно подправил и обновил скрипты сборки. :)
Весь код в GIT-е.

Теперь несколько организационных вопросов:
1. Какой хостинг выбрать для форка
 а. SourceForge
 б. Google Code
 в. Launchpad
 г. Свой собственный. :)
 д. Какой-нибудь ещё.
2. Как грамотно оформить форк? Что куда дописать/доложить? :)


Название: Re: работа с dbf
Отправлено: lit-uriy от Январь 08, 2010, 13:02
1) Gitorius


Название: Re: работа с dbf
Отправлено: vincent от Январь 08, 2010, 18:12
Собрал под Kubuntu. Попутно подправил и обновил скрипты сборки. :)
Весь код в GIT-е.
...

Собрать под Windows получиться? :)

По вопросу:
1. SourceForge (как более привычный)


Название: Re: работа с dbf
Отправлено: Tonal от Январь 10, 2010, 15:48
http://gitorious.org/xbase64pp


Название: Re: работа с dbf
Отправлено: Пантер от Январь 10, 2010, 15:55
Если кому будет интересно, пишу сейчас свой аналог. Вот его домик http://gitorious.org/qdbfredactor. Проект представляет из себя редактор DBF файлов. Все основное лежит в классе DBFRedactor, есть модель DBFRedactorModel и прокси-модель DBFRedactorSortFilterProxyModel. Есть возможность многоколоночного фильтра и многоколоночной сортировки на уровне прокси-модели.


Название: Re: работа с dbf
Отправлено: vincent от Январь 12, 2010, 09:01
Всем привет!

По поводу xbase64 - все таки удалось собрать из родных исходников на gcc 4.4.0 (который идет в поставке с Qt SDK 4.6), отпишусь тут как это получилось - может кому поможет  :)

Ход действий:
1. скачать исходник [link (http://sourceforge.net/projects/xdb/files/Source/3.1.2/xbase64-3.1.2.tar.gz/download)]
2. пропатчить его патчем, ссылка на который здесь уже приводилась (папка с исходниками должна называться xbase64-3.1.2-orig) [link (http://www.loicp.eu/patchs/xbase64/compilation_fix.diff)]
3. в файле configure.in отредактировать 77 строчку, заменив ее с
Код
Bash
GXXVER=`${CXX} -v 2>&1 | grep version | cut -d " " -f 3 -`
 
на
Код
Bash
GXXVER=`${CXX} -v 2>&1 | grep "gcc version" | cut -d " " -f 3 -`
 
либо воспользовавшись файлом-патчем, что я уже сделал (надеюсь сформировал его правильно :) )
4. сформировать заново файл configure программой autoconf (команда в папке с исходником: autoreconf --force)
5. как всегда выполнить ./configure && make


Название: Re: работа с dbf
Отправлено: Tonal от Январь 14, 2010, 09:29
Я там ещё несколько багов правил - смотри в проекте, там полная история. :)


Название: Re: работа с dbf
Отправлено: alexey033 от Февраль 05, 2010, 16:25
Люди добрые помогите новичку, как пропатчить xbase64-3.1.2-orig  патчем compilation_fix.diff   ???


Название: Re: работа с dbf
Отправлено: vincent от Февраль 09, 2010, 12:57
Люди добрые помогите новичку, как пропатчить xbase64-3.1.2-orig  патчем compilation_fix.diff   ???

В командной строке (если под Windows - то в командной строке MSYS), в папке xbase64-3.1.2-orig (в которой уже лежит файл-патч compilation_fix.diff) выполнить команду patch:
Код
Bash
patch -p1 -i compilation_fix.diff
 

P/s для справки, ТУТ (http://www.ylsoftware.com/?action=news&na=viewfull&news=243&from=rss) можно почитать что такое патч и как его использовать :)