Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-76972
dima78
2003-04-12 23:20
2003.04.24
Hint в TreeView


1-76959
Viktor_bs
2003-04-12 17:26
2003.04.24
Вопрос по написанию компонентов


3-76838
Remis
2003-04-05 00:15
2003.04.24
сортировка по национальному альфабиту


3-76825
KPY
2003-04-07 08:27
2003.04.24
Сортировка в DBGrid


4-77220
OxOTHuK
2003-02-24 22:10
2003.04.24
Запуск программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский