Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2013, 14:33   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию ADOQuery

В общем проблема такая...
У меня есть 2-е таблицы из SQL Server.
___________________________________ ____
(Таблица 1)
id
1
2
3
4
5

(Таблица 2)
1 Иванов 12 лет
2 Петров 14 лет
3 Сидоров 22 года
4 Пупкин 8 лет
5 Кудряшкин 37 лет
___________________________________ ________
Так вот, на Form1, я вывожу данные из 1-ой таблицы в DBGrid с id.
Далее, мне нужно, что бы при выборе какого либо ID, на другой форме Form2, в DBGrid-е выводилась информация только выбранного ID.
Пример:
на Форме1 выбрали id=4, тогда на Форме2, DBGrid выдаст информацию:
(Пупкин 8 лет)
___________________________________ _________
Я только начал изучать Базы Данных, так что мне не понятно как писать код(((
Если кто может, помогите.
Janger вне форума Ответить с цитированием
Старый 07.10.2013, 15:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для этого нужно сделать связь Master - Details. Попробуй почитать о ней в интернете, забей эту фразу в Гугл. По крайней мере в учебниках по Делфи описания о ней есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.10.2013, 15:31   #3
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

А почему бы не бросить на вторую форму ADOQuery и выполнить запрос

Код:
ADOQuery1.SQL.ADD('SELECT * FROM tablename WHERE id=:pid');
ADOQuery связать с DBGrid, а в переменной id собственно передать нужный идентификатор.

Надеюсь как работать с параметризированными запросамы вы знаете
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 07.10.2013, 15:48   #4
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
А почему бы не бросить на вторую форму ADOQuery и выполнить запрос

Код:
ADOQuery1.SQL.ADD('SELECT * FROM tablename WHERE id=:pid');
ADOQuery связать с DBGrid, а в переменной id собственно передать нужный идентификатор.

Надеюсь как работать с параметризированными запросамы вы знаете
Вроде бы, со всем, я разобрался.
Вот только немного не понимаю фразы... "А почему бы не бросить на вторую форму ADOQuery".
Я сделал так:
на Form1 --> DBGrid

DataModule --> ADOConnection1 // ADOQuery1 // DataSource1 // ADOQuery2 // DataSource2

на Form3 --> DBGrid
___________________________
Аааа... Или вы имеете в виду, что надо в Объектах, на ADOQuery2, которая принадлежит Form3, в SQL, прописать ваш код?
Я всё верно понял?
Janger вне форума Ответить с цитированием
Старый 07.10.2013, 15:52   #5
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

хм.... я попробовал...
Вы наверное не это имели в виду((
Janger вне форума Ответить с цитированием
Старый 07.10.2013, 15:54   #6
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
Аааа... Или вы имеете в виду, что надо в Объектах, на ADOQuery2, которая принадлежит Form3, в SQL, прописать ваш код?
 Я всё верно понял?
Не совсем...

Запрос нужно создавать динамически, при клике по ячейке в dbgrid или в каком-то другом событии. Читайте мануалы по ADOQuery и SQL. Одними компонентами без написание кода вы не обойдётесь.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 07.10.2013, 16:05   #7
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Код:
procedure TForm3.FormActivate(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.ADD('SELECT * FROM tablename WHERE id=:pid');
ADOQuery1.Open;
end;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.



________________________
Я ещё подумал, что вот так вот получится что то...
Но Delphi выдал мне ошибку. Хотя при компиляции, ни к чему не придрался

Последний раз редактировалось Serge_Bliznykov; 07.10.2013 в 16:25.
Janger вне форума Ответить с цитированием
Старый 07.10.2013, 16:29   #8
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Цитата:
Я ещё подумал, что вот так вот получится что то...
Но Delphi выдал мне ошибку. Хотя при компиляции, ни к чему не придрался
Читай про параметризированные запросы. Я тебе дал код не полностью. На форуме принято подталкивать к решению, а не давать готовый код. Если нужно готовое - пиши в разделе Фриланс
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 07.10.2013, 16:38   #9
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Читай про параметризированные запросы. Я тебе дал код не полностью. На форуме принято подталкивать к решению, а не давать готовый код. Если нужно готовое - пиши в разделе Фриланс
Я понял.
Спасибо большое.
Пойду читать.
Janger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOQuery Alessiy БД в Delphi 4 26.04.2011 23:55
ADOQuery ара Помощь студентам 3 14.04.2011 00:00
ADOQuery ЛисЁНЫШ БД в Delphi 8 01.04.2010 13:09
AdoQuery lenuxoid БД в Delphi 6 25.03.2010 18:24
ADOQuery Только_Учусь Помощь студентам 2 16.07.2008 00:31