Форум: "Базы";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
ВнизПроверка компонентов на modified Найти похожие ветки
← →
skiper (2002-12-18 23:14) [0]Подскажите, как проверить целую кучу редакторов (maskedit) на форме на признак модификации данных (например при закрытии формы). Данные компоненты размещены в разных фреймах, сведенных в общий фрейм. Я, к сожалению, пока ничего не нашел.
← →
Prooksius (2002-12-19 09:54) [1]Ты хочешь послать запрос на сервер о сохранении только измененных полей?
У полей Dataseta, которые ассоциированы с данным Edit-ом по-моему должно быть cв-во modified или что-то в этом роде.
Иначе, как вариант, можно сделать массив boolean переменных, которые будут ставиться в тру при модификации соответствующего поля (эдита),
при закрытии формы формировать запрос по массиву.
← →
Prooksius (2002-12-19 09:55) [2]У тебя maskedit не DB-Aware??
Тогда IMHO второй вариант.
← →
Delirium^.Tremens (2002-12-19 10:01) [3]Я бы объявил глобальную переменную типа boolean, в событии OnChange для одного из MaskEdit написал, что эта переменная := true; и назначил этот обработчик для всех остальных MaskEdit"ов
← →
Prooksius (2002-12-19 10:05) [4]2 Delirium^.Tremens © (19.12.02 10:01)
Тогда при изменении одного только поля получитая, что изменились все. А зачем? ИМХО, как раз такого и не надо.
← →
Delirium^.Tremens (2002-12-19 10:09) [5]2Prooksius ©>
Что-то я не вижу где он сказал, что это нужно для каждого в отдельности? Если бы это было так, то никаких сложностей бы и не возникло кроме нудного кодописания.
← →
Prooksius (2002-12-19 10:14) [6]2 Delirium^.Tremens © (19.12.02 10:09)
> как проверить целую кучу редакторов (maskedit) на форме
> на признак модификации данных
По-моему он об этом и спрашивал.
Так, автор?
← →
skiper (2002-12-21 03:36) [7]Я использовал maskedit для того, чтобы не висеть в сетке, т.к dbedit сохраняет связь с полем. Необходимо определить, была ли модификация хотя бы одного компонента, не городя огорода из кода, что-то компактное, вроде циклического запроса на on close, но что-то не приходит ничего в башку. Если да- то транзакция на модификацию записи (это уже я знаю). Если нет - просто убить форму (это тоже ясно).
← →
Andriano (2002-12-21 09:09) [8]<Не висеть в сетке> ?
Для этой цели предназначен DataSet и UpdateSQL. Именно для этого. И не надо городить огород.
← →
Sergey Masloff (2002-12-22 21:50) [9]Andriano ©
><Не висеть в сетке> ?
>Для этой цели предназначен DataSet и UpdateSQL. Именно для >этого. И не надо городить огород.
Ну сделай TDatabase.Close посмотри что получится и потом напиши чем тебе помогли ДатаСет с АпдейтСиквелем. А пока Датабейзу Close не сделали все ресурсы распределенные под соединение заняты...
skiper ©
for i:=0 to Pred(ComponentCount) do
begin
if (Components[i] is TMaskEdit) then
begin
if (Components[i] as TMaskEdit).Modified then
begin
ShowMessage("Изменения были!");
Exit; // Если изменение одного достаточное основание
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c