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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2014, 12:45   #1
jaketaylor
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 19
Восклицание Организация выборки DBLookUpComboBox

В DBLookUpComboBox выводятся все таблицы из БД MS.
Как организовать, чтобы при выборе таблицы выводились поля данной таблицы в DBGrid?
jaketaylor вне форума Ответить с цитированием
Старый 22.12.2014, 13:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
все таблицы из БД MS.
"БД MS" - это имеется в виду MS SQL Server?!


добавлено через пару минут.
если я прав и речь идёт про MS SQL Server, то с sql.ru (отсюда)

можно попробовать код:
Код:
SELECT * FROM syscolumns sc
 JOIN sysobjects so ON sc.id = so.id
WHERE so.Name = 'TABLE_NAME'

Последний раз редактировалось Serge_Bliznykov; 22.12.2014 в 13:30.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.12.2014, 13:41   #3
jaketaylor
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
"БД MS" - это имеется в виду MS SQL Server?!
Верно :-)
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
можно попробовать код:
Код:
SELECT * FROM syscolumns sc
 JOIN sysobjects so ON sc.id = so.id
WHERE so.Name = 'TABLE_NAME'
Куда это вставлять? И к какому DataSource привязывать DGBrid?
На данный момент так:
e_DBLookupComboBox (ListSource = e_DataSource; ListFiled определяется на форме так
Код:
void __fastcall Teditor_db::FormCreate(TObject *Sender)
{

        editor_db_DBLookupComboBox -> KeyField = "name";
        editor_db_DBLookupComboBox -> ListField = "name";
       
}
e_DataSource (DataSet = e_ADOQuery)
e_ADOQuery (Connection = e_ADOConnection; SQL = SELECT name FROM sys.tables WHERE type_desc=N'USER_TABLE'
e_ADOConnection (соединяется с БД)
jaketaylor вне форума Ответить с цитированием
Старый 22.12.2014, 13:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

добавляйте ещё один e_ADOQueryColumns ( Connection = e_ADOConnection; SQL = <вышеуказанный>, вместо 'TABLE_NAME' используйте строковый параметр)
ещё один e_DataSourceColumns ((DataSet = e_ADOQueryColumns)
и DBGrid привязывайте к e_DataSourceColumns

на событии OnChange e_DBLookupComboBox делайте
Код:
  e_ADOQueryColumns->Close();
  e_ADOQueryColumns->Parameters->ParamByName("ptablename") = e_DBLookupComboBox.Text;
  e_ADOQueryColumns->Open();

С++ Builder не знаю, пишу ПРИМЕРНО
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.12.2014, 14:00   #5
jaketaylor
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
на событии OnChange e_DBLookupComboBox делайте
Такого события нету. Есть такие:
http://saveimg.ru/show-image.php?id=...25c11d29a8a5e1
jaketaylor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из выборки ermak0ff БД в Delphi 26 24.10.2012 21:33
Суммирование из выборки Sandman2010 Microsoft Office Excel 0 01.02.2011 07:04
Запрос выборки Asblue БД в Delphi 6 17.12.2010 17:45
Выборки из бд Lokos БД в Delphi 6 15.12.2009 15:20