Compartilhar via


Operação de comandos não parametrizados

Para os comandos não parametrizados, todos os comandos do provedor são executados e os Recordsets são criados durante a execução do comando. Se o comando for executado de maneira síncrona, todos os Recordsets serão totalmente preenchidos. Se um modo de população assíncrona foi selecionado, o estado preenchido dos Recordsets dependerá do modo de população e do tamanho dos Recordsets.

Por exemplo, o parent-command poderá retornar um Recordset de clientes para uma empresa com base em uma tabela Customers e o child-command poderá retornar um Recordset de pedidos para todos os clientes com base em uma tabela Orders.

SHAPE {SELECT * FROM Customers}   
   APPEND ({SELECT * FROM Orders} AS chapOrders   
   RELATE customerID TO customerID)  

Para as relações pai-filho não parametrizadas, cada objeto Recordset pai e filho precisa ter uma coluna em comum para associá-las. As colunas são nomeadas na cláusula RELATE, primeiro parent-column e, depois, child-column. As colunas podem ter nomes diferentes nos respectivos objetos Recordset, mas precisam se referir às mesmas informações para especificar uma relação significativa. Por exemplo, os objetos Customers e Orders Recordset podem ter um campo customerID. Como a associação do Recordset filho é determinada pelo comando do provedor, o Recordset filho pode conter linhas órfãs. Essas linhas órfãs são inacessíveis sem uma reformatação adicional.

A formatação de dados acrescenta uma coluna de capítulo ao Recordset pai. Os valores na coluna de capítulo são referências a linhas no Recordset filho, que atendem à cláusula RELATE. Ou seja, o mesmo valor está na parent-column de determinada linha pai, como está na child-column de todas as linhas do filho do capítulo. Quando várias cláusulas TO são usadas na mesma cláusula RELATE, elas são combinadas implicitamente com um operador AND. Se as colunas pai da cláusula RELATE não constituírem uma chave para o Recordset pai, uma só linha filho poderá ter várias linhas pai.

Quando você acessa a referência na coluna de capítulo, o ADO recupera automaticamente o Recordset representado pela referência. Observe que, em um comando não parametrizado, embora todo o Recordset filho tenha sido recuperado, o capítulo apresenta apenas um subconjunto de linhas.

Se a coluna acrescentada não tiver nenhum chapter-alias, um nome será gerado automaticamente para ela. Um objeto Field para a coluna será acrescentado à coleção Fields do objeto Recordset e o tipo de dados dele será adChapter.

Para obter informações sobre como navegar em um Recordset hierárquico, confira Acessar linhas em um conjunto de registros hierárquico.

Consulte Também

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