SQL - SOCOORROOOOO!!!

Delphi

06/03/2003

Olá pessoal,

Estou precisando de um código para consultar dois campos texto, apesar de um ser data, mas ela precisa ser digitada seguida de um dígito. Meu código está assim:

DMDados.ConsCursos.Close;
DMDados.ConsCursos.SQL.Clear;
DMDados.ConsCursos.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE: P1 AND DataDeColacao : P2´);
DMDados.ConsCursos.Parameters.ParamByName(´P1´).Value:=Edit3.Text;
DMDados.ConsCursos.Parameters.ParamByName(´P2´).Value:=Edit2.Text;
DMDados.ConsCursos.Open;
If (DMDados.ConsCursos.RecordCount = 0) Then
Begin
ShowMessage(´Aluno não esncontrado. Tente novamente.´);
Edit2.Clear;
Edit3.Clear;
End;

Por favor, o q está errado? Se puderem me ajudar ficarei muito grato,

Ilano.


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

06/03/2003

vc esta enxergando os paramentros pela query ? tem uma propriedade params na query, vc tem que definir o tipo de dados que ela aceita no caso de p1 e p2 como date. Tente colocar=:p1 e =:p2 para dizer q são parametros


GOSTEI 0
Navoid

Navoid

06/03/2003

bom pra começar, há um erro no seu sql, na verdade deve ser assim

****
DMDados.ConsCursos.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE :P1 AND DataDeColacao = :P2´);
****

vc não pode ter espaço entre o : e o nome do parâmetro e faltou um = no final;

e para dizer ...parambyname(´p1´).value vc precisa antes de disso dizer de que tipo é este parâmetro (integer, string, tdatetime, etc)

faça assim

****
DMDados.ConsCursos.Close;
DMDados.ConsCursos.SQL.Clear;
DMDados.ConsCursos.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE :P1 AND DataDeColacao = :P2´);
DMDados.ConsCursos.Parameters.ParamByName(´P1´).AsString:=Edit3.Text;
DMDados.ConsCursos.Parameters.ParamByName(´P2´).AsDateTime:=StrToDate(Edit2.Text);
DMDados.ConsCursos.Open;
If (DMDados.ConsCursos.RecordCount = 0) Then
Begin
ShowMessage(´Aluno não esncontrado. Tente novamente.´);
Edit2.Clear;
Edit3.Clear;
End;

****

até


GOSTEI 0
POSTAR