Acho que não ficou claro.....Desculpe...Ainda preciso de aju

14/02/2003

0

Até que fazer a Query eu sei, eu não sei é como escrever isto no código do delphi...
pois fiz SQLEXPLORER E funcionou bem...


Imagine que tenho BD do ACCESS e duas tabelas
TabCliente
TabPes_Fisica
Na minha TabCliente tenho os seguintes campos:
Cod_Cliente (Chave Primaria)

Cod_Vendedor
Cod_Cidade
Cod_Area
Rota_Cliente

Na TabPes_Fisica os Seguintes Campos
Cod_Cliente (Chave primaria)
Nome_Cliente
CPF
Etc...

Uso um Componete Tquery
Preciso fazer uma query que quando eu entrar com os campos

Cod_Vendedor
Cod_Cidade
Cod_Area
Rota_Cliente

ela me traz os dados das duas tabelas.


Veja abaixo
Quando eu precisa que trazesse somente os dados da tab_Cliente, eu utilizava a instrução abaixo e dava tudo certo.

Dm.Qr_Cliente.SQL.Clear;
Dm.Qr_Cliente.SQL.Add(´Select * From TabCliente ´);
Dm.Qr_Cliente.SQL.Add(´Where Cod_Vendedor =+´´+copy(MkRota.Text,(length(MkRota.Text)-10),2)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Cod_Cidade =+´´+copy(MkRota.Text,(length(MkRota.Text)-7),2)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Cod_Area =+´´+copy(MkRota.Text,(length(MkRota.Text)-5),3)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Rota_Cliente =+´´+copy(MkRota.Text,(length(MkRota.Text)-2),3)+´´´);
Dm.Qr_Cliente.Open;

//No MkRota eu digito a rota inteira exemplo: ´00/11/222/333´ no qual eu copio parte para fazer a consulta acima.
A questão é...
Eu utilizo a chamada acima para fazer uma pesquisa somente em uma tabela, como eu faria para fazer a chamada para duas tabela, vou te dar um exemplo abaixo:

Dm.Qr_Cliente.SQL.Clear;
Dm.Qr_Cliente.SQL.Add(´Select Cli.*, Pfis.* From TabCliente Cli, TabPesFisica Pfis´);
Dm.Qr_Cliente.SQL.Add(´Where Cli.Cod_Cliente = Pfis.Cod_Cliente´);// Aqui eu ligo as duas tabelas, o Cod_Cliente existe na duas tabelas.
Dm.Qr_Cliente.SQL.Add(And Cod_Vendedor =+´´+copy(MkRota.Text,(length(MkRota.Text)-10),2)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Cod_Cidade =+´´+copy(MkRota.Text,(length(MkRota.Text)-7),2)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Cod_Area =+´´+copy(MkRota.Text,(length(MkRota.Text)-5),3)+´´´);
Dm.Qr_Cliente.SQL.Add(´and Rota_Cliente =+´´+copy(MkRota.Text,(length(MkRota.Text)-2),3)+´´´);
Dm.Qr_Cliente.Open;

Infelismente esta, está errada, mais é que quando eu buscasse um registro digitando a rota ele trazia para mim os dados da outra tabela..


Jelves

Jelves

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar