SQL - SOCOORROOOOO!!!
06/03/2003
0
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
Curtir tópico
+ 0
Responder
Posts
06/03/2003
Anonymous
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
Responder
06/03/2003
Navoid
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é
Responder
Clique aqui para fazer login e interagir na Comunidade :)