:: Visual Foxpro, Foxpro for DOS
Ошибка при передаче переменных процедуре
rusl

Сообщений: 200
Откуда: СПб
Дата регистрации: 01.02.2005
передаю параметры с DO ... WITH ..., а в подпроцедуре на строке LPARAMETERS Фокс выдает ошибку "No PARAMETER statement is found. (1238)", "Не найден оператор PARAMETER".

Точнее это выглядит так:

DO freq_count WITH lcSiteCatalog, lnI, laFile[m.lnI,1], min_count_words, lns, lcCursorName1, cd_worktables


PROCEDURE freq_count
LPARAMETERS lcSiteCatalog, lnI, laFile[m.lnI,1], min_count_words, lns, lcCursorName1, cd_worktables

В чем здесь дело?
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Vladimir_Knyr
Автор

Сообщений: 1711
Откуда: г. Енисейск
Дата регистрации: 15.12.2003
Цитата:
LPARAMETERS lcSiteCatalog, lnI,laFile[m.lnI,1]

должно быть простое имя а не попытка сослаться на элемент массива



Отредактировано (31.03.05 18:41)


------------------
хороший код работать будет и обязан, а плохой не жалко.
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
или передавай туда весь массив через @
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
rusl

Сообщений: 200
Откуда: СПб
Дата регистрации: 01.02.2005
массив здесь оказался не причем. Я убрал его вообще, а все равно фокс выдает ту же самую ошибку.
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Vladimir_Knyr
Автор

Сообщений: 1711
Откуда: г. Енисейск
Дата регистрации: 15.12.2003
Попробуй эту процедуру записать в отдельном файле!
сам файл назови именем процедуры freq_count
а строку PROCEDURE ... вообще убери
что бы LPARAMETERS ... была самой первой строчкой!
(хоть причина и в другом, просто до массива знать не дошло, но он однозначно не покатит - в твоем варианте)

прицепи файлик с процедурой этой к проекту и перекомпили.




------------------
хороший код работать будет и обязан, а плохой не жалко.
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
у тебя случайно в активной рабочей области не полей с такили именами?
LPARAMETERS lcSiteCatalog, lnI, min_count_words, lns, lcCursorName1, cd_worktables
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
rusl

Сообщений: 200
Откуда: СПб
Дата регистрации: 01.02.2005
Неа.. Все дело оказалось в min_count_words - константа, которую определил в родительской процедуре
#Define min_count_words 21

Из-за нее почему то все глючит... может константы нельзя передавать?
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Vladimir_Knyr
Автор

Сообщений: 1711
Откуда: г. Енисейск
Дата регистрации: 15.12.2003
Цитата:
может константы нельзя передавать?
Можно !
только тогда имя константы описанную по #define нельзя применять польше ни как

т.е. примерно так
#Define min_count_words 21
DO freq_count WITH min_count_words
. . .
PROCEDURE freq_count
LPARAMETERS <имя_переменной_отличное_от min_count_words>




------------------
хороший код работать будет и обязан, а плохой не жалко.
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
rusl

Сообщений: 200
Откуда: СПб
Дата регистрации: 01.02.2005
а-а-а... тоесть дать ей другое название?
Ratings: 0 negative/0 positive
Re: Ошибка при передаче переменных процедуре
Vladimir_Knyr
Автор

Сообщений: 1711
Откуда: г. Енисейск
Дата регистрации: 15.12.2003
ну конечно
это работает так:

а = 5
do proc with a

wait str(a) window && здесь a = 6

cancel

procedure proc
lparameters b && переменная b рождается, и b=a
b = b + 1 && формула чисто для примера
return b && здесь a=b и переменная b убивается (т.к. она ЛОКАЛЬНАЯ !)




------------------
хороший код работать будет и обязан, а плохой не жалко.
Ratings: 0 negative/0 positive


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

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

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