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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 14:38   #1
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию Динамическое добавление столбцов в динамически созданный DBGrid

Доброго времени суток.
имеется динамически созданный DBGrid, в котором отображаются данные из одной таблицы полученные запросом1. Как добавить столбцы в этот же DBGrid и внести туда значения, полученные запросом2?
Кол-во столбцов изначально определяется кол-вом параметров в sql-запросе.
Строка
Код:
 DBGrid.Columns.Add;
выводит в DBGrid один пустой столбец.
Desha вне форума Ответить с цитированием
Старый 09.12.2012, 16:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В такой постановке задача не имеет решения. Как вариант попытаться одним запросом выбрать данные из разных таблиц. Второй вариант - использовать стринггрид и ячейки ручками заполнять хоть из 100 разных запросов.

ADD

Да, можно еще вычисляемые поля 1-го DataSet-а приспособить для заполнения данными из 2-го и предусмотреть для них колонки в гриде
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.12.2012 в 16:42.
Аватар вне форума Ответить с цитированием
Старый 09.12.2012, 16:42   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как добавить столбцы в этот же DBGrid и внести туда значения, полученные запросом2?
Для чего? Уточняй, потому как от уточнения зависит ответ - вычисляемые поля или изменения структуры БД.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2012, 16:43   #4
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию

Тогда следующее.
Имеются 4 таблицы следующей структуры:
LIS (lis_id,lis_st_id...)
ST(st_id,st_s_id.st_t_id)
T(t_Id,t_name...)
S(s_id,s_Name...)
Мне надо вывести все что в lis + t_name и s_name.


lis_st_id связано с st_id;
st_s_id с s_id;
st_t_id c t_id

Последний раз редактировалось Desha; 09.12.2012 в 16:46.
Desha вне форума Ответить с цитированием
Старый 09.12.2012, 16:46   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

JOIN-ми из LIS к T и S можно добраться в запросе?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2012, 16:48   #6
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию

Цитата:
JOIN-ми из LIS к T и S можно добраться в запросе?
Нет. Связь только через ST
Desha вне форума Ответить с цитированием
Старый 09.12.2012, 17:05   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Структуру таблиц не понял, а общая идея такова (если связи позволяют)
Код:
SELECT ...
  FROM LIS
    LEFT JON ST ON ST.lis_id=LIS.lis_id  
    LEFT JON T ON T.t_id=ST.t_id  
    LEFT JON S ON S.s_id=ST.s_id
Ага, вижу в #4, осталочсь толькоправильные имена полей подставить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.12.2012 в 17:08.
Аватар вне форума Ответить с цитированием
Старый 09.12.2012, 17:06   #8
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию

Вот примерно такая связь между всем этим
надо получить всю lis + s_name+t_name
Изображения
Тип файла: jpg Безымянный.JPG (17.9 Кб, 92 просмотров)
Desha вне форума Ответить с цитированием
Старый 09.12.2012, 17:33   #9
Desha
Форумчанин
 
Аватар для Desha
 
Регистрация: 06.04.2009
Сообщений: 124
По умолчанию

Цитата:
Структура таблиц не понял, а общая идея такова
Код:

SELECT ...
FROM LIS
LEFT JON ST ON ST.lis_id=LIS.lis_id
LEFT JON T ON T.t_id=ST.t_id
LEFT JON S ON S.s_id=ST.s_id
Идею поняли. Спасибо. Работает.
Desha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскиавние формы за динамически созданный компонент MyIE Общие вопросы Delphi 1 10.10.2010 11:15
Динамически созданный обьект, процедуры heart Общие вопросы Delphi 3 09.05.2009 17:32
добавление и удаление столбцов в DBGrid по нажатию кнопки MargoNik БД в Delphi 6 27.04.2009 15:44
Динамически созданный tabSheet S@fer Общие вопросы Delphi 7 08.04.2009 12:03
Как динамически добавить Мемо на форму? Динамическое создание компонентов! werser Помощь студентам 1 14.06.2007 00:39