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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 08:28   #1
Cabyrc
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 17
По умолчанию Могу ли я извлечь данные, из БД не зная напрямую название имеющейся в ней таблицы.

БД подсоединяется путем выбора ее из диалогового окна и имя таблиц различно. В компоненте ADOTable имеется свойство TableName его необходимо обязательно заполнить, чтоб в дальнейшем вывести все данные в DBGrid. При использовании ADOQuery при создании SQL запроса также необходимо указать имя таблицы. Каким образом можно вывести данные на экран из одной любой таблицы открывшейся БД???
Cabyrc вне форума Ответить с цитированием
Старый 21.03.2009, 11:33   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Cabyrc Посмотреть сообщение
Каким образом можно вывести данные на экран из одной любой таблицы открывшейся БД???
Закрыть таблицу, открытую компонентом (Table, Query), поменять имя таблицы и открыть вновь.
Не зная имени таблицы это невозможно - нужно хотя бы составить перечень имеющихся таблиц.
mihali4 вне форума Ответить с цитированием
Старый 22.03.2009, 08:30   #3
Cabyrc
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Закрыть таблицу, открытую компонентом (Table, Query), поменять имя таблицы и открыть вновь.
Не зная имени таблицы это невозможно - нужно хотя бы составить перечень имеющихся таблиц.
Можно подробней расшифровать имеющеюся мысль реализации
Cabyrc вне форума Ответить с цитированием
Старый 22.03.2009, 14:11   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ясен пень - можно
чтобы выбрать данные из таблицы нужно знать имя этой таблицы (указывайте хоть в 10 компонентах - дело ваше)

на примере комбика - получайте запросом из системной таблицы/вьюхи список имен всех таблиц в выбранной БД и передавайте его в комбик
soleil@mmc вне форума Ответить с цитированием
Старый 23.03.2009, 06:34   #5
Cabyrc
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 17
По умолчанию

soleil@mmc:
Как я понимаю, в БД должна быть системная таблица, в которой записаны имена всех таблиц имеющихся в выбранной БД?? И если так, ведь ее должен создавать сам пользователь?? Варианты ее автоматического создания отсутсвуют??
Cabyrc вне форума Ответить с цитированием
Старый 23.03.2009, 10:04   #6
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Cabyrc например в Microsoft SQL Server это таблица sysobjects.
sysobjects.name - соответственно имена
sysobjects.xtype - тип (для таблиц тип U)
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 23.03.2009, 11:29   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и на то это и системная таблица, чтобы её создавала сама СУБД. Она же и поддерживает её в актуальном состоянии. Более того, если не ошибаюсь, то СУБД не даст напрямую вносить изменения в системные таблицы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.03.2009, 12:37   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Cabyrc Посмотреть сообщение
Каким образом можно вывести данные на экран из одной любой таблицы открывшейся БД???
имхо ответ на вопрос дан
а практика изменения системных таблиц ни к чему хорошему не приводит, кроме как к потере БД
soleil@mmc вне форума Ответить с цитированием
Старый 23.03.2009, 12:52   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Cabyrc Посмотреть сообщение
Каким образом можно вывести данные на экран из одной любой таблицы открывшейся БД???
Да, ну еще вариант...
На каждую таблицу подцепите по датасету (ADOTable, ADOQuery) и потом будете просто у DataSource, связанного с дбгридом, менять свойство DataSet. И дбгрид будет отображать данные из соответствующей таблицы.
mihali4 вне форума Ответить с цитированием
Старый 23.03.2009, 14:55   #10
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

Cabyrc, а ADOConnection.GetTableNames не подойдет?
Антон Ю.Б. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17
Не могу изменить данные в DB aleksey_prm Помощь студентам 1 17.03.2008 08:21
Помогите извлечь из МР3-файла название песни DelphiKettle Помощь студентам 2 31.07.2007 00:01
Взять данные из таблицы Access Inbox БД в Delphi 2 04.07.2007 13:53
Отправлять данные из одной таблицы в другую Таня84 БД в Delphi 14 28.04.2007 23:23