IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Работа с Dbf (https://www.imho.ws/showthread.php?t=64935)

Vitus.L 24.07.2004 02:18

Работа с Dbf
 
Приветствую участников форума !!!
Прошу оказать мне помощь. Ситуация следующая:
Я работаю на 1С, частенько приходится дописывать конфигурации под свои нужды. Недавно столкнулся со следующей проблемой: нужно было в открытой базе 1С (в разделенном режиме) сжать файл ???.dbf, то бишь очистить dbf`ник от записей помеченных на удаление. Отсюда вопрос - есть ли какие-нибудь решения, позволяющие сжать dbf`ник, в тот момент, когда он уже открыт на чтение/запись.
И в догонку: какие классы (объекты) в Дельфях позволяют работать с файлами ???.dbf (dBase III)

is_absent 24.07.2004 13:48

Vitus.L
TDataBase, TTable, TQuery... в общем все что есть в закладке BDE :-)
если я тебя правильно понял, то нужно примерно следующее
Код:

Table1.Close;
Table1.Exclusive:= true;
Table1.Open;
DbiPackTable(Table1.DBHandle, Table1.Handle, nil, nil, TRUE);

Но для этого нужен "эксклюзивный" доступ к табличке...

CEO 24.07.2004 14:35

Вот еще здесь посмотри:
http://www.torry.net/quicksearchd.ph...=DBF&Title=Yes

Vitus.L 25.07.2004 19:13

To ~is absent~.
Этот фрагмент мне знаком, но для него нужен как ты правильно выразился эксклюзивный доступ, чего у меня нет.
В моем случае я работаю с таблицами самой 1С и в момент удаления этих записей сама таблица уже открыта на чтение и запись.

is_absent 25.07.2004 22:19

Vitus.L,
это конечно на любителя, но не боишься нужные данные удалить? Парковать таблицу (имхо) можно только если есть один ее открытый экземпляр...
Как парковать открытую таблицу, не знаю, но сильно подозреваю, что так делать вообще нельзя.

Isalex 25.07.2004 23:48

Цитата:

Vitus.L:
как ты правильно выразился эксклюзивный доступ, чего у меня нет
А на нет и суда нет, только с эксклюзивным доступом к файлу и никак не иначе. Хотя можно скопировать неудаленные записи во внешний файл, а потом переиндексировав его подставить на место предыдущего.


Часовой пояс GMT +4, время: 17:17.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.