Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизПочему не обновляется ДБЕдит? Найти похожие ветки
← →
off (2003-04-07 18:47) [0]Доброго времени суток! Есть две таблицы в одной допустим пользователи в другой закрепленные за ними объекты. В SelectSQL второй таблицы пишем:
select * from OBJCTS
where USERID=?USERID
Таким образом при перемщении по ДБГриду привязанному к первой таблице во втором отображаются только те объекты, которые относятся к данному пользователю. Теперь к записи соответствующей допустим тому же USERID прилепим ДБЕдит. А тепрь самое главное при "путешествии" по первому ДБГриду, во втором значения соответственно обновляются, а вот противный ДБЕдит не обновляется. Как лечить?
← →
ЮЮ (2003-04-08 03:48) [1]противный ДБЕдит привязать к тому же DataSourse, что и Grid :-)
← →
AlexSV (2003-04-08 10:47) [2]> off ©
А D6_upd1 установлен?
← →
off (2003-04-08 11:20) [3]> AlexSV Установлен только стандартный пакет т.е., что на компашке было то и поставил.
← →
Соловьев (2003-04-08 11:42) [4]на какое событие повешено обновление?
И
> ЮЮ © (08.04.03 03:48)
точно сделал?
← →
Жук (2003-04-08 11:49) [5]При чём здесь обновление ? Если грид и едит привязаны к одному соурсу, то при перемещении по гриду, в едите текущая запись должна показываться автоматом.
← →
AlexSV (2003-04-08 11:51) [6]> off © (08.04.03 11:20)
Тогда тебе прямая дорога - установи D6_upd1.
Просто в D5 и D6 (про D7 не знаю) внесен глюк в TFieldDataLink, который не корректно обновляет DBAware компоненты его использующие. Проверить это просто: при переходе в наборе данных на другую запись значение в DBEdit (например) не обновиться, пока этот DBEdit не получит фокус ввода. Если это так, то устанавливай upd1, или исправляй TFieldDataLink (из DBCtrls).
← →
off (2003-04-08 12:03) [7]
> ЮЮ © (08.04.03 03:48)
> противный ДБЕдит привязать к тому же DataSourse, что и Grid
> :-)
ДБЕдит уже привязан. И впринципе все было бы нормально если бы не приходилось для обновления второго ДБЕдита переходить на второй ДБГрид привязанный ко второму датасорсу.
Теперь если мы кликнем по второму ДБГриду, допустим, на вторую запись, то запись в ДБЕдите поменяется на нужную. А вот теперь интересный момент в первом ДБГриде перейдем на следующую запись. Данные во втором ДБГриде соответственно изменятся, а вот значение в ДБЕдите останется прежним. ПОЧЕМУ?
← →
off (2003-04-08 12:05) [8]
> AlexSV ©
> устанавливай upd1
А где его взять?
← →
Соловьев (2003-04-08 12:20) [9]какое событие обрабатываешь?
← →
off (2003-04-08 12:22) [10]
> AlexSV ©
> исправляй TFieldDataLink (из DBCtrls).
Где исправить я понял, но боюсь самому мне не справиться. Может кто подскажет где именно подкорретировать, а то я сам напортачу.
← →
off (2003-04-08 12:26) [11]
> Соловьев ©
Да так чтоб самому прописать обработку события я не пробовал. Хотя написал ДатаСет2.рефрешь и привязал к батону, так при нажатии на батон все становиться на свои места.
← →
off (2003-04-08 12:38) [12]Все уснули что-ли? Господин Соловьев?
← →
Соловьев (2003-04-08 12:42) [13]
> Да так чтоб самому прописать обработку события я не пробовал.
>
попробуй у первого Query сделать обработку AfterScroll:
with Query2 do
begin
Close;
ParamByName("USERID
").AsInteger := Query1.FieldByName("USERID
").AsInteger;
if not Prepared then Prepare;
Open;
end;
← →
AlexSV (2003-04-08 12:55) [14]> off © (08.04.03 12:22)
Реализация после update:
procedure TFieldDataLink.UpdateField;
begin
if Active and (FFieldName <> "") then
begin
FField := nil;
if Assigned(FControl) then
SetField(GetFieldProperty(DataSource.DataSet, FControl, FFieldName)) else
SetField(DataSource.DataSet.FieldByName(FFieldName));
end else
SetField(nil);
end;
Перенеси в проект DBCtrls и замени TFieldDataLink.UpdateField приведенным кодом.
← →
off (2003-04-08 13:02) [15]
> Соловьев ©
Я ж не через IBQuery работаю, а через IBDataSet просто в SelectSQL пишуselect * from OBJCTS
where USERID=?USERID
А если к AfterScroll привязывать так он (ДБЕдит) и так после скролинга по второму ДБГриду все правильно отображает.
← →
Соловьев (2003-04-08 13:08) [16]в IBDataset можно к параметру обращятся в SelectSQL так как в IBQuery...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c