![]() |
|
|
![]()
|
|
| PsiMagistr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Ребята, есть некоторая таблица PredmetsTeached модуля DataM
При попытке использовать if DataM.PredmetsTeached.Locate('LinkToPredmets', 1, []) then ShowMessage('Есть поле') вызова сообщения не происходит. Перехода курсора также непроисходит. (В гриде он точно не отображается); Причем убежден, что поле LinkToPredmets хотя бы одной записи содержит значение 1. Вот. На рисунке отчетливо видно, что это поле существует и имеет соответствующее значение. Если меняю Locate на ручной поиск в цикле все работает.
Это сообщение отредактировал(а) PsiMagistr - 22.7.2011, 15:20 Присоединённый файл ( Кол-во скачиваний: 17 )
screen.JPG 196,12 Kb-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
у меня недавно была такая же проблема, только в Delphi 7.
так как не было времени разбираться, я до сих пор не знаю в чем была проблема. но то что я искал с помощью Locate, нашел с помощью Filter. |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
А там в квадратных скобках ещё параметры есть. Если их заюзать?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| PsiMagistr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Данкинг, а смысл их юзать? Это же не строковые поля, а интегровые. Тут их юзай, не юзай.
Таблица является связанной. Дочерней по отношению к таблице с персонажами. Можно цикл заюзать, но это меня убивает. Зачем тогда Locate? Это сообщение отредактировал(а) PsiMagistr - 22.7.2011, 15:26 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
Мне уже очень давно не нравится Locate. Советую познакомится с TQuery. Чуть сложнее, но если разобраться...
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| PsiMagistr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Poseidon, Арфы нет, возьмите бубен! ЭТо конечно интересно, но что все-таки с локейтом делать? Ведь он же существует... И даже как-то работает.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
Ну что я могу тебе ответить без отладчика? Может быть все что угодно. Вплоть до того, что в PredmetsTeached загружена не та база, которая открыта на скиншоте
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
locate не ищет наличие поля Добавлено через 2 минуты и 26 секунд
При чем здесь TQuery и запрос? Ведь требуется программно спозиционировать курсор на нужную запись, так? |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| PsiMagistr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Akella, Локейт не только позиционирует курсор, но и возвращает True, если значение поля совпадает со значением в локайт.
http://webcache.googleusercontent.com/sear...e=www.google.ru -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
Кто такой PredmetsTeached?
Один раз сталкивался с проблемами локейта в фибах - это было в определенной версии и при стечении некоторых обстоятельств. Но так больше никогда проблем не было. |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
PsiMagistr, еще вчера я фиксил прогу по работе.
проблема была такая же, как у тебя.
с тем же успехом можно применить фильтр или запрос, а потом подсчитать количество записей (RecordCount, но я думаю, ты и без меня это знаешь). с уважением, 14SatanA88 |
|||
|
||||
| Akella |
|
||||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
После переоткрытия запроса, чтобы пользователь даже не заметил, что НД был переоткрыт Добавлено через 1 минуту и 8 секунд
Если тебе нужно только убедиться, существует ли запись, то для этого правильнее использовать Lookup. Lookup работает в разы быстрее. Добавлено через 1 минуту и 58 секунд
Вот правильная ссылка: http://base.vingrad.ru/view/43-Poisk-nuzhnyih-dannyih Добавлено через 3 минуты и 5 секунд
Правильнее сказать так: возвращает Истину, если метод locate нашёл запись. Добавлено через 4 минуты и 34 секунды
ни фильтр, ни запрос, не спозиционируются на нужной записи, если, конечно, запрос/фильтр вернёт много записей и нужная запись будет не перовой. |
||||||||||
|
|||||||||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
1. запрос/фильтр вернул 0 записей --> сойдет за false в Locate. 2. запрос/фильтр вернул 1 запись (то что надо) --> сойдет за true, получим нужную запись. 3. запрос/фильтр вернул 2 и больше записей --> берем первую запись из полученных. то же что и Locate. вся разница в том, что Locate почему-то глючит. причину я так и не выяснил. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |