Обращение к прекомпилятору

Для вызова РСС необходимо в интерпретаторе команд операционной системы подать команду:

PCC [-{M|E|L|I}ASDTOJWVC[+] P{< число точек входа >}]
[[-N < имя сервера >]
    -U < имя пользователя >[/< пароль >]]< входной файл > [< выходной файл >]

Описание

  1. C – задает основной язык C (этот параметр используется по умолчанию).

  2. C+ – задает основной язык С++.

  3. D – задает генерацию отладочной информации (вставляет директиву #line на каждой строке, содержащей оператор встроенного языка). Генерация отладочной информации позволяет просматривать в отладчике прекомпилируемый, а не результирующий текст программы. По умолчанию она отключена.

  4. J – режим совместимости с ESQL СУБД Ingres.

  5. W – получить версию прекомпилятора.

  6. O – задает Oracle метод обработки кодов завершения. При задании этого ключа в тексте C/C++ программы будут генерироваться коды для проверки кодов завершения через значение поля sqlca.sqlcode, при отсутствии ключа проверка кодов завершения будет выполняться через глобальную переменную ErrPCI_.

  7. A – задает режим запрета заполнения коммуникационной области sqlca (действителен только при отсутствии опции -O).

  8. T – разрешает использовать директивы управления многопоточностью (ENABLE THREADS, CONTEXT {ALLOCATE | USE | FREE}).

  9. N< имя сервера > – задает имя удаленного ЛИНТЕР-сервера.

  10. U< имя пользователя/пароль > – задает имя и пароль, под которыми прекомпилятор будет иметь доступ к БД как пользователь (большие и малые буквы при вводе имени и пароля пользователя различаются).

  11. S – задает режим проверки семантики предложений встроенного SQL. Этот ключ должен использоваться, если предполагается создание хранимых процедур непосредственно в процессе прекомпиляции модуля. Иначе эта опция не должна использоваться.

  12. M, E, L, I – задают область видимости области описания дескрипторов (переменная sqlda):

    • M – главный модуль: переменная sqlda описана и инициализирована в нем;

    • E – переменная sqlda внешняя по отношению к модулю;

    • L – переменная sqlda, заданная в модуле, локальная;

    • I – переменная sqlca импортируется из библиотеки.

  13. V – задает режим совместимости со старой версией PCI по исполнению операторов PREPARE, OPEN, FETCH.

Примечания

  1. Буквенные коды ключей допустимо задавать большими и малыми буквами.

  2. Если указывается одновременно несколько ключей, все они пишутся слитно, и знак дефиса ставится один раз перед всей группой ключей, например: -cdo. Исключение составляют ключи -n и -u, которые должны вводиться отдельно.

  3. Если используется ключ -s, обязательно должны задаваться ключи -n (только для удаленного сервера, не объявленного сервером по умолчанию), -u.

  4. Параметр < входной файл > задает спецификацию файла, содержащего исходный текст прекомпилируемой программы. Если расширение имени файла не задано, по умолчанию используется .pc.

  5. Параметр < выходной файл > задает спецификацию файла, в который должен быть помещен результат прекомпиляции (исходный текст программы на языке С). Если спецификация выходного файла не задана, то он создается в текущем каталоге, а его имя совпадает с именем входного файла. Если расширение имени выходного файла не задано, оно берется равным .c, если основным языком является C, или .cpp, если основным языком является C++.

Примеры

  1. pcc -c sample.pc
    (выходной файл sample.c)
  2. pcc -c+ sample.pc
    (выходной файл sample.cpp)
  3. pcc -dc+ sample.pc
    (выходной файл sample.cpp с отладочной информацией)
  4. pcc sample.pc sample1.cpp
    (входной файл sample.pc, выходной файл sample1.cpp)
  5. pcc -c+s –nLinter -uSYSTEM/MANAGER8 sample.pc
    (выходной файл sample.cpp; пользователь SYSTEM с паролем MANAGER8 подключается к ЛИНТЕР-серверу)