Помогите откомпилировать DB2 UDB 8.1 SQL Stored Procedure!

aneretin
Posts: 16
Joined: 13 Feb 2002 10:01
Location: Texas, USA

Помогите откомпилировать DB2 UDB 8.1 SQL Stored Procedure!

Post by aneretin »

Коллеги,

Не могу откомпилировать 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.
===========================================================
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: Помогите откомпилировать DB2 UDB 8.1 SQL Stored Procedure!

Post by Sabina »

aneretin wrote:Коллеги,

Не могу откомпилировать SQL Stored Procedure. (VC++ я инсталлировал).
nmake выдает ошибку:
NMAKE : fatal error U1077: 'cl' : return code '0x80'

Такое ощущение, что он не может найти какойто файл(ы).


Если еще не поздно :mrgreen: попробуйте в Development Center, установить
database connection->properties->compile environment указывающей на
VCVARS32.BAT

Cабина
aneretin
Posts: 16
Joined: 13 Feb 2002 10:01
Location: Texas, USA

Post by aneretin »

It's too late.

zVlad and Lazy44 gave me a couple of useful advises, I followed them and got a result.

But thank you anyhow.
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

А я вот не понимаю
неужели Sp для DB2 пишется на C++ ?
Значит все операторы парзятся снова и снова ? Или все таки это можно побороть ?
И значит таблицы зависимости SP от таблиц нет ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
SVK
Уже с Приветом
Posts: 8241
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Post by SVK »

Я могу сказать кое-что про DB2/390. Про DB2/UDB пусть кто-нибудь еще уточнит.

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.

Return to “Вопросы и новости IT”