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

LookUp в Query

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

Author24 — интернет-сервис помощи студентам
Можно ли в Query реализовать LookUp?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2016, 15:56
Ответы с готовыми решениями:

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

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

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...

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

13
5484 / 4399 / 1076
Регистрация: 29.08.2013
Сообщений: 27,563
Записей в блоге: 3
19.05.2016, 15:59 2
что такое Query
что такое LookUp
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:03  [ТС] 3
В 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
5484 / 4399 / 1076
Регистрация: 29.08.2013
Сообщений: 27,563
Записей в блоге: 3
19.05.2016, 16:05 4
Query это НЕ ВИЗУАЛЬНЫЙ компонент
а Lookup, поле в визуальном компоненте
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:10  [ТС] 5
Эм... ну как бы да. Но отображаю то я его в визуальном компоненте DBGrid. И если его не программно создавать то оно как бы появиться и будет работать но там ошибку при редактировании выбивает.

Если делать на тейблах то все будет работать.
0
5484 / 4399 / 1076
Регистрация: 29.08.2013
Сообщений: 27,563
Записей в блоге: 3
19.05.2016, 16:15 6
в DBGrid можно сделать LookUp поле, потому что он визуальный

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

Я нашел как это делали на раньше в квери свойство 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  [ТС] 10
Цитата Сообщение от qwertehok Посмотреть сообщение
то есть ты выбираешь из другой таблицы ИМЕЮЩИЕСЯ значения
да по ключу из первой.
Миниатюры
LookUp в Query  
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:38  [ТС] 11
В конце концов вот такую ошибку получаю.
Миниатюры
LookUp в Query  
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
19.05.2016, 16:39  [ТС] 12
ой не ту ошибку скидывал) сори. Вот она.
Миниатюры
LookUp в Query  
0
5858 / 4587 / 1447
Регистрация: 14.04.2014
Сообщений: 20,340
Записей в блоге: 20
19.05.2016, 20:19 13
если Dataset не в режиме редактирования, может, надо поставить его в режим редактирования, не? круто?
dataset.edit;
0
12 / 10 / 7
Регистрация: 08.02.2013
Сообщений: 254
20.05.2016, 09:13  [ТС] 14
я переводил его в режим редактирование 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
20.05.2016, 09:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 09:13
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru