Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.038 c
15-1160657889
oldman
2006-10-12 16:58
2006.11.05
Ну вот и все... Как дальше жить?


2-1161099536
wewill
2006-10-17 19:38
2006.11.05
Проверка числового значения


15-1161000666
clickmaker
2006-10-16 16:11
2006.11.05
Вакансии Delphi


15-1161070678
Kolan
2006-10-17 11:37
2006.11.05
Обещаный фото со свадьбы :)


2-1161362732
kulkse
2006-10-20 20:45
2006.11.05
Ошибка при запуске программы.