SQL - SOCOORROOOOO!!!
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.
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
Curtidas 0
Respostas
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
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é
****
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