от доступа + VB 6 к COBOL - PullRequest
       2

от доступа + VB 6 к COBOL

0 голосов
/ 23 февраля 2011

знает ли кто-нибудь способ экспорта данных из базы данных access в код cobol?

Спасибо

Ответы [ 3 ]

1 голос
/ 24 февраля 2011

Фиксированный формат - определенно правильный путь, любой Cobol может читать файл фиксированного формата.

Простой способ создать файл фиксированного формата на любом диалекте SQL (оракул, DB2, H2 и т. Д.) - этоиспользуйте функции SQL String для создания одного поля и экспортируйте / запишите этот запрос в файл

Пример запроса MS Access:

   SELECT Left(Str([TblId])+Space(8),8)
      + Left(Str([tblkey])+Space(20),20)
      + Left([Details]+Space(30),30)
      + "<" AS ExportString
FROM Tbl_TI_IntTbls;

Для Cobol лучше всего было бы right justifyЗаполнение нулями и выравнивают десятичные точки из числовых полей.

Также, если это один раз, вы можете запустить запрос при доступе, скопировать / вставить вывод в текстовый редактор.

Ms Access также позволяет определять фиксированные форматы и использовать их для ввода(экспорт?), но я использовал их давно (я использовал их для импорта данных фиксированной ширины).Я оставлю обсуждение этого эксперту по доступу.

Вы также можете посмотреть на RecordEditor (http://record -editor.sourceforge.net / Record11.htm) / JRecord (http://jrecord.sourceforge.net/), потому что

  1. Оба позволяют просматривать / редактировать файл с помощью тетрадей Cobol - полезно для проверки соответствия экспорту определения Cobol
  2. Оба имеют параметр анализа тетрадей (меню файлов), который вычисляет начало / длинуполя в Cobol Copybook
  3. Оба имеют функцию копирования, которая будет копировать Csv-файл в / из Cobol-файла с использованием Cobol Copybook

Примечание: Этобесстыдный плагин для моего программного обеспечения

Я бы избегал файла с разделителями (в случае, если разделитель встречается в поле), но если вам необходимо, используйте символ затемнения, например `или ~ или ^

0 голосов
/ 27 февраля 2011

Access может экспортировать в форматы с фиксированным полем через своего мастера экспорта или простую программу VB6, или сценарий может сделать то же самое с помощью Jet OLEDB Provider и Jet Text IISAM с файлом Schema.ini, который определяет формат вывода.

Существуют ограничения на форматирование (без упакованных десятичных форматов со знаком или другой экзотики Cobol), но в целом этого должно быть достаточно для создания файлов, поддерживаемых большинством вариантов Cobol. Если вам действительно необходимо заполнить числовые поля слева от нуля, вы можете сделать это с помощью службы выражений Jet SQL, которая позволяет встроенным образом использовать подмножество функций VBA, определяя поле результата как текст в файле Schema.ini.

Если вам действительно нужен экспорт в файлы ISAM, лучше всего написать промежуточную программу Cobol для импорта сохраненных текстовых данных поля поля. Некоторые продукты Cobol могут даже включать утилиты для такого импорта.

0 голосов
/ 23 февраля 2011

Самый простой способ - экспортировать в фиксированный формат с доступом.Это собственный формат для описания данных файла Cobol.

Однако, если доступ не поддерживает это, вы можете экспортировать его в файл CSV (значения, разделенные запятыми) или TSV (значения, разделенные табуляцией).Cobol в своей форме ANSI не поддерживает это, но его очень легко разобрать с помощью простой строки.Например:

Perform Read-A-Record
Perform until End-Of-File

   Unstring Input-Record
     delimited by ","
     into Column-1-Field
          Column-2-Field
          ...
          Column-n-Field

   Perform Read-A-Record
End-Perform
...