Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Помогите разобраться с Locate   Найти похожие ветки 

 
iStat   (2003-04-17 06:33) [0]

Народ, подскажите кого пинать. При выполнении

suc=Table1.Locate("Code",code,Options);

выдается ошибка "Record not found", а иногда "Record/key deleted".
Я думал, что функция Locate возвращает false если запись не найдена. Кто из нас не прав?


 
ЮЮ ©   (2003-04-17 07:11) [1]

Locate, действительно, возвращает false если запись не найдена, а "Record not found", "Record/key deleted".скорей всего, Exception-ы возбуждаемые при работе с таблицей, имеющей поврежденные индексы.


 
АлексейК   (2003-04-17 07:27) [2]

Синтасис правильный. Только наименование поля пишется в одинарных кавычках, т. е. "field_name", а не "field_name". А вот при поиске по пустому набору данных может возникнуть ошибка.


 
iStat   (2003-04-17 08:58) [3]

Набор данных однозначно не пустой, а вот с индексами скорей всего...
Восстановить индексы с помощью TUTIL32 - это реально?


 
Anatoly Podgoretsky ©   (2003-04-17 09:15) [4]

А у тебя Парадокс?
Тогда вполне реально, но можно и без него, с помощью DBD


 
iStat   (2003-04-17 09:43) [5]

Да, Paradox. А с помощью DBD как?


 
alexLi   (2003-04-17 10:25) [6]

Еще вариант. На том же файле открыта еще одна таблица и в ней,
например, удалена запись. Если на текущей Table1 не сделать Refresh, то результатом будут имеенно такие сообщения. С точки зрения Table1 нет записи соответствующей индексу, хотя индексы в порядке.


 
Anatoly Podgoretsky ©   (2003-04-17 10:42) [7]

iStat (17.04.03 09:43)
Там есть Restructure, в кочном удалить и пересоздать, самый действенный метод


 
blackman ©   (2003-04-17 10:52) [8]

>[D3]
Интересно, а что будет если с D1 попробовать ?


 
iStat   (2003-04-17 11:14) [9]

>alexLi

У меня сначала Query1 делает выборку из нескольких таблиц, в т.ч. и из той с которой связана Table1, затем
code=Query1.FieldByName("Code").AsInteger;
suc=Table1.Locate("Code",code,Options);
Это влияет на набор данных связанный с Table1?


 
alexLi   (2003-04-17 11:58) [10]

Не влияет, если только выборка, а не удаление или замена.


 
iStat   (2003-04-17 13:58) [11]

Ничего не понимаю!
Создал таблицы по новой с нуля, заполнил.
Создал новое приложение со строчками с выборкой и Locate.
Запускаю - работает.
Запускаю старое приложение - не работает.
Запускаю SQLExplorer, пишу "select * from таблица where code=111"
Выдает нужную строчку.
На что грешить? Куда еще копать? Или лучше BDE закопать...


 
blackman ©   (2003-04-17 14:07) [12]

>Или лучше BDE закопать...
Проще обновить или скачать полностью новое
Я же написал...


 
Anatoly Podgoretsky ©   (2003-04-17 14:21) [13]

iStat (17.04.03 13:58)
Дело не во внешней среде, у тебя два приложения одно работает, а другое нет, так что вывод сделай сам.


 
iStat   (2003-04-17 14:28) [14]

BDE у меня от 5 Delphi, это недостаточно новое?


 
iStat   (2003-04-17 14:33) [15]

>Anatoly Podgoretsky
Код-то одинаков и там и там


 
Anatoly Podgoretsky ©   (2003-04-17 14:41) [16]

Не верю, Станиславский.
При одинаковом коде не возможно различить программы, кроме как по имени.


 
iStat   (2003-04-17 14:51) [17]

Одинаковы не полностью, а только кусочки делающие одно и тоже



Страницы: 1 вся ветка

Текущий архив: 2003.05.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
3-23007
Сизых Михаил
2003-04-17 20:11
2003.05.08
Маска ввода для компонента TDBEdit


3-22961
Bill
2003-04-17 09:07
2003.05.08
Работа со значениями в DBGrid.


14-23351
anpv
2003-04-20 14:07
2003.05.08
MySQL


3-22971
Vetal
2003-04-16 16:30
2003.05.08
Рисование в заголовке TDBGrid


1-23204
Alek Aaz
2003-04-24 06:20
2003.05.08
Как распечатать выделенный фрагмент текста