Получите пакет ASCII от IIUG
В IDS 11.70 добавлена функция CHR()
; его нет в IDS 11.50.
Хорошая новость в том, что вы можете добавить эту функцию, потому что IDS - это расширяемый сервер. Хорошей новостью для вас является то, что вы можете получить соответствующий код на веб-сайте IIUG в Архив ПО в разделе Разное как ascii
.
Это должно позволить вам делать то, что вам нужно. (Примечание: я написал код еще когда - до того, как на каком-либо из серверов была встроена поддержка.)
Windows все усложняет
Я загружал файл ascii.unl
и получаю сообщение об ошибке, что количество столбцов в строке 13 не совпадает. Вы видели это раньше? Я использую Windows 2008. Ошибки:
846: Number of values in load file is not equal to number of columns.
847: Error in load file line 13.
Я не видел этого раньше, но я не пробовал этот файл в Windows и ... ну, скажем так, в Windows жизнь становится сложнее, чем в Unix (а в Unix это не так просто).
Прежде всего, файл данных должен иметь окончания строк CRLF вместо окончаний строк только для NL, которые являются стандартными для Unix. (Обратите внимание, что NL, новая строка, является другим именем для LF, перевода строки - он же '\n'
.) Для большинства строк в файле выгрузки это не проблема.
Две записи, для которых это может быть (есть) проблема, относятся к CR и LF - записи 13 и 10 соответственно. Теоретически, если запись для строки 10 содержит (в строковой нотации C) "10|\\\n\r\n"
(то есть 10, вертикальная черта, обратная косая черта, новая строка, CRLF), все должно быть в порядке; отсутствие сообщения об ошибке в строке 10 говорит о том, что все в порядке.
Точно так же запись в строке 13 - "13|\r\r\n"
, что явно вызывает горе. Самое простое пробное исправление - добавить сюда обратную косую черту: "13|\\\r\r\nn"
. Обратная косая черта означает, что следующий символ не имеет особого значения. Если это не сработает, нам, вероятно, придется попробовать шестнадцатеричную escape-нотацию: "13|\\0d\r\n"
- и использовать dbaccess -X
, чтобы включить шестнадцатеричную escape-нотацию.
Если повезет, один из этих двух (или оба) сработает. Если ни один из них не работает, вернитесь, и мы попробуем придумать что-нибудь еще.
person
Jonathan Leffler
schedule
21.01.2017