DBF от клиппера (руский язык и индексы)

Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.

Модератор: gaidar

Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
it.egor
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 29.07.2008 (Вт) 13:51

DBF от клиппера (руский язык и индексы)

Сообщение it.egor » 29.07.2008 (Вт) 14:01

давно столкнулся с ситуацией:
есть клиперовские файлы дбф от досовской программы, я их использую для своей проги, которую сделал в ВБ6. Открыть и использовать эти файлы у меня получается только с помощью объекта DATA при выборе формата dBASE3. И все бы хорошо, если бы не пришлось обрабатывать огромные файлы (записей несколько миллионов).... Пробовал использовать ADO - не вышло... адо показывает таблицу данных без перевода данных в win-формат. КонекшонСтринги использовал разные.. но не удалось... Беда в том, что мне необходимо еще и индексы проставить этим файлам (для быстрого поиска) и импользоавть их...

ПОМОГИТЕ!!!!

прикладываю файл
Вложения
SLIMX.rar
дбф-файл в архиве
(32.63 Кб) Скачиваний: 164

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2008 (Вт) 14:08

Если используешь ADO, то советую использовать OLEDB-провайдер для FoxPro9 (он есть на сайте Microsoft), он лучше всего работает с DBF.
Но с DBF лучше работать через DAO, указывая dBase3 или dBase5.
А еще лучше написать свой класс для работы с данными и читать DBF-файлы напрямую, структура у них простая, и использование индекса не представляет большой сложности.
Что ты делаешь с этими файлами? Если просто что-то считаешь, то самодельного переходника для DBF будет достаточно. Если нужно делать выборки или статистику, то советую купить коммерческие компоненты, ориентированные на DBF (например, от CodeBase).
Lasciate ogni speranza, voi ch'entrate.

it.egor
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 29.07.2008 (Вт) 13:51

Сообщение it.egor » 29.07.2008 (Вт) 14:17

использую дбф для:
1. сбор статистики
2. поиск данных
3. редактирование

провайдер уже пробовал.... все равно открывает в дососвском формате...

ком.компоненты купить не могу, поэтому и обратился в форум.


КТО-НИБУДЬ!!! СОЗДАЙТЕ ПРОЕКТ С ИСПОЛЬЗОВАНИЕМ МОЕГО ФАЙЛА!!! с отображением его в таблице HFG (херардикал_флекс_грид) и с возможностью создать индексы.

Свою прогу я пытаюсь поднять на новй уровень уже 2 с лишним года, перерыл всю сеть, спрашивал у делфийтстов (когда хотел от безысходности перейти на дельфы, но в итоге у них та же самая проблема была) - ничто не помогло!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2008 (Вт) 14:22

Поиск вида поле=значение? Или более сложные виды поиска тоже есть?
Если первое, и покупать компоненты не хочешь, то повторю совет написать свой класс-посредник, работающий с DBF. Пишется он за пару дней, прикрутить к нему индексы и поиск — еще один день.
Стандартные провайдеры для DBF работают коряво и ничего толкового ты таким путем не достигнешь.
Lasciate ogni speranza, voi ch'entrate.

it.egor
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 29.07.2008 (Вт) 13:51

Сообщение it.egor » 29.07.2008 (Вт) 14:41

есть ссылки на готовые классы и/или примеры???

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2008 (Вт) 14:42

Раз уж ты пишешь в этом разделе, ты сам должен знать ответ.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2008 (Вт) 23:54

Проблема примитивна - поищи в интернете описание значения 29-го байта в заголовке DBF-файла. Скорей всего он неправильно установлен. Все находится очень легко - сразу поймешь в чем дело.

А FoxPro-шный провайдер действительно удобней...

P.S

Попробовал твой файлик - он вполне нормально идет:

Код: Выделить всё
Public Sub Main()
    Dim cn As New ADODB.Connection, r As New ADODB.Recordset
   
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Data Source=""" & App.Path & """"
   
    r.Open "SELECT * FROM slimx", cn, adOpenStatic, adLockReadOnly
    Do Until r.EOF
        Debug.Print r(0), r(1), r(2), r(3)
        r.MoveNext
    Loop
End Sub
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

it.egor
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 29.07.2008 (Вт) 13:51

Сообщение it.egor » 30.07.2008 (Ср) 9:40

объект не найден ядром бд jet!
какие провайдеры ты ставил?


Вернуться в Раздел для Профессионалов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList