W Pub: ABAP Cursosentenciaexecsqlendexec

<html>

<head>

<title>EXEC SQL .. ENDEXEC</title>

</head>

<BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000">

<p align="left">⚠ &lt;b&gt;<span class="titulo">EXEC SQL .. ENDEXEC</span>⚠ &lt;/b&gt;</p>

<p align="left">⚠ &lt;b&gt;Definicin⚠ &lt;/b&gt;</p>

<p align="left">Una sentencia nativa debe incluirse en un bloque

  EXEC SQL .. ENDEXEC.</p>

<p align="left">⚠ &lt;b&gt;Sintaxis:⚠ &lt;/b&gt;</p>

<pre>EXEC SQL [ PERFORMING <rutina> ].

<sentencia-nativa-SQL> [ ; ]

ENDEXEC.</pre>

<p align="left">El ⚠ &lt;i&gt;punto y coma⚠ &lt;/i&gt; (;) es opcional. El ⚠ &lt;i&gt;punto⚠ &lt;/i&gt;

  (.) utilizado en cualquier sentencia ABAP/4 para marcar el final de sta, no 
  puede ser utilizado en el bloque. Dentro del bloque, la sentencia ⚠ &lt;i&gt;doble comilla⚠ &lt;/i&gt; 
  (") no marca un comienzo de comentario. La tabla utilizada es una sentencia 
  nativa no tiene por que estar definida en el diccionario ABAP/4, por lo tanto, 
  no es necesario declarar la tabla con la sentencia ⚠ &lt;a href="tables.htm" tppabs="tables.htm"&gt;TABLES⚠ &lt;/a&gt;. 
  El sistema no procesa de forma automtica el campo mandante. La comunicacin 
  entre la tabla de la base de datos y el programa se realiza a travs de las 
  variables de entorno, que se identifican en la sentencia nativa gracias al carcter 
  ⚠ &lt;i&gt;dos puntos⚠ &lt;/i&gt; (:). Como variable de entorno se puede utilizar campos elementales, 
  as como campos estructurados.</p>

<ul>

  <li> 
    <p align="left">Si el resultado de la sentencia ⚠ &lt;a href="select_endselect.htm" tppabs="select_endselect.htm"&gt;SELECT⚠ &lt;/a&gt; 
      es una tabla, se puede utilizar la clusula PERFORMING. Por cada lnea leda 
      en la sentencia ⚠ &lt;a href="select_endselect.htm" tppabs="select_endselect.htm"&gt;SELECT⚠ &lt;/a&gt;, se procesa la 
      rutina especificada en PERFORMING.
  </li>

</ul>

<p align="left">⚠ &lt;b&gt;Ejemplo:⚠ &lt;/b&gt;</p>

<pre>EXEC SQL.

  CREATE TABLE AVERI_CLNT (
         CLIENT   CHAR(3)  NOT NULL,
         ARG1     CHAR(3)  NOT NULL,
         ARG2     CHAR(3)  NOT NULL,
         FUNCTION CHAR(10) NOT NULL,
         PRIMARY KEY (CLIENT, ARG1, ARG2)
                          )

ENDEXEC.</pre>

<p>En este ejemplo se crea la tabla AVERI_CLNT. Y con el siguiente

  ejemplo leemos dicha tabla:</p>

<pre>DATA: F1(3), F2(3), F3(3).

F3 = ' 1 '

EXEC SQL PERFORMING WRITE_AVERI_CLNT.

  SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT
         WHERE ARG2 = :F3

ENDEXEC.

FORM WRITE_AVERI_CLNT.

  WRITE: / F1, F2.

ENDFORM.</pre>

<p>⚠ &lt;b&gt;Vase tambin:⚠ &lt;/b&gt; ⚠ &lt;a href="select_endselect.htm" tppabs="select_endselect.htm"&gt;SELECT⚠ &lt;/a&gt;,

  ⚠ &lt;a href="insert.htm" tppabs="insert.htm"&gt;INSERT⚠ &lt;/a&gt;, ⚠ &lt;a href="update.htm" tppabs="update.htm"&gt;UPDATE⚠ &lt;/a&gt;, ⚠ &lt;a href="modify.htm" tppabs="modify.htm"&gt;MODIFY⚠ &lt;/a&gt;.</p>

</body>

</html>