Главная страница
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.025 c
9-1122394516
Nemonaft
2005-07-26 20:15
2006.01.01
CD3DApplication


4-1130407361
G-h-o-s-t
2005-10-27 14:02
2006.01.01
Как сделать видимым элемент управления


3-1131601988
DimonS
2005-11-10 08:53
2006.01.01
Можно вопрос для чайников?


2-1134690413
Змей
2005-12-16 02:46
2006.01.01
окно поверх всех окон и назад


2-1134462308
Goast
2005-12-13 11:25
2006.01.01
Кто глючит я???? или Qreport????