![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGRID и удаленные записи [D7, XP]
LBP © (2006-10-19 18:42:00)Мастера, подскажите как научить DBGrid отображать помеченные на удаление записи в таблице Paradox ?
Заранее спасибо!
From kz (2006-10-20 16:55:00) [1]Для 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.
Anatoly Podgoretsky (2006-10-20 16:14:00) [2]Мне повезло еще больше, я знал что Парадокс бяка, еще до программирования. Изначально это был язык программирования макросов
Mеню/два раза вправо. четыре раза вниз/F2/что то /F2/Esc
Германн (2006-10-20 14:56:00) [3]
> Про Paradox мало знаю и не пользуюсь им.
Везёт же некоторым! :-)
Elen (2006-10-20 13:00:00) [4]
> Anatoly Podgoretsky
Спасибо за ликбез. Я работаю всегда с FoxPro, поэтому такой проблемы как удаление записей у меня не было в принципе, поэтому и спрашиваю. Про Paradox мало знаю и не пользуюсь им.
Anatoly Podgoretsky (2006-10-20 12:17:00) [5]У парадокса сложная кластерная система хранения записей, поэтому он так часто портится.
Если требуется показ/восстановление, то это должно решать дизайном системы, надо просто заложить это в архитектуру проекта. А вот например у меня практически запрещено удаление записей в базе, только после сложной процедуры, что в базу попало, то должно лежать вечно.
Anatoly Podgoretsky (2006-10-20 12:15:00) [6]
> Elen © (20.10.06 09:04) [6]
> Вопрос на засыпку Знаю что FoxPro в DBF не сразу физически
> удаляет записи, а лишь помечает их как удаленные и там действительно
> есть возможность посмотреть эти записи. Вроде Paradox тоже
> помечает записи - значит должен быть какой то способ (команда
> провайдеру) показать помеченные. Так ли это?
Помечают практически все СУБД, а вот показывать и восстанавливать могут только xBase системы.
Парадокс, вообще гадская вещь, если найти хакерскую программу, которая как бы "восстанавливает" удаленные записи, то свихнешься от результата, а оно тебе надо?
ЮЮ (2006-10-20 10:46:00) [7]Нет, не так.
Т.к. для парадокса верно "еще и повторно используют пространство". Более того некая попытка для этого делается уже при удалении записи. Т.е. даже если записи только удалять, ничего не вставляя - данные будут уже потяряны, т.к. после удаления записи оставшиеся записи блока смещаюися внутри оного. По крайней мере я это обнаружил, когда пытался восстановить случайно удаленные данные.
MsGuns (2006-10-20 10:46:00) [8]>Elen © (20.10.06 09:18) [9]
>Значит я могу обратиться к провайдеру Paradox через ADOComand.ComandText. Остается только узнать команду переключающую показ удаленных. Так?
Нет. Парадокс не возвращает удаленные записи по запросам. Можно считать, что их нет вообще.
О чем и сказано в постах Анатолия.
Elen (2006-10-20 09:18:00) [9]
> А пометку делают все СУБД
Значит я могу обратиться к провайдеру Paradox через ADOComand.ComandText. Остается только узнать команду переключающую показ удаленных. Так?
Anatoly Podgoretsky (2006-10-20 09:14:00) [10]Да xBase обладает такой уникальной способность, там не только можно посмотреть, но и восстановить уделеные записи, среди остальных рапостраненых СУБД я других таких не знаю.
А пометку делают все СУБД, некоторые еще и повторно используют пространство.
Loginov Dmitry (2006-10-20 09:14:00) [11]Ну тады [1]
Elen (2006-10-20 09:04:00) [12]
> Anatoly Podgoretsky
Вопрос на засыпку Знаю что FoxPro в DBF не сразу физически удаляет записи, а лишь помечает их как удаленные и там действительно есть возможность посмотреть эти записи. Вроде Paradox тоже помечает записи - значит должен быть какой то способ (команда провайдеру) показать помеченные. Так ли это?
Anatoly Podgoretsky (2006-10-20 08:52:00) [13]Скрипач ты красное от зеленого отличаешь?
DB от DBF
LBP (2006-10-20 08:02:00) [14]Мне необходимо, чтобы программа показывала и ранее удаленные записи в таблице. Допустим удаленные не из моей программы. На сколько я знаю в программе DBF Viewer такая штучка есть. Как реализовать это в Delphi, подскажите плииз.
Leonid Troyanovsky (2006-10-19 20:37:00) [15]
> Loginov Dmitry © (19.10.06 20:00) [2]
> Добавь в таблицу булево поле. Перед удалением с помощью
> DBGridа отмечай это поле (установкой в True, например).
- Куда вы меня везете?
- В морг.
- А я еще не умер!
- А мы еще не доехали.
--
Regards, LVT.
Loginov Dmitry (2006-10-19 20:00:00) [16]Добавь в таблицу булево поле. Перед удалением с помощью DBGridа отмечай это поле (установкой в True, например). Удаляй помеченные записи при возникновении определенного события (например при нажатии кнопки).
Anatoly Podgoretsky (2006-10-19 18:46:00) [17]Что упало, то пропало