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

LookUp в Query

19.05.2016, 15:56. Показов 2221. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли в Query реализовать LookUp?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2016, 15:56
Ответы с готовыми решениями:

Shodanhq - ошибка Error: Invalid search query, please check the query syntax
Собственно, такая проблема. Я думаю, что многие знакомы с такой поисковой системой, как shodanhq.com. В последнее время при поиске у меня...

Не работает $db->query(); // Call to a member function Query() on a non-object in
Только приступил к ООП, поэтому очевидно наличие простых ошибок. Вот код, который при запуске метода $User->registr(); Выодает ошибку:...

User Warning: Query Error:In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated colu
Добрый вечер! Получаю такую ошибку: User Warning: Query Error:In aggregated query without GROUP BY, expression #2 of SELECT list contains...

13
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
19.05.2016, 15:59
что такое Query
что такое LookUp
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:03  [ТС]
В TQuery хранится запрос который выводит мне все данные поля в грид.
Вооот а лукап - виртуальное поле, в котором я хочу увидеть значение из другой таблицы по ключевому полю.

В гриде при нажатии на это виртуальное поле чтоб выпадал список, что то типо комбобокса.

Добавлено через 38 секунд
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  f: TIntegerField;
begin
  qp.close;
 
  f := TIntegerField.Create(QP); //Ñîçäàåì ïîëå òåïà INTEGER
  f.FieldKind := fkLookup; //Óêàçûâàåì íà òî ÷òî îíî ó íàñ LookUp
  f.KeyFields := 'age1'; //Ïîëå êëþ÷, ïî êîòîðîìó áóäåò èñêàòüñÿ ñîîòâåòñòâèå
  f.LookupDataSet := QC; //Íàáîð äàííûõ (DataSet) â êîòîðîì áóäó îòáèðàòüñÿ äàííûå
  f.LookupKeyFields := 'idc'; //Óíèêàëüíûé êëþ÷ â íàáîðå äàííûõ ADOQueryDictionary, ïî êîòîðîìó áóäåì èñêàòü
  f.LookupResultField := 'age'; //Ïîëå èç íàáîðà äàííûõ ADOQueryDictionary, êîòîðîå áóäåò îòîáðàæàòüñÿ â ðåçóëüòàòå
  f.Name := 'ag2'; //çàäàåì èìÿ íàøåìó ïîëþ
   showmessage(f.Name);
  QP.Fields.Add(f); //âêëþ÷àåì åãî â ñîòàâ íàøåãî íàáîðà äàííûõ
 
  qp.Open;
Создавал да же программно его, ноо что то пошло не так)
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
19.05.2016, 16:05
Query это НЕ ВИЗУАЛЬНЫЙ компонент
а Lookup, поле в визуальном компоненте
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:10  [ТС]
Эм... ну как бы да. Но отображаю то я его в визуальном компоненте DBGrid. И если его не программно создавать то оно как бы появиться и будет работать но там ошибку при редактировании выбивает.

Если делать на тейблах то все будет работать.
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
19.05.2016, 16:15
в DBGrid можно сделать LookUp поле, потому что он визуальный

Цитата Сообщение от Kamero Посмотреть сообщение
то оно как бы появиться
Цитата Сообщение от Kamero Посмотреть сообщение
но там ошибку при редактировании выбивает.
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:17  [ТС]
Вот как то так... это происходит если я хочу редактировать запись.
Миниатюры
LookUp в Query   LookUp в Query  
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
19.05.2016, 16:22
Цитата Сообщение от Kamero Посмотреть сообщение
лукап - виртуальное поле, в котором я хочу увидеть значение из другой таблицы по ключевому полю.
то есть ты выбираешь из другой таблицы ИМЕЮЩИЕСЯ значения
а когда ты
Цитата Сообщение от Kamero Посмотреть сообщение
хочу редактировать запись.
этого значения в той таблице нет, и у тебя ошибка
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:31  [ТС]
Нет все значения есть, и выводит их корректно. Так скажем если я да же новую запись добавлю тоооо выбьет ошибку. А если из под бд вставить значения, то при запуске программы он все связи подхватит.

Я нашел как это делали на раньше в квери свойство RequestLive включали и все работало. А тут такого свойства нет. Компоненты AnyDAC БД MySQL.

Добавлено через 4 минуты
Или вот я еще сделал что то на подобии лукапа. В свойстве поля PickList гружу данные, все работает правда, его пользователь может отредактировать.... а надо чтобы мог выбрать только значения из списка. А если я ставлю readonly тогда список не появиться... Как то его не редактируемым по другому можно сделать?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
DBGrid2.Columns[4].PickList.clear;
     with Q1 do
    begin
      SQL.text := 'select * from client';
      Open;
      First;
      while not Eof do
      begin
        DBGrid2.Columns[4].PickList.add(FieldByName('age').Value);
        Next;
      end;
    end;
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:34  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
то есть ты выбираешь из другой таблицы ИМЕЮЩИЕСЯ значения
да по ключу из первой.
Миниатюры
LookUp в Query  
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:38  [ТС]
В конце концов вот такую ошибку получаю.
Миниатюры
LookUp в Query  
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:39  [ТС]
ой не ту ошибку скидывал) сори. Вот она.
Миниатюры
LookUp в Query  
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,667
Записей в блоге: 21
19.05.2016, 20:19
если Dataset не в режиме редактирования, может, надо поставить его в режим редактирования, не? круто?
dataset.edit;
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
20.05.2016, 09:13  [ТС]
я переводил его в режим редактирование qc.edit; и когда я нажимаю на виртуальное поле она выходит из режима редактирования.

Добавлено через 5 минут
Все разобрался. Всем спасибо.

Добавлено через 40 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  f: TIntegerField;
begin
  qp.close;
 
  f := TIntegerField.Create(QP); //ÑîçäГ*ГҐГ¬ ïîëå ГІГҐГЇГ* INTEGER
  f.FieldKind := fkLookup; //ÓêГ*çûâГ*ГҐГ¬ Г*Г* ГІГ® Г·ГІГ® Г®Г*Г® Гі Г*Г*Г± LookUp
  f.KeyFields := 'age1'; //Ïîëå êëþ÷, ГЇГ® êîòîðîìó áóäåò ГЁГ±ГЄГ*ГІГјГ±Гї ñîîòâåòñòâèå
  f.LookupDataSet := QC; //ГЌГ*áîð Г¤Г*Г*Г*ûõ (DataSet) Гў êîòîðîì áóäó îòáèðГ*ГІГјГ±Гї Г¤Г*Г*Г*ûå
  f.LookupKeyFields := 'idc'; //Г“Г*ГЁГЄГ*ëüГ*ûé êëþ÷ Гў Г*Г*áîðå Г¤Г*Г*Г*ûõ ADOQueryDictionary, ГЇГ® êîòîðîìó áóäåì ГЁГ±ГЄГ*ГІГј
  f.LookupResultField := 'age'; //Ïîëå ГЁГ§ Г*Г*áîðГ* Г¤Г*Г*Г*ûõ ADOQueryDictionary, êîòîðîå áóäåò îòîáðГ*Г¦Г*ГІГјГ±Гї Гў ðåçóëüòГ*ГІГҐ
  f.Name := 'ag2'; //Г§Г*Г¤Г*ГҐГ¬ èìÿ Г*Г*øåìó ïîëþ
   showmessage(f.Name);
  QP.Fields.Add(f); //âêëþ÷Г*ГҐГ¬ ГҐГЈГ® Гў ñîòГ*Гў Г*Г*ГёГҐГЈГ® Г*Г*áîðГ* Г¤Г*Г*Г*ûõ
 
  qp.Open;
А в коде какая ошибка? Просто если я его программно не создам я не увижу его в своем проекте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2016, 09:13
Помогаю со студенческими работами здесь

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in
Здравствуйте! Подскажите как решить проблему с выдаваемыми ошибками: Вот сам файл install.php <?php //Подключение нужных...

Lookup
LookRes:=DM.Priem_DB.Lookup('TypeP; NameP; ArcticP; DateP; Kol_voP; Cena', VarArrayOf(), 'Type_ix; Name_ix; Date_ix; Cena_ix');...

2 зависимых lookup
здравствуйте подскажите пожалуста как реализовать и ли стратегию или вообще пример даже лучше у меня база в sql server к ней delphi...

Фильтрация + LookUp
Здравствуйте. Скажите пожалуйста как сделать фильтрацию по LookUp полю. Заранее спасибо. Вот не рабочие наброски которые ошибку выдают...

Lookup fields
Беда, товарищи! В этом деле уж совсем новичок, местами сильно тормозящий... не судите строго. Есть на форме грид с полями из разных...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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