![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с Locate [D3]
iStat © (2003-04-17 06:33:00)Народ, подскажите кого пинать. При выполнении
suc=Table1.Locate("Code",code,Options);
выдается ошибка "Record not found", а иногда "Record/key deleted".
Я думал, что функция Locate возвращает false если запись не найдена. Кто из нас не прав?
iStat (2003-04-17 14:51:00) [1]Одинаковы не полностью, а только кусочки делающие одно и тоже
Anatoly Podgoretsky (2003-04-17 14:41:00) [2]Не верю, Станиславский.
При одинаковом коде не возможно различить программы, кроме как по имени.
iStat (2003-04-17 14:33:00) [3]>Anatoly Podgoretsky
Код-то одинаков и там и там
iStat (2003-04-17 14:28:00) [4]BDE у меня от 5 Delphi, это недостаточно новое?
Anatoly Podgoretsky (2003-04-17 14:21:00) [5]iStat (17.04.03 13:58)
Дело не во внешней среде, у тебя два приложения одно работает, а другое нет, так что вывод сделай сам.
blackman (2003-04-17 14:07:00) [6]>Или лучше BDE закопать...
Проще обновить или скачать полностью новое
Я же написал...
iStat (2003-04-17 13:58:00) [7]Ничего не понимаю!
Создал таблицы по новой с нуля, заполнил.
Создал новое приложение со строчками с выборкой и Locate.
Запускаю - работает.
Запускаю старое приложение - не работает.
Запускаю SQLExplorer, пишу "select * from таблица where code=111"
Выдает нужную строчку.
На что грешить? Куда еще копать? Или лучше BDE закопать...
alexLi (2003-04-17 11:58:00) [8]Не влияет, если только выборка, а не удаление или замена.
iStat (2003-04-17 11:14:00) [9]>alexLi
У меня сначала Query1 делает выборку из нескольких таблиц, в т.ч. и из той с которой связана Table1, затем
code=Query1.FieldByName("Code").AsInteger;
suc=Table1.Locate("Code",code,Options);
Это влияет на набор данных связанный с Table1?
blackman (2003-04-17 10:52:00) [10]>[D3]
Интересно, а что будет если с D1 попробовать ?
Anatoly Podgoretsky (2003-04-17 10:42:00) [11]iStat (17.04.03 09:43)
Там есть Restructure, в кочном удалить и пересоздать, самый действенный метод
alexLi (2003-04-17 10:25:00) [12]Еще вариант. На том же файле открыта еще одна таблица и в ней,
например, удалена запись. Если на текущей Table1 не сделать Refresh, то результатом будут имеенно такие сообщения. С точки зрения Table1 нет записи соответствующей индексу, хотя индексы в порядке.
iStat (2003-04-17 09:43:00) [13]Да, Paradox. А с помощью DBD как?
Anatoly Podgoretsky (2003-04-17 09:15:00) [14]А у тебя Парадокс?
Тогда вполне реально, но можно и без него, с помощью DBD
iStat (2003-04-17 08:58:00) [15]Набор данных однозначно не пустой, а вот с индексами скорей всего...
Восстановить индексы с помощью TUTIL32 - это реально?
АлексейК (2003-04-17 07:27:00) [16]Синтасис правильный. Только наименование поля пишется в одинарных кавычках, т. е. "field_name", а не "field_name". А вот при поиске по пустому набору данных может возникнуть ошибка.
ЮЮ (2003-04-17 07:11:00) [17]Locate, действительно, возвращает false если запись не найдена, а "Record not found", "Record/key deleted".скорей всего, Exception-ы возбуждаемые при работе с таблицей, имеющей поврежденные индексы.