Unir tabelas com Join

Delphi

30/03/2005

Bom dia. Estou desenvolvendo um aplicativo em Delphi 7 e utilizo banco de dados Interbase. O acesso a dados é feito através dos seguintes comandos: SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet e DataSource.
Eu tenho três tabelas: Pedidos, Cadastro e Fornecedores. Na tabela Pedidos tenho os seguintes campos: Codigo,CodForne, além dos demais que não vem ao caso. Na verdade eu preciso buscar no Cadastro os campos Descricao, Unidade e ClasFiscal, quando Pedidos.Codigo=Cadastro.Codigo e na tabela Fornecedores preciso buscar o nome do fornecedor quando Pedidos.CodForne=Fornecedores.Codigo.
Eu só preciso fazer um join para poder mostrar na tela estes dados. Já fiz outras vezes, mas não estou conseguindo criar o código SQL pra esta instrução. Na propriedade CommandText de SDSPedidos fiz o seguinte:
select PE.*,CA.Descricao,CA.Unidade,CA.ClasFiscal,FO.Nome as Fornecedor
from Pedidos PE
left outer join Cadastro CA
on CA.Codigo=PE.Codigo
left outer join Fornecedores FO
on FO.Codigo=PE.CodForne

Quando eu vou conectar com o banco de dados dá erro: Table unknown Pedidos!
Não consigo entender onde está o erro.
Se fui clara nas explicações e alguém pudesse me ajudar ficaria muito grata.
Tenham um bom dia...


Eliane Dorr

Eliane Dorr

Curtidas 0

Respostas

Rjun

Rjun

30/03/2005

Você consegue rodar esse SQL no IBConsole ?

Rogerio


GOSTEI 0
Eliane Dorr

Eliane Dorr

30/03/2005

Não tentei. O que eu fiz foi criar um DataModule e inserir nele os componentes de conexão. O erro ocorre quando vou ativar o ClientDataSet.


GOSTEI 0
Rjun

Rjun

30/03/2005

Tente executar o código SQL no IBConsole. Pelo erro que esta dando, ele não esta encontrando a tabela. Verifique tambem seu SQLConnection. Você esta usando DBExpress ?

Rogeiro


GOSTEI 0
Eliane Dorr

Eliane Dorr

30/03/2005

Eu executei o mesmo comando no IBConsole e deu o mesmo erro. O engraçado é que se eu inserir apenas um Select * from Pedidos não dá erro nenhum.


GOSTEI 0
Roswel

Roswel

30/03/2005

Verifique se o nome da tabela Pedidos em sua Base é esse mesmo ...


Tiago


GOSTEI 0
Rjun

Rjun

30/03/2005

Veja se isso funciona :

Select PE.* From Pedidos PE

Rogério


GOSTEI 0
Eliane Dorr

Eliane Dorr

30/03/2005

Consegui resolver o problema. Inseri o código SQL da seguinte maneira:

select PE.*,
CA.´Descricao´ as Descricao,
CA.´Unidade´ as Unidade,
CA.´ClasFiscal´ as ClasFiscal,
FO.´Nome´ as Fornecedor
from ´Pedidos´ PE
left outer join ´Cadastro´ CA
on CA.´Codigo´=PE.´Codigo´
left outer join ´Fornecedores´ FO
on FO.´Codigo´=PE.´CodForne´

O problema era que eu não estava inserindo ´´ no nome das tabelas e nos campos. :oops:
Obrigada a todos, mesmo assim.


GOSTEI 0
POSTAR