Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];

Вниз

не удаляются записи из базы   Найти похожие ветки 

 
serjant   (2002-01-30 09:32) [0]

У меня есть база(DBase) в которую в процессе работы программы добавляются и удаляются записи,короче в конце работы программы база очищается.Но если посмотреть в файл,то там эти записи остаются,плиз помогите мне ЭТО побороть.Спасибо ВСЕМ.


 
Johnny Smith   (2002-01-30 10:08) [1]

Дело в том, что DBase&FoxPro не удаляют записи физически, а только помечают их как удаленные. В древних dBase-языках для этого существовала специальная команда "pack".
Бороться с эти можно:
1 Создать пустой *.dbf-файл с аналогичной структурой и другим именем.
2 При необходимости копировать его.
3 Перезаписывать в копию неудаленные записи из главного файла.
4 Удалить главный файл.
5 Переименовать копию, дав ей имя главного файла.


 
serjant   (2002-01-30 11:17) [2]

To Johnny Smith->Спасибо, и еще вопрос:может стоит перейти с DBase на другую базу, чем они вообще различаются(у кого какая скорость доступа и т.д)?


 
Johnny Smith   (2002-01-30 11:32) [3]

Ну, вообще говоря, все локальные базы - не фонтан. И по скорости, и в плане удаления строк (вообще, удалить участок из файла - задачка нетривиальная, она кстати, обсуждалась на форуме вчера или позавчера). С локалками можно работать только если база предполагается небольшого размера.
Так что если есть желание - перелезай на SQL - сервера (Interbase, MSSQL, Oracle). Уж там-то производительность - дай Боже, а возможностей... как собак :-))


 
serjant   (2002-01-30 12:26) [4]

To Johnny Smith->Понятно, а если у меня в базе около 1000 записей будет(ну ммакс 2-3тыс) то с ними через TTable нормально работать будет(в частности Table.Locate(....) для приблизительного ручного поиска будет нормально работать?).Спасибо.


 
Johnny Smith   (2002-01-30 12:56) [5]

Да, такой размер вполне по плечу DBF


 
Alex Y   (2002-01-30 13:14) [6]

Используй Access, рекомендую. У него возможностей по более будет, чем у dbf, да и таблицы там создавать легко.

Да, и производительность у него почти в два раза выше.


 
DeNNiss   (2002-01-30 15:57) [7]

uses BDE;

Так можно очистить DBF таблицу, физически удалив все записи

Table1.Close;
Table1.Exclusive:= true;
Table1.Open;

Check(DBIPackTable(Table1.DBHandle, Table1.Handle, nil, nil, true));

Table1.Close;
Table1.Exclusive := false;
Table1.Active:=true;




 
Anatoly Podgoretsky   (2002-01-31 00:18) [8]

serjant (30.01.02 09:32)

А ты не смотри, что за странно любопытство.
Мешают, упакуй.
И "короче в конце работы программы база очищается", а то у тебя какая то странная очистка получается.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
3-79293
Dup
2002-01-31 16:57
2002.02.25
lookup поле


3-79253
ТеньЛуны
2002-01-30 15:08
2002.02.25
Проблема с вычисляемыми полями


6-79412
eblade
2001-12-08 21:56
2002.02.25
TClientSocket.OnWrite


3-79300
Dmitry Alferev
2002-01-27 00:05
2002.02.25
Добавление записей в IB6


6-79411
AKA
2001-08-25 10:36
2002.02.25
Как можно из дельфи включать подключение к инету и отключать через прокси???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский