Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› Проблема с реиндексацией .dbf файла
Посл.ответ Сообщение

Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 13 июля 2007 14:43
· Личное сообщение · #1

Суть в следующем. Есть старая бухпрограмма БЭСТ-4, она досовская.База данных использует .dbf файлы. Максимальный размер записей в одном .dbf файле при котором корректно стоятся cdx индексы где-то около 800 000. У меня файл, где записей 961 000.Так получилось. Индекс правильно не строится и соответственно инфа в базе выдается некорректная. Никто не знает, как можно построить индексы у такого файла?




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 13 июля 2007 16:42
· Личное сообщение · #2

Если это пытаешься сделать под 2000/XP, то попробуй положи в папку Windows\System32 прилагаемый файлик и добавь в Autoexec.nt строчку lh %SystemRoot%\System32\resfree.com 4 и перезагрузись.

146d_13.07.2007_CRACKLAB.rU.tgz - Resfree.rar



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 16 июля 2007 10:45
· Личное сообщение · #3

YDS пишет:
Если это пытаешься сделать под 2000/XP, то попробуй положи в папку Windows\System32 прилагаемый файлик и добавь в Autoexec.nt строчку lh %SystemRoot%\System32\resfree.com 4 и перезагрузись.


А имеет значение, чем потом реиндексировать, т.е. какой прогой проводить реиндексацию?



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 июля 2007 11:32
· Личное сообщение · #4

Индексы то построить можно кучей прог, в т.ч. и Access'ом, вопрос в другом - если БЭСТ не поддерживает больше 800 000 записей, то и работать он с таким файлом будет скорей всего неправильно (добавлять и удалять записи тем более) , т.е. проблема видимо в БЭСТ'е а не в dbf...

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 16 июля 2007 11:40 · Поправил: dimaxmaster
· Личное сообщение · #5

Smon пишет:
Индексы то построить можно кучей прог, в т.ч. и Access'ом, вопрос в другом - если БЭСТ не поддерживает больше 800 000 записей, то и работать он с таким файлом будет скорей всего неправильно (добавлять и удалять записи тем более) , т.е. проблема видимо в БЭСТ'е а не в dbf...


БЭСТ будет работать, посоветуй какой прогой можно проиндексировать?кроме Аксесса




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 16 июля 2007 12:00
· Личное сообщение · #6

FoxPro



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 16 июля 2007 13:27
· Личное сообщение · #7

YDS пишет:
FoxPro


а какой версии, я пробую 2.5, эта версия свыше 800 000 записей не индексирует, на 5-м индексе останавливается, хотя индексов порядка 10-12



Ранг: 10.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 июля 2007 14:42 · Поправил: yergazy
· Личное сообщение · #8

У Вас 10-12 индексных файлов с расширенем ".cdx"?
Если пользуетесь Тотал Коммандером, попробуйте плагин xbaseview. Он хоть покажет типы индексов.



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 16 июля 2007 14:55
· Личное сообщение · #9

yergazy пишет:
У Вас 10-12 индексных файлов с расширенем ".cdx"?
Если пользуетесь Тотал Коммандером, попробуйте плагин xbaseview. Он хоть покажет типы индексов.


индексный файл .cdx - один, но в нем индексы содержутся разные, индекс - это формула, которая генерирует спец пометки, для ускорения работы .dbf файлов, таких формул может быть как одна, так и несколько, в данном случае у меня в файле 10-12 таких формул, я их называю индексами, возможно это звучит не очень корректно, но спецам понятно



Ранг: 24.1 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 16 июля 2007 22:03
· Личное сообщение · #10

1. Какая ОС? 98 или XP?
2. Какая версия dbf-файла (глянь чем-нибудь типа плагина lookdbf к far, хотя если в фокспро 2.5 открывается, то скорее всего нормальная версия). Какой размер dbf и cdx?
3. Попробуй запустить фокспро 2.6a - это вроде последняя версия под дос была, причем грузи не foxpro а foxprox.exe - она в защищенном режиме и больше ОЗУ увидит.
4. Ну и по порядку теги перебирай и переиндексируй (можешь между переиндексированием тегов даже выходить из фокса).



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 июля 2007 09:38
· Личное сообщение · #11

to RedAbishai

1. ХР
2. версия DBASE IV? размер dbf 650 метров, кол-во записей 970 тыс, cdx размер 122 метра
3. версии 2.6а фокспро нет, попробую в нете поискать, есть есть ссыль, плиз, запости
4. я даже знаю какой тег не индексируется, фокспро 2.5 толку не дает



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 июля 2007 11:48
· Личное сообщение · #12

попробовал я и версией фокса 2.6а, толку нет, пробовал и Аксессом, он вообще не может реиндексировать базы, кто подскажет софтину для этой цели?



Ранг: -0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 июля 2007 12:19 · Поправил: BumbIK
· Личное сообщение · #13

В FPD нужно запускать FOXPROX.EXE, а не FOXPRO.EXE. Если в архиве файл небольшой, выложи его с индексом где-нибудь.



Ранг: 10.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 июля 2007 13:20
· Личное сообщение · #14

dimaxmaster
> 2. версия DBASE IV? размер dbf 650 метров, кол-во записей 970 тыс, cdx размер 122 метра
Странно:
- индексные файлы DBASE должны иметь расширение .MDX или .NDX;
- расширение .CDX принадлежит к FoxPro и Visual FoxPro ДБФ-кам.
Может проблема в этом?
Когда в интерпретаторе FoxPro открываешь Dbase файл, FoxPro, вроде, должен был автоматом переконвертировать его в свой формат.
Скачайте wincmd.ru/download.php?id=xBaseView и запустите этот ЕХЕ на Ваш ДБФ.
Что показывется на статусной строке внизу?



Ранг: 53.8 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 июля 2007 14:45
· Личное сообщение · #15

yergazy пишет:
Скачайте wincmd.ru/download.php?id=xBaseView и запустите этот ЕХЕ на Ваш ДБФ.
Что показывется на статусной строке внизу?


при чем тут формат файла, я ж пишу, файл dbf, а индекс его cdx, размер dbf файла 650 метров, а размер индекса файл cdx 122 метра. Дело не в размере, а в количесте записей, записей 970 тыс, фокспро НЕ СОЗДАЕТ файл индекса из-за большого кол-ва записей в дбф файле, если не разбираетесь, зачем давать глупые советы

BumbIK пишет:
В FPD нужно запускать FOXPROX.EXE, а не FOXPRO.EXE. Если в архиве файл небольшой, выложи его с индексом где-нибудь.


попробую, выложить не могу, оригинально весит 650 метров, в архиве 35 метров - это много, лучше посоветуйте, чем попробовать реиндексировать, кроме фокса, поисках в гугле и на всяких софтодромах и таких самых сайтов, ничего толкового не нашел




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 17 июля 2007 15:25 · Поправил: YDS
· Личное сообщение · #16

dimaxmaster
Нет, я все таки не пойму, почему ты в FoxPro этого сделать не можешь?
По шагам:
1. Запускаешь foxprox.exe
2. В окне Command набираешь use имя_базы.dbf exclusive
3. Там же далее:
set index to имя_индекса.cdx
reindex

Все!

P.S. Тема для Оффтопика, вообще-то.



Ранг: 10.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 июля 2007 17:56
· Личное сообщение · #17

dimaxmaster

DBF-файл формата DBASE IV не может иметь индексный файл с расширением ".CDX"!
Так определено разработчиком этого формата - Борландом.
Не поленитесь и попробуйте мою крутую программу xbaseview.
Мне тоже интересно, как себя поведет мой самодельный СУБД - xBase DBF Engine.
Только осторожно! Работайте на копиях файлов.


 eXeL@B —› Программирование —› Проблема с реиндексацией .dbf файла
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати