Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Delphi 7 и FoxPro 8


Автор: BDmV 30.5.2005, 11:53
Существуют ли компоненты Delphi для работы с FoxPro 8?

И как вообще получить доступ к данным Fox'а? (кроме как из самого Fox'а или Fox'овой проги) smile

ЗЫ. BDE и ODBC на эти таблицы матерятся, а Fox без проблем проглатывает smile

Автор: Cashey 15.6.2005, 22:06
Выставь настройки BDE, работает без проблем. Только там еще и настройки компонента TTable и TGrid надо выставить соответсвующие.
для более подробного ответа опиши проблему подробней, как именоо ругается

Автор: BDmV 21.6.2005, 11:54
1. Если я пытаюсь открыть таблицу через BDE (т.е. компонентом Query) то выдаётся сообщение "Corrupt table/Index header"
2. При открытии через MSAccess используя стандартный ODBCшный драйвер (их там штуки 4) появляется "ODBC - ошибка вызова [Microsoft][Диспетчер драйверов ODBC] Драйвер не поддерживает данной функции (#0)"
3. При доступе через компонент ADOConnection, если конектится к .dbc (Provider=VFPOLEDB.1;Data Source=D:\bud_2.5\dbc2005\budget.dbc;Password="";Collating Sequence=MACHINE) то появляется "Test connection failed because of an error in initializing provider. Internal consistency error", а если к .dbf (Provider=VFPOLEDB.1;Data Source=D:\bud_2.5\dbc2005;Password="";Collating Sequence=MACHINE) то "Feature is not available"

Автор: mspuz 30.6.2005, 14:50
BDmV
1. У тебя к таблице присоединен индексный файл. Убей его открой таблицу в фоксе и ответь "Игнор" на вопрос о исчезновении индекса. Все готово.
В остальных случаях - кодировка твоей таблицы виндосовская(1251), если ты откроешь таблицу в фоксе и напишеш - copy to 'название новой таблицы' fox2x as 866, то получишь новую таблицу с досовской кодировкой(866), которую с удовольствием понимает и ODBC и ADO. А вообще, чтобы не париться с кодировками есть компонент tdbf (не стандартный, его придется поискать), так ему плевать вообще на все, главное чтобы .dbf было

Автор: BDmV 30.6.2005, 21:31
Я почти разобрался со "своей" БД. Вощем кодировка там нормальная, а трабла во встроенных процедурах. smile

Как только я через Фокс удаляб в .dbc все встроенные проседуры, так сразу ADOTable черех Фоксовый провайдер (скаченный сегодня) начинает открывать всё. (BDE всё равно матерится на индекс smile )

ЗЫ. Вощем, если нет возможности конвертить данные или обращаться к ним напрямую, то буду, при нажатии на кнопку "Обновить", копировать необходимые таблицы в каталог с "пустой" .dbc и от туда приводить всё в удобочитаемый вид... smile

Автор: Vlad04 30.10.2005, 06:52
Делфи с библиотекой ADS http://www.advantagedatabase.com/ADS/default.htm нормально
работает с таблицами FOxа/ проверял с free таблицами/

Автор: BDmV 30.10.2005, 13:11
Это всё хорошо, конечно, но 30дней меня не устраивает.. smile

Автор: sexton 7.11.2005, 13:19
Цитата(BDmV @ 30.10.2005, 13:11)
Это всё хорошо, конечно, но 30дней меня не устраивает.. smile

Неправда, Dataset Descendant не ограничен по времени использования. А вот поковыряться в нем придется... Одно могу посоветовать - если возьмешься за ADS, читай активно его хелп - там все что надо есть.

Автор: Cashey 7.11.2005, 22:30
Что за сложности? Обычный Tdataset с фоксовскими таблицами работает совершенно свободно

Автор: BDmV 10.11.2005, 00:08
Цитата(Cashey @ 7.11.2005, 22:30)
Что за сложности? Обычный Tdataset с фоксовскими таблицами работает совершенно свободно


Ну не знаю, на сколько он обычный, а то что с Fox'овскими таблицами он совершенно свободно не работает, также как и BDE и ADO, это совершенно точно...
Он умеет видеть стандартные dbf файлы и не более того... smile

У меня же база со встроенными процедурами и получить доступ к ней, кроме как из самого Foxa, я могу через ADO (Fox'ового провайдера поставляемого самим Фоксом) только после того как из dbc'эшки, из процедур повычишу половину команд, таких как запись в текстовый файл, установка формата даты и ещё непомню чего (проще конечно совсем убить все процедуру).
Меня это не устраивает, так как приходится из базы копировать 20 файлов во временный каталог, затем туда копировать "безпроцедурную" dbc'шку и уж потом конектится ко всему этому через ADO. Геморно и нет реалтайма. smile

ЗЫ. ADS выдает мне точно такиеже ошибки что и BDE, т.е. "Неверный формат файла". smile

Автор: VVSF 16.11.2005, 21:08
Цитата(BDmV @ 21.6.2005, 11:54)
Provider=VFPOLEDB.1;Data Source=D:\bud_2.5\dbc2005\budget.dbc;Password="";Collating Sequence=MACHINE) то появляется "Test connection failed because of an error in initializing provider. Internal consistency error"

Цитата(BDmV @ 21.6.2005, 11:54)
Provider=VFPOLEDB.1;Data Source=D:\bud_2.5\dbc2005;Password="";Collating Sequence=MACHINE

это на каждой машине свое. не имело смысла приводить..
из выше перечитанного вывод таков - либо Фокс, либо Делфу переставляй, а точнее у делфы - ОДБЦ, его можно и отдельно переставить..
А я сколько помню свои проги с Фокс-базами - так все работает без проблем. Не понимаю в чем конкретно у тебя дело..
Единственный фикус-пикус - если с БДЕ, то паковка таблиц идет как dbiPacktable, а АДО - создавал программ-файл в фоксе, в файле этом код паковки всех таблиц.
И еще - попробуй АДО через драйвер dBase включать, а не через фоксовский.
В общем, по-пробуй и то, и это то же можно..
//а через БДЕ не пробывал, т.к. БДЕ я не пользую ВООБЩЕ. smile

Автор: Cashey 16.11.2005, 23:23
Цитата(VVSF @ 16.11.2005, 21:08)
из выше перечитанного вывод таков - либо Фокс, либо Делфу переставляй, а точнее у делфы - ОДБЦ, его можно и отдельно переставить..

не думаю, возможно BDmV прав, я не проверял, но вполне возможно, что драйвера не будут работать с хранимыми процедурами и треггерами фокса

Автор: VVSF 18.11.2005, 08:24
Цитата(BDmV @ 10.11.2005, 00:08)
У меня же база со встроенными процедурами


Цитата(BDmV @ 10.11.2005, 00:08)
после того как из dbc'эшки, из процедур повычишу половину команд, таких как запись в текстовый файл, установка формата даты


Может все процедуры выложить в программ-файл??Если это тебе подойдет, то эти программ-файлы можно запускать из дельфи..

Цитата(BDmV @ 10.11.2005, 00:08)
проще конечно совсем убить все процедуру

Может и не дойдет до суицида.. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)