Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TDBGrid, Отобразить поле из другой таблицы 
V
    Опции темы
pavelv
Дата 17.7.2006, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



У меня есть две таблицы на InterBase. В одной помимо кучи инфы хранятся номера, информация о которых занесена в другую таблицу - справочник.
Тоесть к примеру Table1:
name - varchar(25)
num - int
Table2:
info - varchar(25)
number - int

Я хочу в гриде отобразить информацию из 1ой таблицы, но вместо num показать info из таблицы два, при условии что num совпал с number. Не могу найти куда вписать такой sql запрос, чтобы всё отображалось?

P.S> Надеюсь в нужный раздел написал, а то вроде в оба подходит. 
PM MAIL   Вверх
Ramin
Дата 17.7.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

Репутация: нет
Всего: нет



Цитата

Не могу найти куда вписать такой sql запрос, чтобы всё отображалось


как это где?
DataSet.SQL.Text:='// сюда'; 

воопшето компоненты доступа на БД какие? 
PM MAIL WWW ICQ   Вверх
ТоляМБА
Дата 17.7.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Код

Select Table1.Name, Table2.Info
From table1
Inner join table2
on table1.num=table2.number
 
PM   Вверх
pavelv
Дата 17.7.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



дане sql запрос как написать я понимаю.
Ramin поподробней можно.
У меня DBGrid1:TDBGrid
У него в датасурс выбрана table1. И значит мне доступна инфа только из table1, как мне завести колонку в этом DbGrid1, чтобы там отобразилась инфа из table2 учитывая вышесказанные условия. 

P.S> Толи я тормоз, но чота dataset(я TibQuery пользуюсь) тут непричем. Ты мне сказал компонент для выполнения sql запроса, но как этот запрос к гриду привязать?  

Это сообщение отредактировал(а) pavelv - 17.7.2006, 10:33
PM MAIL   Вверх
Ramin
Дата 17.7.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

Репутация: нет
Всего: нет



Цитата(pavelv @ 17.7.2006,  10:32)
дане sql запрос как написать я понимаю.
Ramin поподробней можно.
У меня DBGrid1:TDBGrid
У него в датасурс выбрана table1. И значит мне доступна инфа только из table1, как мне завести колонку в этом DbGrid1, чтобы там отобразилась инфа из table2 учитывая вышесказанные условия. 

P.S> Толи я тормоз, но чота dataset(я TibQuery пользуюсь) тут непричем. Ты мне сказал компонент для выполнения sql запроса, но как этот запрос к гриду привязать?

да вам ешё книжки почитать нужно! для этого ТIBТабле вам не поможет нужно исползывать TIBQuery!

TibQuery->TDataSource->TDBGrid...

Код

dbgrid1.datasource.dataset.close;
 dbgrid1.datasource.dataset.sql.clear;
 dbgrid1.datasource.dataset.sql.add('Select Table1.Name, Table2.Info');
 dbgrid1.datasource.dataset.sql.add('From table1 Inner join table2');
 dbgrid1.datasource.dataset.sql.add('on table1.num=table2.number');
dbgrid1.datasource.dataset.open;


 
PM MAIL WWW ICQ   Вверх
pavelv
Дата 17.7.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Если честно я просто не шипко ориентируюсь в этих компонентах для БД. Но в TIBTable видно какие-то поля MasterSource, KeyFields....в общем есть подозрение, что через него тоже можно выудить поле из другой таблицы. Заморачиваться не стал, сейчас делаю через TIBQuery и новый DataSource. 
Ramin спасибо конечно за помощь....видимо я плохо вопрос сформулировал, хотелось конечно без новых DataSource и прочей лабуды ввести sql запрос непосредственно в Grid...как я понял такого сделать нельзя. 
PM MAIL   Вверх
SergeBS
Дата 17.7.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



pavelv
Fields Editor: New Field -> назови например numinfo, type=string, size = 25 - как у info, Field type = lookup, 
Dataset = кто к table2 подключен.
keyfields =  num (table1) 
lookup keys = number (table2)
Result Field = info (table2)
Все. Dublclick на гриде, это поле отражающем(таблицу 1) - выкатит (по умолчанию) - кнопку-треугольник, по кнопке - список таблицы 2(info)
Это если редактировать надо. А если просто отображать - запрос как у ТоляМБА-IBQuery-datasource-dbgrid. 
 
PM MAIL   Вверх
Mu57Di3
Дата 18.7.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.11.2005
Где: Калуга

Репутация: нет
Всего: нет



Предыдущий пост верен но вот еще вариант SQL запрос
Код

select t1.name, t2.info from Table1 t1, Table2 t2
where t1.num = t2.number
group by t1.name, t2.info

Закидывай этот запрос в IBQuery и подсоединяй его к своему набору данных. Должон сделать все что требуется. 
PM MAIL ICQ   Вверх
pavelv
Дата 18.7.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Всем спасибо сделал через TIBQuery. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0761 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.