Easytrieve A010 Неверная ссылка на файл
Я получаю сообщение об ошибке в этой строке моей программы easytrieve..
JOB INPUT NULL MASTER-FILE
GET DATAPRM <~~~~~~~ LINE 59
DO WHILE NO EOF DATAPRM
...
GET DATAPRM
END-DO
..
59******A010 INVALID FILE REFERENCE - DATAPRM
..
У меня есть DLBL, как это..
//DLBL DATAPRM, 'DATAPRM.SAM'
Я пытаюсь заполнить мастер-файл данными, используя входной файл DATAPRM (карта) ... записи читаются (я полагаю, так как мой счетчик движется), но, к сожалению, до того, как программа завершает работу, возникает ошибка... может быть, EOF?
1 ответ
У вас нет остановки в вашей программе. Не только в коде, который вы показали, но и где угодно. Или, если вы делаете, это условно, и условие не было выполнено.
Easytrieve Plus делает "автоматический цикл". Обычно с файлом, указанным в операторе JOB, но когда указано NULL, оно просто циклически повторяется от последнего оператора в JOB до JOB.
После того, как вы дойдете до EOF в вашем DO, вам нужно ОСТАНОВИТЬ, когда вы закончите все остальное. Что происходит сейчас, так это то, что вы получаете EOF, выходите из DO, снова зацикливаетесь на вершине (JOB), а затем выполняете GET после EOF, так что ******A010 INVALID FILE REFERENCE - DATAPRM