Fórum Preciso de ajuda com relacionamento. #152827

08/04/2003

0

Tenho um relatório de aniversariantes em minha aplicação, para esse são inseridos os dados do cadastro de clientes onde o mês da data de nascimento corresponde com o mês atual. Os telefones presente no formulário de cadastro de clientes estão em uma outra tabela chamada ´Contatos´. Na minha tabela de Contatos tem um campo chamado CodCliente que recebe o código do cliente... Preciso fazer com que os telefones de cada cliente apareçam também no relatório. Estou fazendo da seguinte forma:

QYfone.SQL.Clear;
a:=´Select * From Contatos ´;
b:=´Where CodCliente =:Consulta ´;
QYfone.SQL.Add(a+b);
QYfone.ParamByName(´Consulta´).AsInteger := QryAniverCodigo.Value;
QYfone.Close;
QYfone.Open;

Ao executar o código, no relatório, onde deveria estar o telefone do cliente aparace vazio. Como faço esse relacionamento?


Flaviolrf

Flaviolrf

Responder

Posts

08/04/2003

Aroldo Zanela

Tenho um relatório de aniversariantes em minha aplicação, para esse são inseridos os dados do cadastro de clientes onde o mês da data de nascimento corresponde com o mês atual. Os telefones presente no formulário de cadastro de clientes estão em uma outra tabela chamada ´Contatos´. Na minha tabela de Contatos tem um campo chamado CodCliente que recebe o código do cliente... Preciso fazer com que os telefones de cada cliente apareçam também no relatório. Estou fazendo da seguinte forma: QYfone.SQL.Clear; a:=´Select * From Contatos ´; b:=´Where CodCliente =:Consulta ´; QYfone.SQL.Add(a+b); QYfone.ParamByName(´Consulta´).AsInteger := QryAniverCodigo.Value; QYfone.Close; QYfone.Open; Ao executar o código, no relatório, onde deveria estar o telefone do cliente aparace vazio. Como faço esse relacionamento?

Colega,

Quando se fala em relacionamento, subentende-se a junção de duas ou mais tabelas (exceto auto-relacionamento - que não é o caso). Na sua consulta acima aparece apenas um tabela e algumas ´coisas´ fora do lugar.
Coloque as tabelas envolvidas e os repectivos campos para te auxiliarmos melhor. Por exemplo:

tabela 1
campo1, campo2, campo3

tabela 2
campo1, campo2


Responder

Gostei + 0

08/04/2003

Anonymous

Assim

QYfone.Close;
QYfone.SQL.Clear;
QYfone.SQL.Add(´Select * From Contatos a, cliente b ´);
QYfone.SQL.Add(´Where b.codcli=a.codcli and ´);
QYfone.SQL.Add(´CodCliente =:Consulta ´);
QYfone.ParamByName(´Consulta´).AsInteger := QryAniverCodigo.Value;
QYfone.Open;

lembrete sempre deixe pelo menos um espaço no final da lina
QYfone.SQL.Add(´mmmmm ´);


Responder

Gostei + 0

08/04/2003

Anonymous

Uma pequena correção:

não é necessário deixar um empaço no final das linhas do SQL quando se utiliza o componente TQuery, pois mesmo armazena o SQL em uma stringlist. Ja se estiver utilizando DBExpress ai é outra historia.


um abraço,
Rafael Helm.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar