Текущее время: Вс, июл 13 2025, 09:38

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: OPEN DATASET... and dbf file.
СообщениеДобавлено: Чт, сен 13 2012, 15:15 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 02 2009, 14:37
Сообщения: 44
Всем добрый день! Возникла следующая проблема:
Читаю файл dbf c application server c помощью OPEN DATASET в бинарном режиме (OPEN DATASET appl_nam FOR INPUT IN BINARY MODE) .
Потом делаю обрабатываю данные с помощью парсера. И вообщем-то все верно отрабатывает, НО файл dbf считывает не весь, т.е. предположим в файле у меня 7 строк + заголовок, а считывает только заголовок и 5 позиций. Остальные две прочитать не получается. Уже и на позиции переводил чтение,но sy-subrc возвращает 4.
Подскажите в чем может быть проблема?
P.S. Считывать необходимо с помощью DATASET, т.к. программа запускается в фоновом режиме.
Заранне спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OPEN DATASET... and dbf file.
СообщениеДобавлено: Чт, сен 13 2012, 16:41 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 02 2009, 14:37
Сообщения: 44
TYPES: BEGIN OF b_char,
line(1024) TYPE x,
END OF b_char.

appl_nam = '/usr/sap/trans/edi/inbox/test/new.DBF'.

DATA: bt_data TYPE b_charOCCURS 0 WITH HEADER LINE..
OPEN DATASET appl_nam FOR INPUT IN BINARY MODE.

IF sy-subrc <> 0.
RAISE file_not_opened.
ELSE.
DO.
CLEAR lt_data-line.
READ DATASET appl_nam INTO bt_data-line.
IF sy-subrc NE 0.
EXIT.
ENDIF.
APPEND bt_data.
ENDDO.
ENDIF.

CLOSE DATASET appl_nam.
CALL FUNCTION 'SCMS_BINARY_TO_STRING'
EXPORTING
input_length = 2048
* FIRST_LINE = 0
* LAST_LINE = 0
* MIMETYPE = ' '
* ENCODING =
IMPORTING
text_buffer = text_buffer
* OUTPUT_LENGTH =
TABLES
binary_tab = bt_data
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


Вот этот долбанный файл https://dl.dropbox.com/u/68570116/new.dbf

HELP!Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OPEN DATASET... and dbf file.
СообщениеДобавлено: Чт, сен 13 2012, 18:36 
Ассистент
Ассистент

Зарегистрирован:
Ср, окт 06 2004, 12:06
Сообщения: 35
Пол: Мужской
rc = 4 Read and the end of the file was reached or there was an attempt to read after the end of the file(Во время чтения достигнут конец файла или имелась попытка читать после конца файла
)

DO.
CLEAR lt_data-line.
READ DATASET appl_nam INTO bt_data-line.
IF sy-subrc NE 0.
EXIT.
ENDIF.
APPEND bt_data.
ENDDO.
if not bt_data-line is initial.
APPEND bt_data.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OPEN DATASET... and dbf file.
СообщениеДобавлено: Пт, сен 14 2012, 11:05 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 02 2009, 14:37
Сообщения: 44
Блин. Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: OPEN DATASET... and dbf file.
СообщениеДобавлено: Пт, май 30 2014, 11:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2012, 10:08
Сообщения: 128
Друзья, делаю все так-же. Но у меня какая-то фигня выходит.
CONCATENATE 'C:\TEMP\' sy-datum+6(2) sy-datum+4(2) sy-datum(4) '_KG.DBF' INTO v_path. *(получается файл типа 30052014_KG.DBF)
OPEN DATASET v_path FOR INPUT IN LEGACY BINARY MODE CODE PAGE '1504'.
IF sy-subrc <> 0.
RAISE file_not_opened.
ELSE.
DO.
CLEAR bt_data-line.
READ DATASET v_path INTO bt_data-line.
IF sy-subrc NE 0.
EXIT.
ENDIF.
APPEND bt_data.
ENDDO.
if not bt_data-line is initial.
APPEND bt_data.
endif.
ENDIF.
Опен датасет проходит, но когда делаю рид, выдает ошибку 4ю. И строка пустая. В справке читал, что 4я ошибка для рида - типа достигнут конец файла. В чем может быть бок???


Когда пишу адрес апп сервера, то он чето считывает. Но теперь я не знаю, как правильно засунуть это все в таблицу внутреннюю.

_________________
Бог умер (с) Ницше
Ницше умер (с) Бог
Хах.. (с) Смерть


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB