Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удалить индекс из таблицы DBF [D7, WinXP]


Дима80 ©   (2006-06-21 10:34:00) 

Добрый день! Появилось необходимость проммно удалить индекс таблицы DBF. Подскажите пожалуйста, как это сделать? Заранее блогодарю.


Jakudza   (2006-06-21 11:23:00) [1]

var f: TfileStream;
   s: string;
   b: byte;
begin
  b:=0;
  s:='FILENAME.dbf';
  f:= TfileStream.Create(s, fmOpenReadWrite);
  f.Seek(28, soFromBeginning);//обнуляем индекс(29 байт обнуляет кодовую страницу)
  f.Write(b, sizeof(b));
  f.Destroy;

Пользуйся...


Jeer   (2006-06-21 10:59:00) [2]

Дима80   (21.06.06 10:34)

Байт по смещению 28 перезаписать нулем.


Дима80   (2006-06-21 10:50:00) [3]

2 palva
Дело в том, что если удалить CDX файл, он будит открываться в DBF редакторах путем "Ignore" на вопрос где файл? Но не будит открываться из программ, допустим написанных в delphi. Судь задачи такова:
Работать из программы с проиндексированным файлом, а потом программно отправить этот файл в организацию где другая программа будит ее импортировать, я пробовал отправить просто DBF без индекса у них
идет сбой:( Нужно снять индекс как ни будь перед отправкой.


palva   (2006-06-21 10:42:00) [4]

Если у вас файл с расширением dbf, то он сам индекс не содержит. Индекс лежит в отдельном файле, а его можно просто удалить. Расширение у файла с индексом зависит от того, каким средством вы его создавали. Кроме того, если вы пользуетесь SQL, то можете выдать команду DROP INDEX ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо