Cláusula APPEND Shape

La cláusula APPEND del comando shape anexa una columna o varias columnas a un objeto Recordset. Con frecuencia, estas columnas son columnas de capítulo, que hacen referencia a un objeto Recordset secundario.

Sintaxis

SHAPE [parent-command [[AS] parent-alias]] APPEND column-list  

Descripción

La cláusula se compone de las siguientes partes:

parent-command
Cero o una de las siguientes opciones (puede omitir completamente la parte parent-command):

  • Comando de proveedor entre paréntesis ("{}") que devuelve un objeto Recordset. El comando se emite al proveedor de datos subyacente y su sintaxis depende de los requisitos de ese proveedor. Normalmente, será el lenguaje SQL, aunque ADO no requiere ningún lenguaje de consulta determinado.

  • Otro comando shape incrustado entre paréntesis.

  • Palabra clave TABLE, seguida del nombre de una tabla en el proveedor de datos.

parent-alias
Alias opcional que hace referencia al objeto Recordset primario.

column-list
Uno o varios de los elementos siguientes:

  • Columna de agregación.

  • Columna calculada.

  • Nueva columna creada mediante la cláusula NEW.

  • Columna de capítulo. Definición de columna de capítulo entre paréntesis ("()"). Vea la siguiente sintaxis.

SHAPE [parent-command [[AS] parent-alias]]  
   APPEND (child-recordset [ [[AS] child-alias]   
      RELATE parent-column TO child-column | PARAMETER param-number, ... ])  
   [[AS] chapter-alias]   
   [, ... ]  

Comentarios

child-recordset

  • Comando de proveedor entre paréntesis ("{}") que devuelve un objeto Recordset. El comando se emite al proveedor de datos subyacente y su sintaxis depende de los requisitos de ese proveedor. Normalmente, será el lenguaje SQL, aunque ADO no requiere ningún lenguaje de consulta determinado.

  • Otro comando shape incrustado entre paréntesis.

  • Nombre de un objeto Recordset con forma existente.

  • Palabra clave TABLE, seguida del nombre de una tabla en el proveedor de datos.

child-alias
Alias que hace referencia al objeto Recordset secundario.

parent-column
Columna del objeto Recordset devuelto por parent-command.

child-column
Columna del objeto Recordset devuelto por parent-command.

param-number
Vea Funcionamiento de los comandos con parámetros.

chapter-alias
Alias que hace referencia a la columna de capítulo anexada al elemento primario.

Nota

La cláusula "parent-column TO child-column" es realmente una lista, donde cada relación definida está separada por una coma.

Nota

La cláusula que sigue a la palabra clave APPEND es realmente una lista, donde cada cláusula está separada por una coma y define otra columna que se va a anexar al elemento primario.

Al crear comandos de proveedor a partir de la entrada del usuario como parte de un comando SHAPE, SHAPE tratará al comando de proveedor facilitado por el usuario como una cadena opaca y lo pasará fielmente al proveedor. Por ejemplo, en el siguiente comando SHAPE,

SHAPE {select * from t1} APPEND ({select * from t2} RELATE k1 TO k2)  

SHAPE ejecutará dos comandos: select * from t1 y (select * from t2 RELATE k1 TO k2). Si el usuario proporciona un comando compuesto que consta de varios comandos de proveedor separados por punto y coma, SHAPE no sabrá distinguir la diferencia. Así que, en el siguiente comando SHAPE,

SHAPE {select * from t1; drop table t1} APPEND ({select * from t2} RELATE k1 TO k2)  

SHAPE ejecuta select * from t1; drop table t1 y (select * from t2 RELATE k1 TO k2), sin darse cuenta de que drop table t1 es un comando de proveedor independiente y, en este caso, peligroso. Las aplicaciones siempre deben validar la entrada del usuario para evitar que se produzcan estos posibles ataques de hackers.

Esta sección contiene los temas siguientes.

Consulte también

Ejemplo de la forma de datos
Gramática formal de forma
Comandos Shape en General