Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

ODBC драйвер для FoxPro2.6   Найти похожие ветки 

 
kaif ©   (2006-06-08 22:04) [0]

Есть ли волшебный ODBC-драйвер, который мог бы работать с мемо-полями и индексами FP2.6 по-человечески? Если есть, то где его взять?
Помогите, люди добрые, ссылочкой...
Извините, что не в Базах задаю вопрос.


 
Elen ©   (2006-06-13 10:12) [1]

В свое время столкнулись с проблемой работы с DBF файлами Фокса в Делфи. В Фоксе всех версий часто использовались индексы с выражениями, которые БДЕ просто не понимает. Кроме того, были проблемы и с кодовыми страницами Фокса. Пробовали ODBC, но не понравилось. Долго бились, а затем решили проблему так. В Visual Fox 6...8 создали невизуальный OCX, в который включили методы aFunc и aProc, которые выполняют ЛЮБУЮ команду/функцию Фокса. Затем на клиентской машине устанавливаем Run Time DLL Фокса (регистрируем). В Делфи формируем строку команды/функции Фокса и отправляем на выполнение в OCX. Может, такое решение слишком кардинальное, но решаются ВСЕ проблемы взаимодействия FOX+Delphi. Плюс вся мощь языка Фокса.  Интересно узнать, подходит ли такое решение тебе.


 
kaif ©   (2006-06-13 16:50) [2]

2 Elen ©   (13.06.06 10:12) [1]

 Спасибо за содержательный ответ.

 У меня задача попроще - мне нужно всего лишь закачать некоторые данные (индексы меня не волнуют) и обеспечить генерацию парочки таблиц для обмена данными с системой (там тоже индексы не требуются, только поддержка мемо-полей фокса).

 В общем мне удалось после продолжительной борьбы выяснить, что именно нужно скачать с Майкрософта, чтобы поставить некривой ODBC драйвер для фокса и OLE DB Provider для работы с ADO.
 В общем проблема решилась.
 Хотя по ходу выявилась другая проблема - разработчики в исходной базе широко использовали бинарный способ кодирования целых чисел с записью этих последовательностей байт в строковые поля в виде этаких закорюк.
 В результате ADO обрезал строки при попытке открыть такие таблицы с помощью ADOTable, так как строки в Delphi (да и вообще в Windows) имеют нулевой терминатор (байт 0), который зачастую встречался в так закодированных данных. Однако удалось найти решение, порывшись в тырнете.
 Если использовать в TADOQuery запросы вида:

select cast(<имя поля> as VarBinary(<длина>)) as <псевдоним поля>
from <таблица>


то можно избавиться от эффекта обрезания таких строк и суметь проимпортировать эти закодированные в строках цифры. При этом Delphi создает специальные компоненты полей датасета: TVarBytesField


 
Elen ©   (2006-06-15 08:34) [3]

Вообще, когда встречаются вопросы по связке Делфи-Фокс, невольно задумываешься: почему нужно программировать именно на Делфи. Если нужно сделать какую-то утилиту, не проще ли использовать именно Фокс. В этом случае, как думается, требуется слепить имеено утилиту для DBF файлов Клиппера (без использования индексов). Достаточно взять любой FoxPro 2x, скопировать файлы (даже не инсталируя!), прописать в Autoexec путь к каталогу Фокса и запускать его из любого каталога. Затем на Фоксе создать программу, используя ВСЮ мощь языка Фокса и запускать ее из bat-файла (например). Понятно, что единственным (наверное) серьезным возражением является незнание языка Фокс. Но имея 15-летний опыт работы, нужно сказать: язык Фокса во многом более естественен, чем многие другие и легче изучается. А возможности Фокса по работе с DBF-файлами (по сравнению с Делфи) просто невообразимо больше (специализация!). Это мое мнение, не более. Интересно и Ваше мнение поэтому вопросу (а вдруг ошибаюсь)


 
palva ©   (2006-06-15 08:48) [4]

Экзешник сделанный из фокса будет работать на любой машине без фокса, если вместе с ним перенести с установки одну dll размером около полутора мегабайт.


 
Elen ©   (2006-06-15 08:53) [5]


>palva

100% согласен. Но для работы утилиты на одной машине не нужно даже EXE-шника. Весь ФоксПро 2х весит что-то около 17 Мб.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
15-1150721661
Crazy monkey
2006-06-19 16:54
2006.07.16
Старая вещчица, но смешеая.


6-1141732535
AllBrain
2006-03-07 14:55
2006.07.16
Помогите The memory could not be "read".


2-1151352861
Norfolk
2006-06-27 00:14
2006.07.16
Ограничение на количество символов в TMemo и TEdit


2-1151665131
Id
2006-06-30 14:58
2006.07.16
Русские буквы в названии полей


9-1131701802
2Wish
2005-11-11 12:36
2006.07.16
Как убрать спрайт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский