|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 57
|
|
SQL-запрос на загрузку таблиц из БД08.02.2012, 23:21. Показов 2164. Ответов 12
Метки нет (Все метки)
Народ, как сделать так чтоб из объекта ComboBox1 можно было выбрать нужную таблицу, нажать кнопку "3агрузить" и в объект DBGrid1 загружалась выбранная таблица
0
|
|
| 08.02.2012, 23:21 | |
|
Ответы с готовыми решениями:
12
Один sql запрос и несколько таблиц SQL запрос из 9 таблиц и одинаковыми заголовками
|
|
10 / 12 / 1
Регистрация: 07.02.2012
Сообщений: 25
|
|
| 08.02.2012, 23:30 | |
|
Сначала тебе нужно узнать запросом название столбцов таблицы.
А потом динамически присвоить их DBGrid1.
0
|
|
|
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
|
|
| 08.02.2012, 23:35 | |
|
1) На форме должен быть компонент DBGrid без всяких полей, голый
2) Datasource (например, MyDataSource) без указанного dataset 3) DBGrid должен брать данные из datasource MyDataSource. 4) При смене item в комбобоксе передавать выбранный Item в качестве имени dataset для этого MyDataSource 5) Открыть dataset - после этого в гриде должны показаться записи из выбранной таблицы
1
|
|
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 57
|
|
| 08.02.2012, 23:42 [ТС] | |
|
zremas, ну а код можешь показать примерный
0
|
|
|
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
|
||||||
| 09.02.2012, 00:08 | ||||||
|
Уточняю:
1) На форме должен быть компонент DBGrid без всяких полей, голый 2) Datasource (например, MyDataSource) с указанным dataset = Table1 (Database: DBDEMOS) 3) DBGrid должен брать данные из datasource MyDataSource. 4) При смене item в комбобоксе передавать выбранный Item в качестве имени таблицы для этого Table1 5) Открыть dataset - после этого в гриде должны показаться записи из выбранной таблицы 6) в ComboBox1 вписать для примера biolife.db, customer.db
0
|
||||||
|
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
|
||||||
| 09.02.2012, 00:09 | ||||||
|
На OnChange вешаешь:
0
|
||||||
|
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
|
|
| 09.02.2012, 00:11 | |
|
проектик для теста
0
|
|
|
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
|
||
| 09.02.2012, 00:15 | ||
0
|
||
|
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
|
|
| 09.02.2012, 00:19 | |
|
Это же чисто пример, к тому же, если человек каким-то образом НАПОЛНЯЕТ комбобокс списком таблиц, подразумевается, что они валидные.
Согласен, что можно сделать вообще связку с неким третим датасетом, хранящим названия таблиц, и оброащаться к именам по коду через комбо.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||
| 09.02.2012, 12:03 | ||||||
По теме. При работе с любой базой ОБЯЗАТЕЛЬНО использовать объект-"концентратор". TADOConnection - для ADO, TDataBase - для BDE, TIBdataBase для Interbase/Firebird и т.д. Через этот объект открывать и закрывать соединения (сессии), а также можно использовать некоторые функции "общего" плана. Например, получать список таблиц базы (GetTableNames) или список полей конкретной таблицы, управлять транзакциями и блокировками, собирать и анализировать диагностику и много другое) Для выборки данных из любой таблицы (хранимки, функции, вью, скрипта и т.д.) нужно только одно - компонент, обеспечивающий передачу на сервер текста запроса и получения от него результатов выборки. Компонент опять же зависит от того, с какой СУБД Вы работаете. Если с BDE, то это TTable/TQuery/TStoredProc, если ADO-TADODataSet, если IB, то TIBTable/TIBQuery/TIBDataSet Объект можно создать как статически (в дизайне), после чего изменять нужные свойства для переключения с одной таблицы БД на другую, так и в ран-тайме, создавая по мере надобности (как это сделано в большинстве "штатных" клиентских СУБД-приложений: Query Analizer/DataBase DeskTop/IBExpert,Pl/SQL Developerl и т.д.) в многооконном интерфейсе. Для отображения полученного датасета лучше и проще использовать TDBGrid, связанный с датасетом источником данных TDataSource. При этом надо помнить, что один источник данных может обслуживать только один датасет. Другими словами - сколько у Вас должно быть одновременно существующих датасетов для отображения (не обязательно видимых, например расположенных на разных вкладках TPageControl), столько же должно быть и источников данных и гридов соответственно. При этом при открытии датасета происходит автонастройка как его, так и связанного с ним грида. При этом проверяются "ручные" настройки, сделанные в дизайне. Поэтому если Вы хотите, чтобы один грид и один датасет соотв-но служил Вам для разных таблиц как универсальный, то в дизайне не следует настраивать ни датасет (не вызывать редактор полей, а если вызвали и создали коллекцию, то уничтожить ее, почистив список). Конечно, тут проблемка - в гриде отобразятся колонки таблицы БД в их "нативном" виде (как правило - на англицом), к тому же ширины колонок будут не совсем оптимальны (чаще всего совсем не оптимальны и работать с таким интерфейсом будет не очень приятно. Чтобы облагородить интнрфейс и получить, скажем что-то похожее на интерфейсы вышеприведенных штатных клиентов, нужно приложить немало усилий и времени, но это уже такое...
1
|
||||||
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 57
|
|
| 09.02.2012, 13:11 [ТС] | |
|
MsGuns, я понимаю что вы все умные, могли и не доказывать.
Просто я лучше понимаю, когда вижу рабочий код. Мне нужно сделать так, чтобы например в ComboBox1 я выбрал 10Б класс, нажал кнопку, и мне из БД загрузилась таблица 10Б класса в объект DBGrid1, потом например, я выбрал из списка 11В, и таблица 11В класса загрузилась бы в DBGrid1 Я такое на Бейсике видел, теперь мне на Делфи надо
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||||||||||||||||||||
| 09.02.2012, 13:42 | |||||||||||||||||||||
Если пытаемся объяснить человеку причины его ошибок вместо того, чтобы просто написать за него готовый код )а лучше целиком проект) У Вас нет необходимости в динамической перенастройке компонентов при смене таблиц т.к. таблицы однитипны (сама по себе идея строить БД по принципу "по таблице на класс - идиотическая" и говорит о полном непонимании сущности реляционных баз) и Вам для переключения с одной таблицы на другую просто надо что-то такое:
Добавлено через 3 минуты Пардон, забыл салфетку, свечечку и пожелать "приятного аппетита":
0
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 09.05.2011
Сообщений: 57
|
|
| 09.02.2012, 13:56 [ТС] | |
|
MsGuns, я и не знал, что вы такой "вежливый"
Добавлено через 1 минуту MsGuns, я к вашу сведенью, еще школьник, поэтому не знаю этот язык на вашем уровне. Можно было рассказать, научить, а не язвить!
0
|
|
| 09.02.2012, 13:56 | |
|
Помогаю со студенческими работами здесь
13
Доработать sql - запрос с выборкой из нескольких таблиц QuickRep с выводом нескольких таблиц через SQL запрос SQL-запрос: выбрать и считать отличающиеся записи двух таблиц Добавление данных в несколько таблиц (как правильно написать SQL-запрос?) SQL запрос использование 2-х таблиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|