Cláusula APPEND de forma

A cláusula APPEND do comando shape acrescenta uma ou mais colunas a um Recordset. Com frequência, essas colunas são colunas de capítulo, que se referem a um Recordset filho.

Sintaxe

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

Descrição

As partes desta cláusula são as seguintes:

parent-command
Zero ou um dos seguintes (você pode omitir completamente o parent-command):

  • Um comando de provedor entre chaves ("{}") que retorna um objeto Recordset. O comando é emitido para o provedor de dados subjacente, e a sintaxe dele depende dos requisitos desse provedor. Normalmente, essa será a linguagem SQL, embora o ADO não exija nenhuma linguagem de consulta específica.

  • Outro comando shape inserido entre parênteses.

  • A palavra-chave TABLE, seguida do nome de uma tabela no provedor de dados.

parent-alias
Um alias opcional que se refere ao Recordset pai.

column-list
Uma ou mais das seguintes opções:

  • Uma coluna de agregação.

  • Uma coluna calculada.

  • Uma nova coluna criada usando a cláusula NEW.

  • Uma coluna de capítulo. Uma definição de coluna de capítulo está entre parênteses ("()"). Confira a sintaxe a seguir.

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

Comentários

child-recordset

  • Um comando de provedor entre chaves ("{}") que retorna um objeto Recordset. O comando é emitido para o provedor de dados subjacente, e a sintaxe dele depende dos requisitos desse provedor. Normalmente, essa será a linguagem SQL, embora o ADO não exija nenhuma linguagem de consulta específica.

  • Outro comando shape inserido entre parênteses.

  • O nome de um Recordset formatado existente.

  • A palavra-chave TABLE, seguida do nome de uma tabela no provedor de dados.

child-alias
Um alias que se refere ao Recordset filho.

parent-column
Uma coluna no Recordset retornada pelo parent-command.

child-column
Uma coluna no Recordset retornada pelo child-command.

param-number
Confira Operação de comandos parametrizados.

chapter-alias
Um alias que se refere à coluna de capítulo acrescentada ao pai.

Observação

A cláusula "parent-column TO child-column" é, na verdade, uma lista em que cada relação definida é separada por uma vírgula

Observação

A cláusula após a palavra-chave APPEND é, na verdade, uma lista em que cada cláusula é separada por uma vírgula e define outra coluna a ser acrescentada ao pai.

Quando você constrói comandos de provedor com a entrada do usuário como parte de um comando SHAPE, o SHAPE tratará o comando de provedor fornecido pelo usuário como uma cadeia de caracteres opaca e a transmitirá fielmente ao provedor. Por exemplo, no seguinte comando SHAPE,

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

o SHAPE executará dois comandos: select * from t1 e (select * from t2 RELATE k1 TO k2). Se o usuário fornecer um comando composto que consiste em vários comandos de provedor separados por ponto e vírgula, o SHAPE não poderá distinguir a diferença. Portanto, no comando SHAPE a seguir,

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

SHAPE executa select * from t1; drop table t1 e (select * from t2 RELATE k1 TO k2), não percebendo que drop table t1 é separado e, nesse caso, perigoso, um comando de provedor. Os aplicativos sempre precisam validar a entrada do usuário para evitar que esses possíveis ataques de hackers ocorram.

Esta seção contém os seguintes tópicos.

Consulte Também

Exemplo de data shaping
Gramática de forma formal
Modelar comandos em geral