Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2007, 23:59   #1
Arsgun
 
Аватар для Arsgun
 
Регистрация: 25.05.2007
Сообщений: 9
По умолчанию Удаление записей

Имеется программа на Delphi, работающая с базами FoxPro
Чтобы удалить записи в таблице я пишу Table1.delete, но в данном
случае записи только помечаются к удалению. А как окончательно
удалить записи?? Заранее спасиба!!
Arsgun вне форума Ответить с цитированием
Старый 14.06.2007, 08:41   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

хм.. не сталкивался, но интуиция подсказывает вариант с commit ? либо если используются транзхакции, то тоже собственно commit
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 15.06.2007, 01:13   #3
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Честно говоря не помню, есть ли готовые к употреблению методы для этой задачи... Но в любом случае для ФИЗИЧЕСКОГО удаления данных из dbf-ок не обойтись без промежуточной таблицы, куда будут скидываться нужные записи. Одна из причин, кстати, чтобы отказаться от таких баз.
Баламут вне форума Ответить с цитированием
Старый 15.06.2007, 06:41   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
Имеется программа на Delphi, работающая с базами FoxPro
Чтобы удалить записи в таблице я пишу Table1.delete, но в данном
случае записи только помечаются к удалению. А как окончательно
удалить записи?? Заранее спасиба!!
только ручками, как сказал Баламут.

Цитата:
Одна из причин, кстати, чтобы отказаться от таких баз
А есть такие, чтоб удаляли физически сразу, и без тормозов?
zetrix вне форума Ответить с цитированием
Старый 15.06.2007, 07:06   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Согласен, нет. Но по крайней мере можно упаковать базу средствами самой СУБД.
Баламут вне форума Ответить с цитированием
Старый 15.06.2007, 08:36   #6
Мохнатик
 
Регистрация: 30.11.2006
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Arsgun Посмотреть сообщение
Имеется программа на Delphi, работающая с базами FoxPro
Чтобы удалить записи в таблице я пишу Table1.delete, но в данном
случае записи только помечаются к удалению. А как окончательно
удалить записи?? Заранее спасиба!!
Обычно команда Table1.Delete; удаляет запись из БД, проверь не находиться ли в данный момент БД в режиме вставки или поиска - иначе метод Delete вызывает метод Cancel и запись только помечается к удалению.
Мохнатик вне форума Ответить с цитированием
Старый 08.07.2007, 01:05   #7
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию Лучше поздно, чем никогда.

Код:
 
procedure TForm1.btnDeleteAllClick(Sender:TObject);
var n:longint;
begin
Table1.Last;
for n:=table1.recordcount downto 1 do
Table1.delete;
end;
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 09.07.2007, 11:56   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

В dbf-файлах, действительно, файлы только помечаются на удаление. Физическое удаление происходит при упаковке таблицы
Код:
uses  BDE;  
function PackTable(Table: TTable): Boolean;  
var  hDB: HDBIDB;
begin
  with Table do begin
      Close;
      Exclusive := True;
      Open;
      hDB := DBHandle;
      DbiPackTable(hDB,  Handle, nil,  nil, True);
      Result := True;
      Close;
      Exclusive := False;
      Active := True;
    end;
end;
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одновременное удаление записей в разных таблицах Lkhasa БД в Delphi 9 16.12.2010 13:21
Удаление повторяющихся записей gavrylyuk Microsoft Office Excel 3 28.06.2008 08:10
Удаление записей Blackmore БД в Delphi 2 26.05.2008 08:18
Удаление, обновление записей из MySQL таблицы xDjarx БД в Delphi 2 14.05.2008 13:36
Добавление и удаление записей в Listview Scorpeon Компоненты Delphi 0 08.06.2007 23:09