Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизКакое событие совершает DBGrid (EhDBGrid) после перехода Найти похожие ветки
← →
Layner (2003-10-31 11:03) [0]от редактированной записи на другую строку? Мне как раз в этот момент надо самому UPDATE`ить запись, "руками", а не успеваю, выскакивает ошибка в несоответствии типов (что и верно, в PicList отображаю текст, а в табл. нужно вставлять ID, который я и вычисляю)...
Заранее спасибо.
← →
Vlad (2003-10-31 11:06) [1]DataSet.BeforePost
← →
Layner (2003-10-31 11:09) [2]Vlad © (31.10.03 11:06)
СПАСИБО!!! Я к гриду привязался :)
← →
BrainStorm (2003-10-31 11:11) [3]DataSet.BeforeScroll
← →
chtr (2003-10-31 11:12) [4]AfterScroll :))
← →
Zacho (2003-10-31 11:14) [5]Еще добавлю:
1.В TDBGridEh кроме PickList есть еще и KeyList, возможно нужные ID тебе просто достаточно прописать в KeyList
2. Сильно подозреваю, что на самом деле тебе нужно создать lookup поле в DataSet"е.
← →
BrainStorm (2003-10-31 11:14) [6]After уже будет совсем другая ист... активная запись
← →
chtr (2003-10-31 11:17) [7]sorry не въехал, шел от вопроса:
Какое событие совершает DBGrid (EhDBGrid) после перехода
← →
Layner (2003-10-31 11:33) [8]Zacho © (31.10.03 11:14)
Это мне как раз и требовалось!!!
Подскажи, пожалуйста, как в BeforePost подменить значение ячейки посылаемое в БД по умолчанию - что ведет к ошибке, на KeyList??
← →
Layner (2003-10-31 11:39) [9]Иначе в BeforePost в БД посылается текстовое поле PickList, а надо, чтобы в БД ложилось значение KeyList.
← →
chtr (2003-10-31 11:39) [10]tdataset.fieldbyname(fieldname):=value;
← →
Layner (2003-10-31 11:46) [11]
procedure Tmf.gCellClick(Column: TColumnEh);
var
i:integer;
begin
Column.PickList.Clear;
case g.SelectedIndex of
6:
begin
q2.SQL.Clear;
q2.SQL.Add("select rowid, name from test");
q2.Active := true;
for i:=0 to q2.Recordset.RecordCount-1 do
begin
Column.PickList.Add(q2.FieldValues["name"]);
Column.KeyList.Add(q2.FieldValues["name"]);
q2.RecNo := q2.RecNo+1;
end;
q2.Active := False;
end;
end;
end;
procedure Tmf.q1BeforePost(DataSet: TDataSet);
begin
q1.FieldByName("rod_id"):= //сюда "лезут" данные из PickList, а как KeyList занести?
end;
← →
Zacho (2003-10-31 11:50) [12]
> Layner © (31.10.03 11:33) [8]
Если используешь PickList совместно с KeyList, то ничего в BeforePost подменять не надо, это сделает сам DBGridEh.
← →
Zacho (2003-10-31 11:54) [13]
> Layner © (31.10.03 11:46) [11]
О-ооо ! Выкинь быстро все это, и создай lookup-поле в датасете.
> Column.PickList.Add(q2.FieldValues["name"]);
> Column.KeyList.Add(q2.FieldValues["name"]);
И нафига заполнять KeyList такими же значениями, как и в PickList ? Суть в чем: при просмотре/редактировании берется строка из PickList, а в датасет заносится соответствующая ей строка из KeyList.
← →
Layner (2003-10-31 11:56) [14]Zacho © (31.10.03 11:50)
DBGridEh сам вот не хочет менять :(
Извиняюсь за назойливость, можно я скину по почте свой пример(D7+Eh)?
Проанализирую, в чем тут дело, ну все переделал, не помогает :( :( :( :( :(
← →
Layner (2003-10-31 11:57) [15]Zacho © (31.10.03 11:54)
Сейчас исправлю, последний ответ не увидел, благодарю, сейчас напишу.
← →
Zacho (2003-10-31 11:59) [16]
> Layner © (31.10.03 11:57) [15]
И забудь пока про PickList и KeyList. Твоя задача решается созданием lookup поля в q1
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c