Compartilhar via


Cláusula Shape Append

Aplica-se ao: Access 2013, Office 2013

A cláusula APPEND do comando shape acrescenta uma ou mais colunas a um Recordset. Em geral, essas colunas referem-se a capítulos, que se referem a um Recordset filho .

Sintaxe

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

Descrição

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

  • parent-command

  • Zero ou um dos itens a seguir (você pode omitir parent-command completamente):

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

    • Um outro comando shape 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

    • Um ou mais itens a seguir:

      • Uma coluna agregada.

      • Uma coluna calculada.

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

      • Uma coluna de capítulo. Uma definição dessa coluna é exibida entre parênteses ("()"). Consulte 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] 
        [, ... ] 
        
  • child-recordset

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

    • Um outro comando shape entre parênteses.

    • O nome de um Recordset com formato 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 em Recordset retornada por parent-command.
  • child-column

    • Uma coluna em Recordset retornada por child-command.
  • param-number

  • chapter-alias

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

Observação

  • A cláusula "pai-coluna TO child-column" é, na verdade, uma lista, em que cada relação definida é separada por uma vírgula.
  • A cláusula após a palavra-chave APPEND na verdade é uma lista, na qual cada cláusula é separada por uma vírgula e define uma outra coluna a ser acrescentada ao pai.

Comentários

Quando você construir os comandos de provedor a partir da entrada do usuário como parte de um comando SHAPE, SHAPE tratará o comando de provedor fornecido pelo usuário como uma sequência opaca e o passará fielmente ao provedor. Por exemplo, no comando SHAPE a seguir,

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

SHAPE executará dois comandos: select * from t1 e (select * from t2 RELATE k1 TO k2). Se o usuário emitir um comando composto contendo vários comandos de provedor separados por ponto-e-vírgula, SHAPE não conseguirá diferenciar. 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), sem perceber que drop table t1 é um comando de provedor separado e, neste caso, perigoso. Os aplicativos devem sempre validar a entrada do usuário para impedir possíveis ataques de hacker como esse.

Esta seção inclui os seguintes tópicos: