Коллеги,
Не могу откомпилировать SQL Stored Procedure. (VC++ я инсталлировал).
nmake выдает ошибку:
NMAKE : fatal error U1077: 'cl' : return code '0x80'
Такое ощущение, что он не может найти какойто файл(ы).
Я сам Ораклист и в DB2 не силен.
Помогите, кто может!
Log:
===========================================================
ALEXANDERUSER.PROCEDURE1 - Build started.
Create stored procedure returns -7032.
-- LOG FILE P5220126.log FOR PROCEDURE ALEXANDER.PROCEDURE1
-- DB2_SQLROUTINE_PREPOPTS=
-- PREP/BIND MESSAGES FOR C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp\P5220126.sqc
LINE MESSAGES FOR P5220126.sqc
------ --------------------------------------------------------------------
SQL0060W The "C" precompiler is in progress.
SQL0091W Precompilation or binding was ended with "0"
errors and "0" warnings.
-- CONTENTS OF C:\PROGRA~1\IBM\SQLLIB\function\routine\sr_cpath.bat
-- CONTENTS OF C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp\P5220126.BAT
@echo on
set SQLROUTINE_FILENAME=P5220126
set db2path=C:\PROGRA~1\IBM\SQLLIB
-- COMPILATION COMMAND:
nmake /f C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc.mak
-- CONTENTS OF C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp\P5220126.def
LIBRARY P5220126
EXPORTS _pgsjmp@8
pgsjmp=_pgsjmp@8
-- COMPILATION MESSAGES FOR C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp\P5220126.c
-- C COMPILATION ERROR CODES: 0 0 2
C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp>set SQLROUTINE_FILENAME=P5220126
C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp>set db2path=C:\PROGRA~1\IBM\SQLLIB
C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc\TOOLSDB\ALEXANDER\tmp>nmake /f C:\PROGRA~1\IBM\SQLLIB\function\routine\sqlproc.mak
cl -Ox -W2 -TC -D_X86_=1 -MD -I"C:\PROGRA~1\IBM\SQLLIB\include" P5220126.c /link -dll /out:P5220126.dll -def:P5220126.def "C:\PROGRA~1\IBM\SQLLIB\lib\db2api.lib"
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
NMAKE : fatal error U1077: 'cl' : return code '0x80'
Stop.
-- END OF LOG FILE (SQLCODE: -7032)
ALEXANDER.PROCEDURE1 - Build failed.
ALEXANDER.PROCEDURE1 - Roll back completed successfully.
===========================================================
Помогите откомпилировать DB2 UDB 8.1 SQL Stored Procedure!
-
- Posts: 16
- Joined: 13 Feb 2002 10:01
- Location: Texas, USA
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: Помогите откомпилировать DB2 UDB 8.1 SQL Stored Procedure!
aneretin wrote:Коллеги,
Не могу откомпилировать SQL Stored Procedure. (VC++ я инсталлировал).
nmake выдает ошибку:
NMAKE : fatal error U1077: 'cl' : return code '0x80'
Такое ощущение, что он не может найти какойто файл(ы).
Если еще не поздно попробуйте в Development Center, установить
database connection->properties->compile environment указывающей на
VCVARS32.BAT
Cабина
-
- Posts: 16
- Joined: 13 Feb 2002 10:01
- Location: Texas, USA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 8249
- Joined: 23 Jul 2003 03:53
- Location: SPb - KW - NY - CT - MD
Я могу сказать кое-что про DB2/390. Про DB2/UDB пусть кто-нибудь еще уточнит.
IBM использует SQL препроцессор почти для всех поддерживаемых языков (начиная от Ассемблера). Препроцессор и парсует встроенные SQL.
Более того, даже SP написанные на IBM-ском SQL-language промежуточно перекомпилируются через C.
Операторы бывают статические (embedded) - их парсует препроцессор, либо динамические - их парсуют каждый раз. Но в случае динамических операторов также есть возможность парсовать их один раз, и хранить "Prepared SQL Statement" с разрешенными параметрами-"маркерами", которые связываются с host-variables перед исполнением.
Есть. Там довольно запутанная по описанию, но несложная для простого тупого повторения система генерации препроцессорами таблиц DBRM, и затем связывания (командами BIND) в PLAN либо PACKAGE уже для использования собственно в DB2 при выполнении.
Dmitry67 wrote:А я вот не понимаю неужели Sp для DB2 пишется на C++ ?
IBM использует SQL препроцессор почти для всех поддерживаемых языков (начиная от Ассемблера). Препроцессор и парсует встроенные SQL.
Более того, даже SP написанные на IBM-ском SQL-language промежуточно перекомпилируются через C.
Dmitry67 wrote:Значит все операторы парзятся снова и снова? Или все таки это можно побороть?
Операторы бывают статические (embedded) - их парсует препроцессор, либо динамические - их парсуют каждый раз. Но в случае динамических операторов также есть возможность парсовать их один раз, и хранить "Prepared SQL Statement" с разрешенными параметрами-"маркерами", которые связываются с host-variables перед исполнением.
Dmitry67 wrote:И значит таблицы зависимости SP от таблиц нет ?
Есть. Там довольно запутанная по описанию, но несложная для простого тупого повторения система генерации препроцессорами таблиц DBRM, и затем связывания (командами BIND) в PLAN либо PACKAGE уже для использования собственно в DB2 при выполнении.
LG - Life's good.
But good life is much better.
But good life is much better.