Net.Data Verwaltung und Programmierung für OS/400


Beispiel für die SQL-Sprachumgebung

Das folgende Beispiel zeigt ein Makro mit einer DTW_SQL-Funktionsdefinition, die eine gespeicherte SQL-Prozedur aufruft. Es enthält drei Parameter mit unterschiedlichen Datentypen. Die Sprachumgebung DTW_SQL wandelt die Zeichenfolgenwerte in jedem Parameter in das richtige interne Format um und übergibt jeden Parameter nach Verweis an die gespeicherte SQL-Prozedur. Wenn die Verarbeitung der gespeicherten SQL-Prozedur beendet ist, wird die aktualisierte interne Darstellung in eine Zeichenfolge umgewandelt und in den entsprechenden Parameter gestellt.

%{***********************************************************
/*   DEFINE BLOCK
/************************************************************%}
DEFINE  {
 MACRO_NAME     = "TEST ALL TYPES"
 DTW_HTML_TABLE = "YES"
 Procedure      = "NDLIB.TESTTYPE"
 parm1          = "1"              %{SMALLINT     	%}
 parm2          = "11"             %{INT          ;%}
 parm3          = "1.1"            %{DECIMAL (2,1) 	%}
 %}

 %FUNCTION(DTW_SQL) CRTPROC(){
  CREATE PROCEDURE $(Procedure)
  ( INOUT SMALLINT,
	  INOUT INT,
	  INOUT DECIMAL(2,1))
  EXTERNAL NAME $(Procedure) LANGUAGE C SIMPLE CALL
  %MESSAGE{
    default : "$(DTW_DEFAULT_MESSAGE) : continuing.<br>": continue
  %}
 %}

 %FUNCTION(DTW_SQL)   myProc
  (INOUT SMALLINT    		parm1,
   INOUT INT       	   	parm2,
   INOUT DECIMAL(2,1)   	parm3){
CALL $(Procedure)
%}


%HTML(REPORT){
<HEAD>
<TITLE>Net.Data : SQL Stored Procedure: Example '$(MACRO_NAME)'. <?TITLE>
</HEAD>
<BODY BGCOLOR="#BBFFFF" TEXT="#000000" LINK="#000000">
<p><p>
Calling the function to create the stored procedure.
<p><p>
 @CRTPROC()
<hr>
<h2>
Values of the INOUT parameters
 prior to calling the stored procedure:<p>
</h2>
<b>parm1  (SMALLINT)</b><br>
$(parm1)<p>
<b>parm2  (INT)</b><br>
$(parm2)<p>
<b>parm3  (DECIMAL)</b><br>
$(parm3)<p>
<p>
<hr>
<h2>
Calling the function that executes the stored procedure.
</h2>
<p><p>
 @myProc(parm1,parm2,parm3)
<hr>
<h2>
Values of the INOUT parameters after
calling the stored procedure:<p>
</h2>
<b>parm1  (SMALLINT)</b><br>
$(parm1)<p>
<b>parm2  (INT)</b><br>
$(parm2)<p>
<b>parm3  (DECIMAL)</b><br>
$(parm3)<p>
</body>
%}

Wenn das Web-Makro in Bibliothek NETDATA, Datei SQLMAC und Member SQL1 gespeichert ist, wird auf das Makro verwiesen, indem die folgende URL-Adresse in einem Browser geladen wird:

http://hostname/cgi-bin/db2www/qsys.lib/netdata.lib/sqlmac.file/
  sql1.mbr/report


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]