Boa Tarde Pessoal,

Estou com o seguinte problema:
tenho uma grade ligada ao quarteto TSQLQuery - ClientDataSet - Provider - 
DataSource.
Tenho um select que faz um join com outra tabela para trazer o nome da
chave estrangeira referida. Mas quando tento gravar pela grade me dá um erro 
dizendo que
a coluna 'NOM_CONVENIO' não pertence a tabela referenciada.
Explicando como fiz a tela:
Tenho um edit onde retorno o nome do cliente e no exit desse edit abro o 
ClientDataSet da grade
passando o código do cliente como parâmetro, o select da grade é o mostrado 
abaixo:

SELECT TCP.COD_PESSOA,
       TCP.COD_CONVENIO,
       TCP.NUM_CONVENIO,
       TCP.DTA_VLD_CONVENIO,
       TC.NOM_CONVENIO
  FROM TAB_CONVENIO_PESSOA TCP
       INNER JOIN
         TAB_CONVENIO TC
       ON TCP.COD_CONVENIO = TC.COD_CONVENIO
       INNER JOIN
         TAB_PESSOA TP
       ON TCP.COD_PESSOA = TP.COD_PESSOA
WHERE TCP.COD_PESSOA = :COD_PESSOA

Na grade eu tenho as seguinte colunas: nome do convênio (NOM_CONVENIO), nº do 
cartão (NUM_CONVENIO)
e validade do convênio (DTA_VLD_CONVENIO).
Na coluna NOM_CONVENIO busco o nome do convênio para apresentar na grade e 
preencho os outros dados
na grade mesmo. Quando dou seta para baixo, no evento onKeyDown para salvar o 
registro me dá a mensagem:
"Column 'NOM_CONVENIO' not belongs to referenceed table". Utilizo as linhas de 
código abaixo no OnKeyDown:

if(Key = vk_down) then
begin
    if(cdsConvenio.ApplyUpdates(0) <> 0) then
       cdsConvenio.CancelUpdates;
end;

A tabela em questão que a mensagem se refere é a TAB_CONVENIO_PESSOA que é a 
tabela de ligação entre
a TAB_PESSOA (cliente) e a TAB_CONVENIO, onde os registros devem ser inseridos.
Senhores como resolvo essa questão, pois não quero usar campo lookup?
Já ouvi falar dos Providers Flags, mas nunca fiz nada desse tipo, portanto 
estou meio perdido.
Qualquer ajuda será bem vinda, inclusive links de artigos sobre o assunto!!
Muito obrigado.

Atenciosamente,

Rodrigo de Moura

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a