Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Таблицы, файлы и TClientDataSet   Найти похожие ветки 

 
Canvas   (2005-11-10 21:34) [0]

Вопрос по TClientDataSet. Созаю с его помощью таблицы и сохраняю в файлах
не использую ни провайдеров ни агрегатов вообщес только данные
в табличной форме собственно многово мне от него (TClientDataSet)
не надо то то есть устраивает на 98%. Собственно вопрос в 2%
Есть таблица, имеет орграниенное кол-во записей, кол-во может менятся но
редко. В ней хранится список файло и пути кним. так вот при выборе из этой таблицы файла - открывается тот файл и в его записи в таблице
вполе "дата открытия" заносится тек. дата. Так вот при каждом изменении
размер файла с таблицей увеличивается (в нем сохраняется лог изменений,
удалений и т.д и т.п.). Вопрос можно ли узнать из ето лога количество
изменений, удалений... и у каких полей они были.И почему
DataSet.ChangeCount показывает <= DataSet.RecordCount. Например есть четыре записи и если четыре раза изменить значения то ChangeCount все время
будет показывать 4 в то время размер файла с этими четырьмя записями все
время увеличивается при изменениях. И как правильно очищать этот лог
Я делаю так DAtaSet.MergeChangeLog; DataSet.SaveFile; Правильно ли это?


 
аматор ©   (2005-11-10 21:55) [1]

Привет.
У этого компонента есть св-во Delta - оно и хранит изменения в таблице.
Но для подробного изучения краше открыть книгу...


 
Canvas   (2005-11-11 03:16) [2]


> У этого компонента есть св-во Delta -

И как бы узнать про эту Delt"у. Книги нет. в Helpe ничего непонял


 
Desdechado ©   (2005-11-11 10:57) [3]

ChangeCount - это количество измененных записей за последний сеанс


 
аматор ©   (2005-11-12 15:02) [4]

так увидеть
if CDS1.ChangeCount > 0 then begin
CDS2.Data := CDS1.Delta;
CDS.Open;
end;
а так, понять
type TUpdateStatus = (usUnmodofied, usModified, usInserted, usDeleted)

procedure TForm1.ClientDataSet1CalcFields(DataSet : TDataSet);
begin
ClientDataSet1Status.AsString := GetEnumName(TypeInfo(TUpdateStatus).
integer(ClientDataSet1.UpdateStatus));
end

(пример из книги, сам проверял: работает)
но краше книгу найти, или с инета скачать о работе с базами.

А в примере с EHLib  есть ещё краше пример (там сетка изиеняет цвет)



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

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
14-1134112577
begin...end
2005-12-09 10:16
2006.01.01
С Днём рождения! 9 декабря


3-1131603472
db_noob
2005-11-10 09:17
2006.01.01
Добавление поля в ADOTable


11-1113677326
thaddy
2005-04-16 22:48
2006.01.01
D2005


2-1134507375
drink
2005-12-13 23:56
2006.01.01
Путь к файлу в TOpenDialog


2-1134712505
dabreezy
2005-12-16 08:55
2006.01.01
Stack overflow