|
Вопрос # 2 782/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты! Как можно сделать что-бы при нажатии на фамлию в Грид1 (там хранится фамилия, имя и отчесто) в Гриде2(Зарплата) отображались данные по фамилии(стаж, оклад и т.д.)
 |
Вопрос задал: MILAN7 (статус: Посетитель)
Вопрос отправлен: 14 мая 2009, 19:40
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 19 мая 2009, 16:12; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 15 мая 2009, 08:21 [#1]:
А где хранятся все эти данные?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
MILAN7 (статус: Посетитель), 15 мая 2009, 09:59 [#2]:
В Interbase
|
|
min@y™ (статус: Доктор наук), 15 мая 2009, 10:14 [#3]:
Ну так и в чём проблема?
При клике на Грид1 берёшь из базы соответствующие даные и отображаешь в Грид2. Что вызывает затруднения?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
MILAN7 (статус: Посетитель), 15 мая 2009, 10:56 [#4]:
Попробовал так, не идёт.
procedure TForm5.DBGrid1CellClick(Column: TColumn);
begin
Query2.Active:=False;
Query2.SQL.Clear;
Query2.SQL.Add('SELECT * FROM Zarplata WHERE Familiya, Name, Father_name = "'+Query1.Fields[1].AsString+'"');
Query2.ExecSQL;
Query2.Active:=True;
end;
|
|
min@y™ (статус: Доктор наук), 15 мая 2009, 11:29 [#5]:
Ну и где в ентом событии работа с грид2?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 15 мая 2009, 11:32 [#6]:
Конечно не пойдет, запрос неверный в where части.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
MILAN7 (статус: Посетитель), 15 мая 2009, 11:40 [#7]:
А тогда, как лучше написать, подскажите
|
|
Вадим К (статус: Академик), 15 мая 2009, 11:51 [#8]:
to min@y™:
А разве не видно, где там второй грид? ) он скорее всего связан с Query2
to MILAN7
Подсказать? разве что угадать. Данные надо только по фамилии, поэтому запрос должен быть где то вида
'SELECT * FROM Zarplata WHERE Familiya = "'+Query1.Fields[1].AsString+'"'
Если конечно в Query1.Fields[1] храниться фамилия.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 15 мая 2009, 13:08 [#9]:
Цитата:
А разве не видно, где там второй грид?  ) он скорее всего связан с Query2
А я откуда это знать должен? Я ваще не знаю, какого типа компонент Grid2. Телепатией занимаюсь по-тихоньку.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ozz (статус: Посетитель), 16 мая 2009, 11:11 [#10]:
Что-то вообще не догоняю о чем вы тут, разве делается не так?:
Подключаем первый грид к базе Zarplata, в Query в свойство DataSource ставим DataSource подключенный к базе (тобишь к первому гриду), в SQL пишем, что-то типа Select * From Zarplata Where Familiya =: Familiya (главное что-бы у них типы и размеры были одинаковые).
Если же у Вас ФИО и Зарплата хранятся в разных таблицах, то разницы никакой, просто первый грид прицепляем к ФИО а в Query все без изменений, главное чтобы ключевые поля совпадали. Точно также можно и без Query обойтись, тупо два Table цепляем друг друга, задаем индексное поле и усё...
Честно скажу, с interbase не особо разбирался, но в DB2 фурычит рульно... (сильно не бейте за такую ахинею)
|
|
MILAN7 (статус: Посетитель), 19 мая 2009, 16:12 [#11]:
Спасибо Вадим К, работает. Просто фамилию неправильно написал(Familiya) в процедуре, в Columns (Family).
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|