:: Visual Foxpro, Foxpro for DOS
неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
[Админ Выдержка из правил]
Цитата:
В теме не обозначена суть, а лишь имеет малосодержательное название, например, "Помогите!", "Help" или "Есть вопрос" и тд

есть клас формы
в нем в ините перехватую некие параметры

LPARAMETERS par1,par2
thisform.spr=par1
thisform.ed=par2
DO CASE
CASE par2=0
thisform.Caption='Новий запис.'
CASE par2>0
thisform.Caption='Редагування запису.'
ENDCASE
DO CASE
CASE par1=1
thisform.container3.Top=68
thisform.Height=110
thisform.label1.Caption='МВ особа'
IF par2>0
SELECT 5
LOCATE FOR mol.id==par2
thisform.text1.ControlSource='mol.name'
ENDIF
CASE par1=4
thisform.container3.Top=72
thisform.Height=110
thisform.label1.Caption='Назва картки'
thisform.label2.Caption='Одиниц_ вим_ру'
thisform.text2.Visible= .T.
thisform.text2.Enabled= .F.
thisform.label2.Visible= .T.
thisform.command2.Visible= .T.
thisform.text2.Width=227
IF par2>0
SELECT 2
LOCATE FOR kart.id=par2
IF !FOUND()
messagebox('Запис незнайдено',16,'Помилка')
ENDIF
thisform.text1.ControlSource='kart.name'
thisform.id_od=kart.id_od_vim
ENDIF
ENDCASE
thisform.container1.init
thisform.container1.Container2.init

Так вот почемуто LOCATE FOR kart.id=par2 неработает
запись ненаходит
хотя par2 принимает значение которое 100% есть в kart.id
команда SELECT() возвращяет 2
недогоню почему неработает LOCATE

форма предназначена для редактирования разных справочников
выше только кусочек кода
при работе з другими областями отличными от 2 все ок

ДАЖЕ ЕСЛИ ПРОСТО ЕТУЖЕ ТАБЛИЦУ ОТКРЫТЬ В ДРУГОЙ ОБЛАСТИ ВСЕ ОК
короче мистика прям какято

подскажите куда рыть или может непарится поменять везде в приложении SELECT 2
на SELECT 9 и неморочить себе голову?



Отредактировано (16.05.05 12:56)


------------------
Мудрость - это когда мы перестаем слушать и начинаем прислушиваться.
Ratings: 0 negative/0 positive
Re: чегото недоганяю :(
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Не надо обращаться к рабочим областям по номерам. Нет никакой гарантии, что в той же самой рабочей области не будет открыта другая таблица.

Обращайтесь к рабочим областям по алиасу открытых в ней таблиц

SELECT mol
LOCATE FOR mol.id==par2

Проверить, что же именно оказалось в рабочей области можно так:

SELECT 2
?ALIAS()
?DBF()

Есть сильное подозрение, что там открыта другая таблица.
Ratings: 0 negative/0 positive
Re: чегото недоганяю :(
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
Владимир Максимов
Проверить, что же именно оказалось в рабочей области можно так:
SELECT 2
?ALIAS()
?DBF()



Есть сильное подозрение, что там открыта другая таблица.


?ALIAS()
?DBF()
возвращают то что нада kart и kart.dbf
Ratings: 0 negative/0 positive
Re: неработает locate
Burn

Сообщений: 5644
Откуда: Днепр
Дата регистрации: 02.01.2002
А поля с названием "par2" в таблице нет случайно?




------------------
В борьбе бобра с козлом побеждает бобро
Ratings: 0 negative/0 positive
Re: чегото недоганяю :(
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Посмотри в хелпе фокса топик

Strings, comparing

иногда пробелы входят сравнение,а иногда и нет. Не забываей, что поля ВСЕГДА дополняются пробелами.
Ratings: 0 negative/0 positive
Re: неработает locate
Татьяна_К

Сообщений: 107
Откуда: Москва
Дата регистрации: 30.10.2003
А id и par2 точно одного типа? Не может так случиться, что одно из них - цифирь, а другое - символ?




------------------
Программист на фоксе.
Ratings: 0 negative/0 positive
Re: неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
Burn
А поля с названием "par2" в таблице нет случайно?

нет

Влад Колосов
Посмотри в хелпе фокса топик
Strings, comparing

иногда пробелы входят сравнение,а иногда и нет. Не забываей, что поля ВСЕГДА дополняются пробелами.

kart.id это поле int(a)

Татьяна_К
А id и par2 точно одного типа? Не может так случиться, что одно из них - цифирь, а другое - символ?

генериласьбы ошибка типов данных


par2 принимает значение =1 в дебагере видно что оно нумерик
в поле kart.id точно есть запись id==1 но FOUND() упорно дает .F.
Ratings: 0 negative/0 positive
Re: чегото недоганяю :(
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
поставил я brow после sele 2
броус тоже отказался работать но на етот раз хоть ошибку дал


Object is not contained in a form
(Error 1938)
Ratings: 0 negative/0 positive
Re: неработает locate
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
Похоже слетел индекс, попробуй найти искомое значение через SEEK или отключи оптимизацию (SET OPTIMIZE OFF) и запусти пример, если найдет надо переиндекстровать табличку.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
Индексы удалил непомогло
Ratings: 0 negative/0 positive
Re: неработает locate
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
Давай сюда проблемную табличку и клд локейта, посмотрим.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: чегото недоганяю :(
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Grin!

Таблица разделяется между несколькими формами? Есть фильтр с выражениями типа что_то = ThisForm.txtSome.Value ?
Private DataSession вообще не используются?




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
Здраствуйте Игорь
да таблица действительно между несколькими формами
и действительно есть фильтр в одной из них
приватных сесий неиспользую
Ratings: 0 negative/0 positive
Re: неработает locate
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Ну и ну! О самом главном и не сказал
Ratings: 0 negative/0 positive
Re: неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
убрал фильтр все ок
но тыкните меня носом в чем я неправ
Ratings: 0 negative/0 positive
Re: неработает locate
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Как только установил фильтр - он сразу действует на все виды обращения к таблице, кроме SQL команд.
Ratings: 0 negative/0 positive
Re: неработает locate
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Grin!

А как он может что-то найти по Locate или SEEK , если фильтр это отсекает
В общем ты лучше изучи приватные датасессии и отучись работать по номеру раб. области - жизнь станет проще и приятнее




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: неработает locate
Grin
Автор

Сообщений: 1083
Откуда: Kiev
Дата регистрации: 05.12.2000
ок спа следующий проект начну делать на приватных сесиях
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 53 (Гостей: 53)

© 2000-2024 Fox Club 
Яндекс.Метрика