Fórum Erro ao criar relatorio de aniver... #421675
15/08/2012
0
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1,column 92
WHERE
STATEMENT:
TIBOInternalDataset:
"<TApplication>frmLogin.frmPrincipal.frmGeraRelAniv.Query_Aniv.IBOqrQuery_Aniv."
Utilizei este codigo SQL:
SELECT CADASTRO.NOME,CADASTRO.DATA_NASCIMENTO,CADASTRO.EMAIL,CADASTRO.CONTATO
FROM CADASTRO WHERE EXTRACT(MONTH FROM CADASTRO.DATA_NASCIMENTO) BETWEEN :IMESINICIAL
AND :IMESFINAL AND EXTRACT(DAY FROM CADASTRO.DATA_NASCIMENTO)
BETWEEN :IDIAINICIAL AND :IDIAFINALNão sei porque da este erro ja testei no IBExpert e o codigo funcionou não sei o que é preciso de ajuda!
Jonathan Romeiro
Curtir tópico
+ 0Posts
15/08/2012
Leandro Carvalho
Tente mandar o código sql via comando junto com os parâmetros.
Ex:
Conponente.SQL.Text := 'SELECT CADASTRO.NOME,CADASTRO.DATA_NASCIMENTO,CADASTRO.EMAIL,CADASTRO.CONTATO' +
'FROM CADASTRO WHERE (EXTRACT(MONTH FROM CADASTRO.DATA_NASCIMENTO) BETWEEN ' + IMESINICIAL +
' AND ' + IMESFINAL + ') AND (EXTRACT(DAY FROM CADASTRO.DATA_NASCIMENTO) BETWEEN ' + IDIAINICIAL + ' AND ' + IDIAFINAL + ')';
Gostei + 0
15/08/2012
Deivison Melo
Esse sql é exatamente o q foi colocado no sistema e apresentou os problemas?
Gostei + 0
17/08/2012
Jonathan Romeiro
Esse sql é exatamente o q foi colocado no sistema e apresentou os problemas?
Sim
Gostei + 0
17/08/2012
Jonathan Romeiro
with Query_Aniv do
begin
Close;
Sql.Clear;
SQL.Add('SELECT CADASTRO.NOME,CADASTRO.DATA_NASCIMENTO,CADASTRO.EMAIL,CADASTRO.CONTATO'+
'FROM CADASTRO WHERE EXTRACT(MONTH FROM CADASTRO.DATA_NASCIMENTO) BETWEEN :IMESINICIAL'+
'AND :IMESFINAL AND EXTRACT(DAY FROM CADASTRO.DATA_NASCIMENTO)'+
'BETWEEN :IDIAINICIAL AND :IDIAFINAL');
ParamByName('IMESINICIAL').AsString := edtMesInicial.Text;
ParamByName('IMESFINAL').AsString := edtMesFinal.Text;
ParamByName('IDIAINICIAL').AsString := edtDiaInicial.Text;
ParamByName('IDIAFINAL').AsString := edtDiaFinal.Text;
Open;
end;
if not(Query_Aniv.RecordCount = 0) then
begin
frmRelAniversariantes := TfrmRelAniversariantes.Create(Self);
frmRelAniversariantes.QuickRep1.Preview;
frmRelAniversariantes.QuickRep1.Free;
end
else
begin
ShowMessage('Nenhum registro encontrado !');
Query_Aniv.Close;
Query_Aniv.SQL.Clear;
end;
Gostei + 0
17/08/2012
Romulo Contro
Gostei + 0
17/08/2012
Romulo Contro
não tem espaço no '+ entao ele tá juntando direto com a linha de baixo...
tenta colocar um espaço antes do '+ igual aí em baixo:
SQL.Add('SELECT CADASTRO.NOME,CADASTRO.DATA_NASCIMENTO,CADASTRO.EMAIL,CADASTRO.CONTATO '+
'FROM CADASTRO WHERE EXTRACT(MONTH FROM CADASTRO.DATA_NASCIMENTO) BETWEEN :IMESINICIAL '+
'AND :IMESFINAL AND EXTRACT(DAY FROM CADASTRO.DATA_NASCIMENTO) '+
'BETWEEN :IDIAINICIAL AND :IDIAFINAL');
Gostei + 0
17/08/2012
Jonathan Romeiro
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)