Buscar

Masterdetail com tclientdataset no delphi 2007 - erro ao abrir

Código

Decidi deixar de lado o delphi 7 e desenvolver em 2007 meu mais novo projeto.
Porém, me deparei com uma situação pouco comum, todos os meus masterDatails davam certo, menos os que usavam algum tipo de relacionamento no SQL como "inner join" no detail. Retornando o erro: "Token unknow - line (numero da linha, caractere) INNER". A solução nesse caso é:

Todos os clientdatasets que estiverem como datail e o dataset possuir INNER JOIN ou LEFT JOIN devem ser compilados em MasterSource, MasterFields e IndexFieldNames. Com o componente abrirá corretamente, após aberto, passe para ele as propriedades nessa ordem MasterSource, IndexFieldNames e MasterFields, o masterdetail se estabelecerá sem problema algum.

Exemplo:

//  Ao abrir

CdsDetalhe.Open;
CdsDetalhe.MasterSource := dtsMestre;
CdsDetalhe.IndexFieldNames := 'ID';
CdsDetalhe.MasterFields := 'ID';

// Ao fechar

CdsDetalhe.Close;
CdsDetalhe.MasterSource := nil;
CdsDetalhe.IndexFieldNames := '';
CdsDetalhe.MasterFields := '';


espero ter ajudado

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 21/06/07
Por: Alison Bissoli
Visualizada: 3652 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009