Consulta SQL - URGENTE!!!

Delphi

11/07/2003

Olá pessoal,
Estou fazendo um BD em tabela Paradox.
- Tenho as seguintes tabelas, q estão relacionadas:
TB_Livros: CodigoDoLivro, DataDeCadastro, TituloDaObra, ISBN, CodigoDaEditora, Volume, Edicao, Exemplar, AnoDePublicacao, CodigoDaColecao, LocalDePublicacao, Acervo.

TB_Autores: CodigoDoAutor, CodigoDoLivro, CodigoDoAutor2, Autor

Tenho um RadioGroup com as seguintes opções:

- Título da Obra
- Número do ISBN
- Nome do Autor
- Nome da Editora
- Nome da Colecao

A minha consulta está assim:

If RadioGroup1.ItemIndex = 0 Then
Begin
With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);
SQL.Add(´WHERE TituloDaObra=:P1´);
ParamByName(´P1´).Value:=Edit1.Text+´¬´;
Open;
End
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);
SQL.Add(´WHERE ISBN=:P1´);
ParamByName(´P1´).Value:=Edit1.Text;
Open;
End
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);
SQL.Add(´WHERE CodigoDoAutor=:P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
Open;
End
End
Else
If RadioGroup1.ItemIndex = 3 Then
Begin
With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);
SQL.Add(´WHERE CodigoDaEditora=:P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
Open;
End
End
Else
If RadioGroup1.ItemIndex = 4 Then
Begin
With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);
SQL.Add(´WHERE CodigoDaColecao=:P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
Open;
End;
End;


Só q não estou conseguindo fazer estas consultas. Resumindo, quero uma consulta q faça uma busca por uma das opções acima para q o usuário localize com mais facilidade o livro q deseja solicitar à biblioteca. Este sistema terá q estar em rede para q todas as salas possam ter acesso à estas consultas e depois será feito ainda uma tela para fazerem a solicitação para o setor responsável, a biblioteca.

Alguém pode me ajudar?

Grato,

Ilano.


Ilanocf

Ilanocf

Curtidas 0

Respostas

Karepa

Karepa

11/07/2003

Caro colega, em primeiro lugar, aconcelho você a utilizar banco de dados, pois sua aplicação irá rodar em rede, isto vai lhe tirar problemas futuros.

Eu faria o código desta meneira, que para mim, fica mais clara para entendimento e mais rápita para execução do aplicativo.

With DMDados.Relacao Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM TBLivros INNER JOIN TBAutores ON TBLivros.CodigoDoLivro = TBAutores.CodigoDoLivro´);

case radioGroup1.itemindex of

0 : begin
SQL.Add(´WHERE TituloDaObra= :P1´);
ParamByName(´P1´).Value:=Edit1.Text+´¬´;
end;
1 : begin
SQL.Add(´WHERE ISBN= :P1´);
ParamByName(´P1´).Value:=Edit1.Text;
end;
2 : begin
SQL.Add(´WHERE CodigoDoAutor= :P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
end;
3 : begin
SQL.Add(´WHERE CodigoDaEditora= :P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
end;

4 : begin
SQL.Add(´WHERE CodigoDaColecao= :P1´);
ParamByName(´P1´).Value:=StrToIntDef(Edit2.Text, 0);
end;
end;
Open;
End;


Pelo que verifiquei no seu código, estua tudo correto .
verifique se os livros estão com o código de autor informado no seu cadastro.

qq coisa mantenha contato em pvt, pois está parecendo erro de base de dados.

espero ter ajudado.


GOSTEI 0
POSTAR