Fórum Problemas com linguagem SQL #244493

26/07/2004

0

Espero contar com a ajuda de quem puder me auxiliar.
Criei um programa em Delphi 6 com banco de dados do Access e utilizei a ferramento ADO para me comunicar com ela, até aí tudo bem, deu tudo certo, abro a tabela, leio, salvo, edito, ou seja, faço tudo normalmente com a tabela. Só que quando fui criar os relatório aí começaram meus problemas, porque?
Bom como fiz os relacionamentos com a tabela criar codigos e linquei com o código de uma outra tabela, mas quando vou criar os relatórios aparecem os códigos em vez dos nomes, já tentei utilizar o ´inner join´, tentei fazer um WHERE Fornec.CodFornec = Produt.CodFornec e mesmo assim não deu certo. O que faço? Como vou conseguir mostrar o nome em vez do código?

Conto com a ajuda dos feras do clube.

Reginaldo
__________________________________
Em terra de programador, quem tem Delphi é rei.


[b:1b6d42c348]Texto editado![/b:1b6d42c348]
Tags de negrito retiradas. Por favor, não o utilize para todo o texto de sua mensagem.
Sandra/Moderação


Ponce :)

Ponce :)

Responder

Posts

26/07/2004

Cabelo

Colega..

Poste seu SQL, assim poderia te ajudar melhor..

Cabelo


Responder

Gostei + 0

26/07/2004

Ponce :)

Caro Cabelo, estou usando o seguinte comando SQL:

SELECT Fornec.*, Produt.*
FROM Fornec, Produt
WHERE Fornec.CodFornec = Produt.CodFornec
ORDER BY Produt.NomeProdut

Mas não está dando certo.

Reginaldo
__________________________________
Em terra de programador, quem tem Delphi é rei.[b:60f70b0118][/b:60f70b0118]


Responder

Gostei + 0

26/07/2004

Cabelo

Pq não está dando certo??

Qual o erro?

Qual banco de dados vc usa??

Cabelo


Responder

Gostei + 0

26/07/2004

Emerson Nascimento

evite utilizar o curinga ´*´ para a seleção de campos.

pode ocorrer o seguinte: na tabela Fornec existe o campo Nome (nome do fornecedor) e na tabela Produt também tem um campo chamado Nome (dessa vez o nome do produto). A instrução SQL não consegue resolver qual o campo Nome exibir. No seu caso dá pra saber que esse problema ocorre, no mínimo, com o campo CodFornec.

a melhor maneira de resolver esse problema é indicar todos os campos, apelidando os campos que tenham o mesmo nome e que precisam ser listados.

SELECT Fornec.CodFornec, Fornec.Nome NomeFornec, Produt.Nome NomeProd, etc

no exemplo há o campo nome em ambas tabelas. apelidei os dois para não haver confusão. Sei que também há o campo CodFornec em ambas tabelas, mas como vou listar apenas de uma, não preciso colocar nenhum apelido nele.


Responder

Gostei + 0

26/07/2004

Cabelo

Colega..

isto depende do banco d edaod sque vc usa..

se vc estiver por exemplo usando o paradox, vc teria uma mensagem de erro do tipo filed not found..

por isso perguntei qual o banco que ele usa..

O quê vc disse está correto, mas talvez não seja este o problema, já que na manutenção dos registros ele não tem erros, somente no relatório..

Cabelo


Responder

Gostei + 0

27/07/2004

Vanius

Bom dia Fera,

recentemente apanhei de relatorios utilizando o access como banco de dados.
A única solução que encontrei foi abrir o access, criar uma consulta no proprio access e depois copiei a query para o meu sistema em Delphi.

Tente fazer isto.

[]s,


Vanius


Responder

Gostei + 0

27/07/2004

Ponce :)

[b:286c9debcb]Caro colega Vanius,

Você poderia me mandar alguns exemplos de suas consultas no Access para eu ter uma idéia de como montar minhas consultas no Access e depois copiar no Delphi.

Obrigado.

Reginaldo
__________________________________
Em terra de programador, quem tem Delphi é rei.[/b:286c9debcb]


Responder

Gostei + 0

18/08/2004

Vanius

Reginaldo, desculpe pela demora.
Normalmente utilizamos a query +- assim:

SELECT a.CodCliente, B.Nome, C.Cliente
FROM Venda A
INNER JOIN Vendedor B ON A.CodVendedor = B.CodVendedor
INNER JOIN Cliente C ON A.CodCliente = C.CodCliente

Mas o Access nao utiliza a mesma coisa... Ficariá +- assim

SELECT Eleitor.Nome, Eleitor.DataNascimento, Eleitor.RG, Eleitor.CPF,
Eleitor.TituloEleitor, Eleitor.Logradouro, Eleitor.Complemento,
Eleitor.Cep, Bairro.Bairro, Cidade.Cidade, Cidade.UF, Influencia.Influencia,
Regional.Regional, LocalVotacao.LocalVotacao
FROM (Cidade INNER JOIN Bairro ON Cidade.CodCidade = Bairro.CodCidade)
INNER JOIN (Regional INNER JOIN (LocalVotacao INNER JOIN (Influencia
INNER JOIN Eleitor ON Influencia.CodInfluencia = Eleitor.CodInfluencia)
ON LocalVotacao.CodLocalVotacao = Eleitor.CodLocalVotacao)
ON Regional.CodRegional = Eleitor.CodRegional) ON
Bairro.CodBairro = Eleitor.CodBairro

Parece q o Access utiliza um INNER JOIN dentro do outro. E assim vira uma bagunça.
Mas se precisar de mais alguma explicação, entre em contato.
Abraços,

Vanius


Responder

Gostei + 0

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

Aceitar