Fórum pq dá erro? me ajudem #171391

25/07/2003

0

Por que essa rotina resulta em erro?

procedure TFormControle.Button1Click(Sender: TObject);
begin
Case RadioGroup2.ItemIndex of
0: begin Dbgrid1.DataSource := DM.DataSource1;
DM.Query1.Filtered := False;
DM.Query1.Filter := ´Devolvido=´+QuotedStr(´Locado´);
DM.Query1.Filtered := true; end;
1: begin
DM.Query2.Active := false;
DM.Query2.SQL.Add(´SELECT Alunos.Nome, Locacao.DataLoc, Locacao.DataDevol, Locacao.Devolvido, Livros.Titulo FROM ALUNOS, LOCACAO , LIVROS WHERE Alunos.RM = Locacao.RM and Livros.Codigo = Locacao.Codigo and :Hoje > Locacao.DataDevol order by Livros.Titulo´);
DM.Query2.ParamByName(´Hoje´).AsDate := Date;
DM.Query2.Active := true;
Dbgrid1.DataSource := DM.DataSource2;
end;
end;
end;


Slugger

Slugger

Responder

Posts

25/07/2003

Marcelo.c

Tente mudar o código SQL para:

SELECT Alunos.Nome, Locacao.DataLoc, Locacao.DataDevol, Locacao.Devolvido, Livros.Titulo FROM Alunos INNER JOIN Locacao INNER JOIN Livros ON Alunos.RM = Locacao.RM and Locacao.Codigo = Livros.Codigo WHERE Locacao.DataDevol < :Hoje order by Livros.Titulo


Com duas tabelas, sem problemas, nunca tentei com três.

Se não funcionar, poste a mensagem de erro que aparece para que possamos nos guiar melhor na resposta.


Responder

Gostei + 0

25/07/2003

Slugger

Inseri a linha surgerida, novo erro é apresentado, segue:

invalid use of keyword
token: Where
Line numeber: 1


Responder

Gostei + 0

25/07/2003

Marcelo.c

Então tente assim:

SELECT DISTINCT Alunos.Nome, Locacao.DataLoc, Locacao.DataDevol, Locacao.Devolvido, Livros.Titulo FROM Alunos INNER JOIN Locacao ON Alunos.RM = Locacao.RM, Locacao INNER JOIN Livros ON Locacao.Codigo = Livros.Codigo WHERE Locacao.DataDevol < :Hoje order by Livros.Titulo



Responder

Gostei + 0

25/07/2003

Mikemurussi

Esta é a sintaxe correta (se os campos abaixo estão de acordo com suas tabelas e relacionamentos):

SELECT A.Nome, Lo.DataLoc, Lo.DataDevol, Lo.Devolvido, Li.Titulo
FROM Alunos A INNER JOIN (Locacao Lo INNER JOIN Livros Li ON Lo.Codigo = Li.Codigo) ON A.RM = Lo.RM
WHERE Lo.DataDevol < :Hoje
order by Li.Titulo

[url]www.murussi.com.br[/url]


Responder

Gostei + 0

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

Aceitar