Текущий архив: 2006.11.05;
Скачать: CL | DM;
ВнизDBGRID и удаленные записи Найти похожие ветки
← →
LBP (2006-10-19 18:42) [0]Мастера, подскажите как научить DBGrid отображать помеченные на удаление записи в таблице Paradox ?
Заранее спасибо!
← →
Anatoly Podgoretsky © (2006-10-19 18:46) [1]Что упало, то пропало
← →
Loginov Dmitry © (2006-10-19 20:00) [2]Добавь в таблицу булево поле. Перед удалением с помощью DBGridа отмечай это поле (установкой в True, например). Удаляй помеченные записи при возникновении определенного события (например при нажатии кнопки).
← →
Leonid Troyanovsky © (2006-10-19 20:37) [3]
> Loginov Dmitry © (19.10.06 20:00) [2]
> Добавь в таблицу булево поле. Перед удалением с помощью
> DBGridа отмечай это поле (установкой в True, например).
- Куда вы меня везете?
- В морг.
- А я еще не умер!
- А мы еще не доехали.
--
Regards, LVT.
← →
LBP (2006-10-20 08:02) [4]Мне необходимо, чтобы программа показывала и ранее удаленные записи в таблице. Допустим удаленные не из моей программы. На сколько я знаю в программе DBF Viewer такая штучка есть. Как реализовать это в Delphi, подскажите плииз.
← →
Anatoly Podgoretsky © (2006-10-20 08:52) [5]Скрипач ты красное от зеленого отличаешь?
DB от DBF
← →
Elen © (2006-10-20 09:04) [6]
> Anatoly Podgoretsky
Вопрос на засыпку Знаю что FoxPro в DBF не сразу физически удаляет записи, а лишь помечает их как удаленные и там действительно есть возможность посмотреть эти записи. Вроде Paradox тоже помечает записи - значит должен быть какой то способ (команда провайдеру) показать помеченные. Так ли это?
← →
Loginov Dmitry © (2006-10-20 09:14) [7]Ну тады [1]
← →
Anatoly Podgoretsky © (2006-10-20 09:14) [8]Да xBase обладает такой уникальной способность, там не только можно посмотреть, но и восстановить уделеные записи, среди остальных рапостраненых СУБД я других таких не знаю.
А пометку делают все СУБД, некоторые еще и повторно используют пространство.
← →
Elen © (2006-10-20 09:18) [9]
> А пометку делают все СУБД
Значит я могу обратиться к провайдеру Paradox через ADOComand.ComandText. Остается только узнать команду переключающую показ удаленных. Так?
← →
MsGuns © (2006-10-20 10:46) [10]>Elen © (20.10.06 09:18) [9]
>Значит я могу обратиться к провайдеру Paradox через ADOComand.ComandText. Остается только узнать команду переключающую показ удаленных. Так?
Нет. Парадокс не возвращает удаленные записи по запросам. Можно считать, что их нет вообще.
О чем и сказано в постах Анатолия.
← →
ЮЮ © (2006-10-20 10:46) [11]Нет, не так.
Т.к. для парадокса верно "еще и повторно используют пространство". Более того некая попытка для этого делается уже при удалении записи. Т.е. даже если записи только удалять, ничего не вставляя - данные будут уже потяряны, т.к. после удаления записи оставшиеся записи блока смещаюися внутри оного. По крайней мере я это обнаружил, когда пытался восстановить случайно удаленные данные.
← →
Anatoly Podgoretsky © (2006-10-20 12:15) [12]
> Elen © (20.10.06 09:04) [6]
> Вопрос на засыпку Знаю что FoxPro в DBF не сразу физически
> удаляет записи, а лишь помечает их как удаленные и там действительно
> есть возможность посмотреть эти записи. Вроде Paradox тоже
> помечает записи - значит должен быть какой то способ (команда
> провайдеру) показать помеченные. Так ли это?
Помечают практически все СУБД, а вот показывать и восстанавливать могут только xBase системы.
Парадокс, вообще гадская вещь, если найти хакерскую программу, которая как бы "восстанавливает" удаленные записи, то свихнешься от результата, а оно тебе надо?
← →
Anatoly Podgoretsky © (2006-10-20 12:17) [13]У парадокса сложная кластерная система хранения записей, поэтому он так часто портится.
Если требуется показ/восстановление, то это должно решать дизайном системы, надо просто заложить это в архитектуру проекта. А вот например у меня практически запрещено удаление записей в базе, только после сложной процедуры, что в базу попало, то должно лежать вечно.
← →
Elen © (2006-10-20 13:00) [14]
> Anatoly Podgoretsky
Спасибо за ликбез. Я работаю всегда с FoxPro, поэтому такой проблемы как удаление записей у меня не было в принципе, поэтому и спрашиваю. Про Paradox мало знаю и не пользуюсь им.
← →
Германн © (2006-10-20 14:56) [15]
> Про Paradox мало знаю и не пользуюсь им.
Везёт же некоторым! :-)
← →
Anatoly Podgoretsky © (2006-10-20 16:14) [16]Мне повезло еще больше, я знал что Парадокс бяка, еще до программирования. Изначально это был язык программирования макросов
Mеню/два раза вправо. четыре раза вниз/F2/что то /F2/Esc
← →
From kz (2006-10-20 16:55) [17]Для DBF. Делай так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
CheckBox1: TCheckBox;
procedure CheckBox1Click(Sender: TObject);
public
procedure ShowDeleted(Table: TTable; ShowDeleted: Boolean);
end;
var
Form1: TForm1;
implementation
uses DBITYPES, DBIERRS, DBIPROCS;
{$R *.DFM}
procedure TForm1.ShowDeleted(Table: TTable; ShowDeleted: Boolean);
var
rslt: DBIResult;
szErrMsg: DBIMSG;
begin
Table.DisableControls;
try
Check(DbiSetProp(hDBIObj(Table.Handle), curSOFTDELETEON,
LongInt(ShowDeleted)));
finally
Table.EnableControls;
end;
Table.Refresh;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowDeleted(Table1, CheckBox1.Checked);
end;
end.
Страницы: 1 вся ветка
Текущий архив: 2006.11.05;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.041 c