Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 13

DBLookupCombobox и DBGrid

15.03.2016, 06:46. Показов 2303. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется проблема. У меня есть на форме DBLookupCombobox, который подключен к БД с информацией о фильмах и в него выводятся названия фильмов, выбрав их от туда и нажав кнопку добавить, отображается полная информация о фильме из бд.
Когда я выбираю новый фильм из списка, старый из грида убирается и появляется тот который я выбрал во второй раз и т.д...
Можно ли как-нибудь сделать так что бы при повторном выборе фильма он прибавлялся в DBGrid к предыдущему фильму, а не отображался один.
так же прикладываю код запроса
Delphi
1
2
3
4
5
6
7
8
9
procedure TFormRegProk.Button1Click(Sender: TObject);
begin
ADOQuery2.Active:=False;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select *');
ADOQuery2.SQL.Add('from films');
ADOQuery2.SQL.Add('where [Название фильма] like '''+FormRegProk.Combobox1.text+'''');
ADOQuery2.Active:=True;
end;
буду очень благодарен) сам уже неделю с утра до вечера сижу за разработкой приложения и голова уже кипит)
Миниатюры
DBLookupCombobox и DBGrid  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2016, 06:46
Ответы с готовыми решениями:

dblookupcombobox и dbgrid
Здравствуйте!У меня 2 таблицы одна с полями : №,фио, должность, пол, другая: №, пол.Подскажите пожалуйста как сделать так чтобы при выборе...

DBLookupComboBox и DBGrid
Здравствуйте. Помогите, пожалуйста у меня таблицы Студенты и Группы связаны по ключевому полю "Номер_группы" у меня на форме...

DBLookupComboBox и DBGrid
Всем доброго времени суток я выбираю данные из других таблиц при помощи DBLookupComboBox подскажите какой примерно код должен быть в...

6
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.03.2016, 07:11
Лучший ответ Сообщение было отмечено osaglion как решение

Решение

Можно. Как вариант, накапливая значения ID в массиве.
В качестве массива лучше взять TStringList (все равно в запрос должны передаваться строковые значения ID).
- в классе формы объявляется переменная SL : TStringList;
- в OnCreate формы создается экземпляр класса SL := TStringList.Create;
не забыть в OnClose формы расстрелять этот экземпляр SL.Free;

в процедуре нажатия на кнопку:
добавить в массив вновь выбранное значение ID и сформировать список идентификаторов для фильтра запроса:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TFormRegProk.Button1Click(Sender: TObject);
var I : Integer;
begin
  SL.Add(IntToStr(DBLookupCombobox1.KeyValue));
  S := '';
  for I := 0 to SL.Count-1 do
    S := S + SL[I] + ',';
 
  S := '('+Copy(S, 1, Length(S)+1)+')';
  ADOQuery2.SQL.Text := 'select * from films where ID in ' + S;
  ADOQuery2.Open;
end;
Желательно быть более внимательным, уважаемый.
В заголовке темы упомянут TDBLookupCombobox, а в запросе участвует TCombobox.

Что касается выбора фильма, то чтобы применить прием с массивом, выбор надо делать с использованием DBLookupCombobox'а, который бы содержал не только названия, но и значения ID каждого элемента списка.
1
1 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 13
15.03.2016, 07:21  [ТС]
у меня на форме лежит dblookupcombobox, просто он имеет имя простого combobox'а (наверно потому что я хотел поменять имя, но потом почему то передумал - уже полная каша в голове)
Ваш совет приму к сведению, чуть позже попробую. как только что-нибудь получиться - отпишусь.
Миниатюры
DBLookupCombobox и DBGrid  
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.03.2016, 07:22
Впрочем, для учебной работы можно накапливать в массиве и называния:
Delphi
1
2
3
4
5
6
7
8
procedure TFormRegProk.Button1Click(Sender: TObject);
var I : Integer;
begin
  SL.Add(Combobox1.Text));
  S := '';
  //далее как выше в примере
  ...
end;
0
1 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 13
15.03.2016, 07:35  [ТС]
Большое спасибо
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.03.2016, 07:47
Поправка (наименования в одинарных кавычках):
Delphi
1
2
3
  ...
  SL.Add(QuotedStr(Combobox1.Text));
  ...
0
1 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 13
15.03.2016, 08:09  [ТС]
Все работает) еще раз спасибо
выкладываю конечный результат
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TFormRegProk.Button1Click(Sender: TObject);
var I : Integer;
S: string;
begin
  SL.Add(QuotedStr(DBLookupComboBox1.Text));
  S := '';
   for I := 0 to SL.Count-1 do
    S := S + SL[I] + ',';
 
  S := '('+Copy(S, 1, Length(S)+1)+')';
  ADOQuery2.SQL.Text := 'select * from films where [Название фильма] in ' + S;
  ADOQuery2.Open;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2016, 08:09
Помогаю со студенческими работами здесь

Dblookupcombobox и Dbgrid
Имеется форма с 2-мя Dblookupcombobox 1. Dblookupcombobox= Класс 2. Dblookupcombobox= Предмет(Дисциплина) Dbgrid=список учеников ...

Dblookupcombobox и dbgrid
Подскажите, пожалуйста, как передать значения из dblookupcombobox в dbgrid не IDишками, а словами (а именно чтобы в dbgrid было не id...

DBGrid с DBLookupComboBox
На форме есть DBLookupComboBox и DBGrid когда я в DBLookupComboBox выбираю значение в DBGrid появляется ключ, а не значение. Как это...

Выборка из DBGrid в DBLookUpComboBox
Такая проблема: Необходимо, чтобы при двойном клике по записи базы данных в DBGrid считалось значение из поля fio и заполнилось в...

Вставка dblookupcombobox в dbgrid
Подскажите, кто знает, как вставить lookupcombobox в dbgrid? И если можно поподробней


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru