Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/69: Рейтинг темы: голосов - 69, средняя оценка - 4.90
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142

Сделать выборку из picklist dbgrid для отбора в другой таблице на основе этой выборки

23.12.2013, 22:56. Показов 13986. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова я в запаре.. дым с ушей идет короче задача такая нужно сделать фильтрацию через комбобоксы дбгрида, например есть дбгрид где 3 столбца и в них должны выставляться значения для фильтрации, другого дбгрида (где записи основной таблицы), т.е. выбираю в 1-м поле поле сортировки, во 2-м поле действие, а в третьем поле значение по которому сортировать или выполнять условие.. для наглядности дополню скринами, тут вопрос как сделать в пиклисте эти условия отбора (запросы) как их привязать к пиклисту?
Миниатюры
Сделать выборку из picklist dbgrid для отбора в другой таблице на основе этой выборки  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2013, 22:56
Ответы с готовыми решениями:

Как вывести в DBGrid информацию только по выбранной строке в другой таблице DBGrid?
У меня есть 3 таблицы - Компании, Адреса и Квартиры. Компании содержит поля - Код компании и название Адреса содержит поля - Код...

Результат выборки передать GET запросом для изменения условий другой выборки
Есть такая таблица menu: Таким запросом вывожу на страницу: <?php include ("bd.php"); function display_menus($parent = 0) ...

Как сделать с этой выборки меню?
Добрый день. Подскажите пожалуйста как сделать с этой выборки меню, что-то нормальное. Сейчас все пункты категорий сливаются и не понять...

14
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
24.12.2013, 00:50  [ТС]
а ниже чтоб в таблице Клиенты в зависимости от фильтра все менялось.

Добавлено через 18 минут
короче, вот нюанс тут в чем как сделать такой запрос который бы брал выбранные мною значения(условия) из пиклиста?

Добавлено через 1 час 1 минуту
я тут подумал может поставить combobox и edit вместо dbgrid, если это облегчит задачу.. но даже так я не знаю как брать значение оттуда и подставлять в запрос ???
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.12.2013, 00:52
Вот это подставляешь в запрос
C++
1
DBGrid1->Columns->Items[i]->PickList->Text
1
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
24.12.2013, 18:20  [ТС]
спасибо, но такой нюанс если в дбгриде выбрано например условие: равно или содержит и т.п. как эти слова перевести в действия "=" "like" и вставить в sql запрос?

Добавлено через 3 часа 44 минуты
хочу из 3-го столбца выбранное значение(имя столбца) вставить значение в запрос sql но пока не выходит, наверно пишу бред(еще хочу чтобы по caption определяло имя столбца), вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(DBGrid12->SelectedIndex == 4){
int i;
//String S1 = DBGrid12->Columns->Items[2];
String S2 = DBGrid12->Columns->Items[2]->FieldName;
DataModule2->ADOQuery3->Close();          //
DataModule2->ADOQuery3->SQL->Clear();    //
DataModule2->ADOQuery3->Active=true;    //
DataModule2->ADOQuery3->Open();        //
DataModule2->ADOQuery3->SQL->Text="SELECT * FROM tblMain WHERE "+S2+"";
    DataModule2->ADOTable4->First();
    for (i=0;i<DataModule2->ADOTable4->RecordCount;i++){
    DBGrid12->Columns->Items[4]->PickList->Add(DataModule2->ADOQuery3->SQL->Text);
    //ADOQuery1->SQL->Text="SELECT * FROM "+ADOQuery2->Fields->FieldByName("Íàèìåíîâàíèå")->Text+" WHERE Êîä_òîâàðà LIKE '%"+a+"%'";
    DataModule2->ADOTable4->Next();
    }
щас ошибка при запуске: missing SQl property
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.12.2013, 18:49
Тебе надо чтобы в одном гриде выбирать потом вставлять в запрос и выводило результат в другом гриде?
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
24.12.2013, 20:29  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Тебе надо чтобы в одном гриде выбирать потом вставлять в запрос и выводило результат в другом гриде?
да все верно
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
25.12.2013, 01:58  [ТС]
возможно начал делать неверно подкорректируйте:
C++
1
2
3
4
5
DataModule2->ADOQuery3->Close();
 DataModule2->ADOQuery3->SQL->Clear();
 DataModule2->ADOQuery3->SQL->Add("SELECT * FROM tblMain WHERE "+DBGrid12->Columns->Items[2]->Field->Value+" "+DBGrid12->Columns->Items[3]->Field->Value+" '"+DBGrid12->Columns->Items[4]->Field->Value+"' ");
 DataModule2->ADOQuery3->Open();
 DataModule2->ADOTable4->Sort=""+DataModule2->ADOQuery3->SQL->Text+"";
и вот в результате вылетает окно..
Миниатюры
Сделать выборку из picklist dbgrid для отбора в другой таблице на основе этой выборки  
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
25.12.2013, 02:09  [ТС]
а если заполнить вот так то такая ошибка.. подскажите как правильно составить запрос ...
Миниатюры
Сделать выборку из picklist dbgrid для отбора в другой таблице на основе этой выборки  
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.12.2013, 02:14
А какой DBGrid откуда выводит?
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
25.12.2013, 12:47  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
А какой DBGrid откуда выводит?
C dbgrid12(это верхний) берутся значения для запроса, а в dbgrid4 (adotable4, нижний дбгрид) хочу сделать сортировку..

Добавлено через 6 минут
dbgrid12(это adotable12)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.12.2013, 13:16
Цитата Сообщение от helsik Посмотреть сообщение
возможно начал делать неверно подкорректируйте:
C++
1
2
3
4
5
DataModule2->ADOQuery3->Close();
 DataModule2->ADOQuery3->SQL->Clear();
 DataModule2->ADOQuery3->SQL->Add("SELECT * FROM tblMain WHERE "+DBGrid12->Columns->Items[2]->Field->Value+" "+DBGrid12->Columns->Items[3]->Field->Value+" '"+DBGrid12->Columns->Items[4]->Field->Value+"' ");
 DataModule2->ADOQuery3->Open();
 DataModule2->ADOTable4->Sort=""+DataModule2->ADOQuery3->SQL->Text+"";
и вот в результате вылетает окно..
Запрос не правильный. Где после слова WHERE пречисление полей?

Добавлено через 1 минуту
Цитата Сообщение от Sasha Посмотреть сообщение
DataModule2->ADOTable4->Sort=""+DataModule2->ADOQuery3->SQL->Text+"";
А такая сортировка из мира фантастики так никто не сортирует
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
25.12.2013, 13:19  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
А такая сортировка из мира фантастики так никто не сортирует
а как мне вытянуть из sql сортировку?
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
25.12.2013, 13:23
Самое простое,что я тебе скажу,берешь...
1) создаешь временную таблицу,в которую вытягиваешь данные которые тебе нужно отобразить.
2) отображаешь данные уже с темповой таблицы,которая отсортирована,как нужно. при каждом обновлении Делать
SQL
1
 TRUNCATE TABLE имя_table
ну конечно же,сначало транкейтить,потом заполнять таблицу.
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
25.12.2013, 13:24  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Запрос не правильный. Где после слова WHERE пречисление полей?
"+DBGrid12->Columns->Items[2]->Field->Value+" это поле по которому сортировать, точно, но блин как определить каких полей не хватает для сортировки, ведь может быть выбрано любое поле... как сделать подстановку остальных полей?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.12.2013, 13:25
Цитата Сообщение от helsik Посмотреть сообщение
а как мне вытянуть из sql сортировку?
Вытягивать ничего не надо надо указывать сортировку в запросе на самом его создании
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2013, 13:25
Помогаю со студенческими работами здесь

Изменение записи в одной таблице на основе другой
На первом скриншоте суть работы формы такая. После выбора чека (1) в ADOTable1 выводятся данные о продаже. К ADOTable1 подключены 2...

Как сделать выборку из таблицы на основе данных текущего юзера?
Собственно, вот. Имею проектик в ASP.NET с базой данных и авторизацией, работающей через EntityFramework. Стала задача: в контроллере надо...

На основе БД Sales сделать 3 любые хранимые процедуры по любой таблице и 3 любых триггера также по любой таблице
Помогите пожалуйста! На основе БД Sales сделать 3 любые хранимые процедуры по любой таблице и 3 любых триггера также по любой таблице....

DBGRID Picklist
Здравствуйте! Сколько не ищу, не могу найти ответ на вопрос. У меня есть dbgrid с одной лишь таблицей, в которой несколько полей. В одном...

DBGrid PickList
Ребят, нужно что бы PickList заполнялся автоматически из заранее созданной базы. У меня получается добавить только 1 значение, которое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru