Страница 1 из 1

lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 09:03:44
rtts
Может кто нибудь дать рабочий пример обращения к dbf файлу через odbc c использованием TSQLQuery?
Или компонент аналогичный Ttable для работы с BDE. Ну установлена BDE уже на компах.

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 11:15:38
kosteek
1. Чем не устраивает Tdbf?
2. Использовать другую базу данных (FireBird, Posgres, MySQL).
3. Какая у Вас ОС, Lazarus, и FPC?

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 11:29:57
Vadim
rtts писал(а):...пример обращения к dbf файлу через odbc...

Полное извращение! :) Раньше за такие вещи немедленно исключали из пионеров. :)

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 12:44:36
rtts
Tdbf не устраивает отсутствием sql запросов. Сами базы от действующей по сей день foxpro 2.6 for DOS
OS Windows. LAZARUS 0.9.30.2RC1

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 13:00:36
Vadim
rtts писал(а):Сами базы от действующей по сей день foxpro 2.6 for DOS

Действительно, тогда TDbf не годится. Foxpro-шные индексы этой версии он не читает.
Но если данных не сильно много, то отсутствие индексов замедлит работу не сильно. Отсутствие SQL успешно эмулируется наложением фильтров на уже открытую таблицу.

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 13:16:54
rtts
Спасибо, уже что-то. Индексы не нужны, т.к все равно нет их поддержки (idx и cdx).
Конечно хотелось бы SELECT из нескольких таблиц

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 13:45:57
Vadim
В SqlDbODBC изначально встроен один существенный недостаток, который на кривой козе не объедешь - в Lazarus кодировка UTF-8, а ODBC сообщения об ошибках выдаёт в ср1251. Сами понимаете - в чём будет проблема при попытке достучаться к базе, прочесть ниразу не удасться. ;)
Так что TDbf+связанные таблицы - и вперёд... :)

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 13:55:47
rtts
СПАСИБО

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 15:09:52
sign
Что мешает вам перекинуть базы в более приличествующий вид? В MySQL, например?
Это совсем не сложно, зато получите кучу плюшек и приятностей.
Я пишу из собственного опыта.
Правда переводил не фоксовские таблицы, а парадоксовские, но суть от этого не меняется.
После чего все мои мучения разом прекратились!

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 15:45:17
Vadim
sign писал(а):Что мешает вам перекинуть базы в более приличествующий вид? В MySQL, например?

Наверное сидят на какой-то старинной программе середины 90-ых. У нас, в начале 2000-ых тоже была такая фигня - программа написана на Clipper. Что нужно - уже не делает, но ведёт основной учёт. После того, как в FoxPro делаешь из этой базы нужные выборки - навсегда портится заголовок таблицы и программа её уже не понимает. :)

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 16.04.2012 20:41:57
sobee
Если очень хочется обрабатывать фоксовские файлы в Лазаре, то загляни сюда http://devzone.advantagedatabase.com/dz ... aspx?key=1
Может поможет.
Это русская страничка
http://www.hotsoft.ru/ADS/index.htm

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 17.04.2012 04:25:01
sign
В принципе и самому запросто можно написать читалку DBF.
Я, помниться, когда-то делал такое.
Заголовок там простой, без затей.
А сети данных полно.
Вот, на вскидку - http://articles.org.ru/docum/dbf.php
Или вот - http://emanual.ru/download/1295.html
Или вот - http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM
И т.д.
Можно самому полазить по заголовку, найти отличия (может умники, какие изменили заголовок, чтоб доставлять потом).
Написать самому конвертер в текстовый файл с разделителем знаком табуляции, закачивать посредством MySQL и делай что хочешь потом с этими данными.

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 17.04.2012 11:46:28
amateur
у самого дбфники, плюс х... кто из разрабов перелезет хотя бы на sqlite :(

1. Создаем файлик dsn, через администрирование;
2. Открываем его и смотрим, там все простенько: какой драйвер, какой путь и по мелочи :)
3. Есть два варианта в ODBCConnection указываем путь к файлу dsn, или в св-во params вставляем выборочно поля из dsn (то что нужно). Тут немного экспериментов. ODBCConnection иногда ругается...
4 Самое последнее и прикольное - кодировки (по идее там дос, подключаем LConvEncoding и приводим в божеский вид).

Делал все стандартными компонентами, есть еще вариант через зеос (но его не рассматривал).

Хотя и с кодировкой особых проблем нет, если залезть в реестр и изменить кодировку на дос. Только это поищите в нете, забыл уже ключик :(. Помню что он указывается где т в Jet)

Наверное сидят на какой-то старинной программе середины 90-ых
:) а у нас самая современная прога, еще и обновляется :) плюс: токо перелезь на что нить нормальное по шапке получиш :(

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 17.04.2012 12:13:12
Vadim
amateur писал(а):а у нас самая современная прога, еще и обновляется :) плюс: токо перелезь на что нить нормальное по шапке получиш

Ужос!!! Значит и вправду скоро конец света... :)

Re: lazarus+odbc+dbf не получается

СообщениеДобавлено: 17.04.2012 16:11:05
amateur
Vadim: гдет я уже это слышал (кажись раза три на своем веку).