Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
Другое

Выборка записей по Listbox и вывод результатов в DBGird

30.05.2015, 19:17. Показов 2364. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разскажите пожалуйста как сделать Query запрос из БД таблицы выводил нужную запись на DBGird?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2015, 19:17
Ответы с готовыми решениями:

Выборка записей столбца БД в ListBox в зависимости от выбора в первом ListBox
Ребят, хелп. Нужно запилить такую штуку, а хз как. Есть 2 лист бокса когда в первом выбирают определенный элемент со списка во второй...

Выборка и вывод записей в таблицу
Всем привет. Кто подскажет как сделать вывод из бд вот в такой форме В данный момент я сделал вывод, но если не ввести запись Установка...

выборка за 5 дней + вывод всех записей на дату
Доброго дня. Подскажите пожалуйста. Есть база. там 3 колонки. ИД | ДАТА | ИМЯ Тип даты timestamp, такого формата: 2015-12-09 22:08:40 ...

15
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
30.05.2015, 19:46  [ТС]
БД содержит одну таблицу.
Выбор критерии с Listbox.
Поиск выводит на DBGird

у кого есть пример пишите?
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
30.05.2015, 21:12  [ТС]
кто нибудь расскажите что делать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//-------------------------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ADOQuery1->Active = false;
  DataSource1->DataSet = ADOQuery1;
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("SELECT * FROM (SELECT [Холодильные камеры].*, ");
  ADOQuery1->SQL->Add("[Холодильные камеры].[Модель],");
  ADOQuery1->SQL->Add("[Холодильные камеры].[Типы холодильных камер],");
  ADOQuery1->SQL->Add("[Холодильные камеры].[цена, руб]");
  
  if(ListBox1->SelCount > 0)
  {
    AnsiString additional;
    for(int i=0; i<ListBox1->Items->Count; i++)
    {
      if(ListBox1->Selected[i])
        additional = additional + "'" + ListBox1->Items->Strings[i] + "',";
    }
    additional = "WHERE [Производитель] IN (" + additional + ") ";
    ADOQuery1->SQL->Add(additional);
  }
  else
  {
    AnsiString additional;
    for(int i=0; i<ListBox1->Items->Count; i++)
    {
      additional = additional + "'" + ListBox1->Items->Strings[i] + "',";
    }
    additional = "WHERE [Производитель] IN (" + additional + ") ";
    ADOQuery1->SQL->Add(additional);
  }
 
  if(ListBox2->SelCount > 0)
  {
    AnsiString additional;
    for(int i=0; i<ListBox2->Items->Count; i++)
    {
      if(ListBox2->Selected[i])
        additional = additional + "'" + ListBox2->Items->Strings[i] + "',";
    }
    additional = "AND [Модель] IN (" + additional + ") ";
    ADOQuery1->SQL->Add(additional);
  }
 
  if(ListBox3->SelCount > 0)
  {
    AnsiString additional;
    for(int i=0; i<ListBox3->Items->Count; i++)
    {
      if(ListBox3->Selected[i])
        additional = additional + "'" + ListBox3->Items->Strings[i] + "',";
    }
    additional = "AND [Типы холодильных камер] IN (" + additional + ") ";
    ADOQuery1->SQL->Add(additional);
  }
 
  if(!Edit1->Text.IsEmpty() || !Edit2->Text.IsEmpty())
  {
    if(!Edit1->Text.IsEmpty() && !Edit2->Text.IsEmpty())
      ADOQuery1->SQL->Add("AND ([цена, руб] >= " + Edit1->Text + " AND [цена, руб] <= " + Edit2->Text +")");
 
    if(!Edit1->Text.IsEmpty() && Edit2->Text.IsEmpty())
      ADOQuery1->SQL->Add("AND ([цена, руб] >= " + Edit1->Text +")");
 
    if(Edit1->Text.IsEmpty() && !Edit2->Text.IsEmpty())
      ADOQuery1->SQL->Add("AND ([цена, руб] <= " + Edit2->Text +")");
  }
 
  ADOQuery1->Active = true;
 
  TDataSource* DataSrc = new TDataSource(this);
  DataSrc->DataSet = ADOQuery1;
  DataSrc->Enabled = true;
 
  DBGrid1->DataSource = DataSrc;
  for(int i=0; i<DBGrid1->Columns->Count; i++)
  DBGrid1->Columns->Items[i]->Width = 100;
}
//--------------------------------------------------------------------------------------------------------------------------
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
30.05.2015, 21:37
Цитата Сообщение от Шаша Посмотреть сообщение
Выбор критерии с Listbox
Из какого конкретно Listbox на скриншоте у тебя их много?
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
30.05.2015, 21:53  [ТС]
из всех
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
30.05.2015, 22:22
У тебя что разные поля из БД привязаны к разным ListBox?
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
30.05.2015, 23:51  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Из какого конкретно Listbox
на пример из производителей 1 производитель
из моделей 1 модель
из типов 1 тип
если нет холодильное камера такой характеристикой то оно не выводит таблица будет пустой.

Добавлено через 13 минут
Цитата Сообщение от Sasha Посмотреть сообщение
У тебя что разные поля из БД привязаны к разным ListBox?
да есть один производитель разные модели и технические характеристики по этому

Добавлено через 1 час 12 минут
Цитата Сообщение от Sasha Посмотреть сообщение
У тебя что разные поля из БД привязаны к разным ListBox?
нет не поля а столбцы
ListBox1 отображает столбец Производитель
ListBox2 отображает столбец Модель
и так далее
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.05.2015, 00:37
Цитата Сообщение от Шаша Посмотреть сообщение
нет не поля а столбцы
Вообще столбцы это и есть поля

Добавлено через 20 секунд
Просто их по научному называют полями

Добавлено через 26 секунд
А строки насколько я помню кортежами
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
31.05.2015, 14:26  [ТС]
Цитата Сообщение от Шаша Посмотреть сообщение
Из какого конкретно Listbox
для пример можно из одного Listbox
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.05.2015, 14:47
А строки насколько я помню кортежами

Вот пример для одного
C++
1
2
3
4
 ADOQuery1->Close(); 
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add("SELECT * FROM [Холодильные камеры] where Модель LIKE '"+ListBox1->Selected[ListBox1->ItemIndex]+"'");
 ADOQuery1->Open();
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
31.05.2015, 15:38  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Вот пример для одного
Ошибка дает
[C++Error]Unit1.cpp(188):E2085 Invalid pointer addition
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.05.2015, 15:54
Лучший ответ Сообщение было отмечено Шаша как решение

Решение

А так?
C++
1
2
3
4
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM [Холодильные камеры] where Модель LIKE '"+ListBox1->Items->Strings[ListBox1->ItemIndex]+"'");
ADOQuery1->Open();
1
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
31.05.2015, 17:54  [ТС]
Ошибка List index out of bounds (-1)

Добавлено через 1 час 13 минут
Цитата Сообщение от Sasha Посмотреть сообщение
А так?
Исправил все работает БОЛЬШОЙ СПАСИБО ,
можете подсказать как написать остальные Listbox'ов

1 ADOQuery1->Close();
2 ADOQuery1->SQL->Clear();
3 ADOQuery1->SQL->Add("SELECT * FROM [Холодильные камеры] where Модель LIKE '"+ListBox1->Items->Strings[ListBox1->ItemIndex]+"'");
4 ADOQuery1->SQL->Add(не знаю как добавить Listbox2 и все остальные)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.05.2015, 18:59
Цитата Сообщение от Шаша Посмотреть сообщение
написать остальные Listbox'ов
используй оператор AND в запросе
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 9
31.05.2015, 20:46  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
используй оператор AND в запросе
попробовал если выберу только одну модель ошибка дает
если выберу все критерий то работает нормальна
я так понял что оно по одной критерии не работает
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.05.2015, 22:22
Тебе лучше сделать функцию которая бы по параметрам создавала запрос. А в качестве параметров выступали бы
выбранные строки в ListBoxax
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2015, 22:22
Помогаю со студенческими работами здесь

Выборка из базы шести записей и вывод в два ряда.
Как сделать чтобы из базы выбрало 6 пользователей, и выводило в такой позиции?

Выборка уникальных записей с максимальными датами, и затем выборка по найденому
Как вообще такой запрос лучше составить? У меня есть таблица User(id) и Message( id, fromUserId, toUserId, sendDate). Мне нужно...

Занесение записей в listBox из файла и изменение записей в файле
Как сделать, что бы при запуске приложения, информация из конкретного файла сразу отображалась в listBoxе, а не выбирая файл через...

Выборка измененных результатов запроса в обработке
Здравствуйте. Прошу совета - как реализовать следующее. В собственной конфигурации есть документ &quot;НазначенияСотрудникам&quot;,...

Listbox - Отображение результатов в строку
Всем доброе время суток. Вот работаю с этим кодом. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru