Olá galera,

Vamos falar nesta QUICK TIPS, sobre Provider Flags. Para que serve? Como usar ?
Provider flags serve para diversas coisas uma delas é a necessidade de se trabalhar com dados de outra tabela no nosso DataSet(SqlQuery, ClientDataSet, etc), porém se fizermos um SELECT * FROM CLIENTE C, PEDIDO P WHERE C.IDCLIENTE = P.IDCLIENTE, e tentarmos gravar, irá dar um erro, pois o nosso DataSet, não sabe em qual tabela efetuar a gravação.

O que fazer ? Usamos o Provider Flags nesta situação! Como ?
Bem simples. Veja o exemplo:

Ex.:Temos 1 SqlQuery, 1 DataSetProvider, 1 ClientDataSet, e 1 DataSource, e duas tabelas envolvidas, Cliente e Pedido. Imagina que na tela de pedido você queria saber qual é o Cliente, então fazemos o seguinte Script SQL:

SELECT P.*, C.NOME FROM CLIENTE C, PEDIDO P WHERE C.IDCLIENTE = P.IDCLIENTE

Precisamos adicionar todos os campos na SqlQuery, e todos os campos no ClientDataSet, se quisermos gravar os pedidos, precisamos desmarcar o Provider Flags, de todos os dados da tabela de cliente, no nosso caso somente o Field Nome, então selecionamos ele e colocamos  pfInUpdate e  pfInWhere para false, tanto na SqlQuery quando no ClientDataSet, sendo assim o campo nome não será gerado instrução de insert, update, ou delete, na hora de gravarmos os dados.


Até a próxima QUICK TIPS.

Wesley Yamazack