Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 749

Locate в ADOQuery

04.05.2017, 08:52. Показов 6275. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане. Вчера столкнулся с чем-то мне неизвестным пока что. Когда открываю запросом одну таблицу Locate ищет данные нормально и по одному полю и по нескольким, но открываю в результирующий ADO три таблицы и locate не ищет записи... Данные проверял - все открывается, записи есть, результирующий ADO не пустой. Переменные в дебагере смотрел - значения им присваиваются правильно при выборе пользователем позиции, имена полей указаны верно, но locate упорно игнорится. Пока переоткрываю таблицу с немного измененным условием после выбора пользователем, чтоб только 1 запись оставалась, но это как-то странно... Есть предположения?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.05.2017, 08:52
Ответы с готовыми решениями:

Locate в ADOQuery
Добрый вечер. У меня бд, где нужно сделать запрет записи на экскурсию, если количество человек превышает 30. Надо проверить условие: если...

Запрос ADOQuery внутри другого ADOQuery реален?
Помогите сформировать запрос для двух ADOQuery. Есть 2 таблицы БД mssql: sotrudniki , table_hlp(Вспомогательная таблица для делания...

Обращение в ADOquery к ADOquery
Доброго времени суток. Вопрос заключается в следующем: Имеется подключенная бд *.mdb к delphi В delphi есть запрос на основе одной...

9
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
04.05.2017, 09:24
может имена полей совпадают в таблицах? И вы думаете, что ищете по полям одной таблицы, а на самом деле по полям другой?
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 749
04.05.2017, 10:25  [ТС]
Yurik, нет. Я ищу в результирующем ADOQuery.
Delphi
1
ADO1.sql.add('Select тбл1.поле1, тбл1.поле2, тбл2.поле, тбл3,поле form тбл1, тбл2, тбл3 where ...');
Все выводится нормально, имена полей разные. Юзер выбрал запись и мне ее вывести на редактирование надо, но сначала найти в таблице. Соответсвенно Ado1.locate('поле1', значение,[]), но тут тишина наступает.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,667
Записей в блоге: 21
04.05.2017, 10:52
тут без конкретики никак не выйдет
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 749
04.05.2017, 11:33  [ТС]
тут без конкретики никак не выйдет
Ок. Вот конкретика:
Delphi
1
2
3
4
5
6
7
8
9
with DMF.Aresult do
begin
close;
sql.Clear;
sql.Add('Select users.ID, Users.FIO, Users.TNUM, Users.ID_FIL, spr_fil.fil, spr_fil.id, ');
sql.Add('users.id_company, Company.ID, company.name from Users, SPR_FIL, Company ');
sql.add('  where (users.id_Fil=spr_fil.id and users.id_company=Company.id and users.disabled<>1) order by Users.FIO');
Open;
end;
Дальше частичный результат выводится в стринггрид и предоставляется пользователю набор записей. Он выбирает запись и дальше уникальный идентификатор записи передается в переменную:
Delphi
1
MainF.uid:=StrToInt(SgUsers.Cells[5,SgUsers.row]);
После, соответственно:
Delphi
1
DMF.Aresult.locate('ID',MainF.uid,[]);
Значение переменной uid проверял - все ништяк передается Поле, по которому ищу называется ID. Тоже проверял в DBGrid'е - все верно, искомое значение именно там. Но не ищет.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,667
Записей в блоге: 21
04.05.2017, 13:03
в начале поиска текущая строка выше искомой? поиск идет только вниз!
что будет если заменить "Company.ID" на "Company.ID AS CompanyID" ?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
04.05.2017, 13:28
Select users.ID, spr_fil.id, Company.ID
Цитата Сообщение от YuryK Посмотреть сообщение
может имена полей совпадают в таблицах?
Цитата Сообщение от drvolodko Посмотреть сообщение
имена полей разные
ну и где разные ? все три Id
И ваш
Цитата Сообщение от drvolodko Посмотреть сообщение
locate('ID',MainF.uid,[]);
ищет только по users.ID. Вы по нему искали?
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 749
04.05.2017, 14:03  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
ищет только по users.ID. Вы по нему искали?
Да по нему. Перед locate установлен first. Извините забыл указать.
Вот скрин. Все поля типа ID с разными именами.
Миниатюры
Locate в ADOQuery  
0
 Аватар для Cold
87 / 87 / 65
Регистрация: 22.05.2014
Сообщений: 485
05.05.2017, 10:59
Цитата Сообщение от drvolodko Посмотреть сообщение
Все поля типа ID с разными именами.
?????
Для одной таблицы - ОДНО УНИКАЛЬНОЕ ПОЛЕ (счетчик(id))
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 749
11.05.2017, 09:48  [ТС]
Разобрался. Немного изменил запрос, переименовал выбираемые поля ID и все нормально заработало. Всем спасибо за участие. Тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2017, 09:48
Помогаю со студенческими работами здесь

Locate
Что значит ??

LOCATE!!!
Всем привет. Привыполнении команды CurrentDb.Execute &quot;SELECT * FROM WHERE =0&quot; Пишет: не возможен запуск запроса на...

locate
доброе время суток,помогите,как программно определить что функция locate что-то нашла вот к примеру у меня такой код: TLocateOptions...

Метод .Locate
Есть таблица ClientDataSet1, в ней 2 столбца .F2.F3 F3 вычисляемый мне необходим, что бы первое значение и последнее значение из...

метод Locate
как с помощью метода Locate компонента ТTable найти не первую на соответствие запись, а все записи которые соответствуют запросу, например,...


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

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