2015-01-30 2 views
1

Я начал программировать в RPG ILE, и мне интересно, что это за формат записи? Я знаю, что он должен быть определен в физическом/логическом/отображаемом файле, но что именно он делает? В старой книге RPG от 97 я обнаружил, что «Каждый формат записи определяет, что написано или прочитано с рабочей станции в одной операции ввода-вывода»Что такое формат записи IBM i (AS400)

В другой книге я нашел определение того, что формат записи описывает поля в записи (например, длина, тип, например char или десятичный?).

И что же означает, что «каждая запись в физическом файле должна иметь идентичный макет записи»?

Я немного смущен прямо сейчас. Все еще не уверен, что такое формат записи: F.

ответ

4

Все еще не уверены, что формат записи: F

Спецификация F: Эта спецификация также известна как спецификация файла. Здесь мы объявляем все файлы, которые мы будем использовать в программе. Файлы могут быть физическим файлом, логическим файлом, отображаемым файлом или файлом принтера. Файлы сообщений не декларируются в спецификации F.

Что именно означает, что «каждая запись в физическом файле должна иметь идентичный макет записи»?

Каждая запись в одном физическом файле имеет одинаковую компоновку.

Давайте сделаем запись размером 40 символов.

----|---10----|---20----|---30----|---40 
20150130 DEBIT  00002100 
20150130 CREDIT 00

Бар с номерами не является частью макета записи. Он там, поэтому мы можем считать столбцы.

Первое поле в макете записи - это дата в формате yyyymmdd. Это занимает до 8 символов, из положения 1 в положение 8.

Второе поле 2 пустых пространств, от позиции 9 к позиции 10.

Третье поле является индикатором дебета/кредита. Он занимает 10 символов, от позиции 11 до позиции 20.

Четвертое поле - сумма дебетования/кредита. Он занимает 8 позиций, от позиции 21 до позиции 28. Формат считается 9 (6) V99. Другими словами, есть подразумеваемой десятичной точки между позициями 26 и 27.

Пятое поле более пустые пространства, от положения 29 в положение 40.

Каждая запись в этом файле есть эти 5 полей, все определенные так же.

+3

Формат записи в точности соответствует описанию книги: это буфер ввода-вывода. Если вы знакомы с C, это очень похоже на struct(). Формат записи дает имя для конкретной компоновки полей в буфере. –

0

«Формат записи» - это именованная структура, которая используется для ввода/вывода файлов устройства. Он содержит описания каждого столбца в «записи» (или «строки»). Конкретная комбинация типов и размеров данных и количества и порядка столбцов хэшируется в значение, известное как «идентификатор формата записи».

Важной целью является включение компиляторами «идентификатора формата записи» в скомпилированные программные объекты для использования при открытии соответствующего файла.Система будет сравнивать идентификатор формата от объекта программы до текущего идентификатора формата файла. Если они не совпадают, система сообщит программе, что определение файла изменилось с момента компиляции программы. Затем программа может знать, что она, вероятно, будет читать данные, которые не соответствуют определениям, которые она знает. Почти всем таким программам разрешается сбой, отправляя сообщение, которое указывает, что уровень формата изменился, то есть «проверка уровня» не удалась.

Обработка идентификаторов формата коренится в исходном «исходном файловом вводе/выводе», в котором используются такие параметры, как SQL. Он является частью интеграции между DB2 и различными компиляторами программы, доступными в системе.

«Нативная» файловая система базы данных была разработана с использованием принципов, которые в итоге привели к SQL. Таблица SQL должна содержать строки, которые содержат одну и ту же серию определений столбцов. Это почти то же самое, что сказать "every record within a physical file must have an identical record layout".

Файлы физической базы данных можно рассматривать как таблицы SQL. Логические файлы базы данных можно рассматривать как представления SQL. Таким образом, все записи в физическом файле будут иметь одинаковые определения, но есть некоторые возможные вариации в логических файлах.

1

Новые или молодые разработчики считают, что каждая запись в физическом файле должна быть идентичной, но в древние времена динозавры шли по земле и в одном файле вы могли бы иметь несколько типов записей или «форматы записи», так как имя указывает, что формат записи - это формат записи в файле.

+1

Хотя это правда, что в древние времена может быть несколько типов записей, физический файл базы данных в системах AS/400 серии позволит использовать только один формат записи. «Формат записи» является особым термином в этих системах и указывает конкретную единую структуру записи. – user2338816

+0

Понятия полей, таблиц, схем и т. Д. Являются относительно новыми. В более старых версиях iSeries эти понятия не существуют. У вас были ** плоские файлы **. С помощью этих плоских файлов в программах должны быть определены ** формат записи **. Но это нормально. Это обсуждение не имеет никакой пользы. –

+0

Нет, плоские файлы на системах серии AS/400 всегда имели единый (неструктурированный) формат записи. Это не изменилось и сегодня. Однако, как вы отметили, программа может (и по-прежнему может) предоставить структуру, описанную в программе, которая накладывает формат записи файла. Посмотрите на описание внешнего файла, чтобы убедиться, что в базе данных существует только один формат записи; и для ** физического файла ** в программу может быть указан только один формат ** ** **. Но можно описать несколько «имен записей» (другое определение из названия «формат записи»). – user2338816

0

Формат записи Это то, чему вы учитесь в старой школе. Вы читаете файл (таблицу) и обновляете/записываете через формат записи.

DSPFD FILE(myTable) 

Затем вы можете увидеть все о файле. Здесь указано название формата записи.

Смежные вопросы