Erro de sintaxe ORA 00936 - ReportBuilder
Amigos, estou montando um relatório no ReportBuilder que usa uma Query em uma das variáveis. a variável compila normalmente mas na hora da impressão o relatório retorna o erro ORA 00936 - Missing expression. Segue o código abaixo.
Já tentei rodar isso de várias formas, em navegadores sql query roda normalmente, não sei onde estou errando.
var Sql:String; begin Sql := 'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + 'AND DTVENC LIKE '' + DBText69.Text + '''; Variable1.Value := ConsultaSql(sql); end; end;
Já tentei rodar isso de várias formas, em navegadores sql query roda normalmente, não sei onde estou errando.
Eduardo Lima
Curtidas 0
Melhor post
Ronaldo Filho
14/01/2016
Boa tarde Grande.
Pelo que percebi pode ser um erro na escrita do Select
O seu tá assim
Acredito que deviria estar assim
ou
Espero ter ajudado, qualquer coisa responde se deu ou não certo.
Pelo que percebi pode ser um erro na escrita do Select
O seu tá assim
'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + 'AND DTVENC LIKE '' + DBText69.Text + '''
Acredito que deviria estar assim
'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + ' AND DTVENC LIKE ' +'''+ DBText69.Text +'''
ou
'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + ' AND DTVENC LIKE ' + QuotedStr(DBText69.Text)
Espero ter ajudado, qualquer coisa responde se deu ou não certo.
GOSTEI 1
Mais Respostas
Eduardo Lima
14/01/2016
Acabei de tentar aqui, a primeira continuou retornando o mesmo erro, a segunda não reconheceu o QuotedStr...
GOSTEI 0
Ronaldo Filho
14/01/2016
Grande tenta com a QuotedStr, mas adiciona nas dependências (uses) a SysUtils, a função QuotedStr pertence a ela.
GOSTEI 0
Raimundo Pereira
14/01/2016
Boa tarde, tente assim
var
Sql:String;
begin
Sql := 'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + 'AND DTVENC LIKE ''+QuotedStr('%'+DBText69.Text+'%');
Variable1.Value := ConsultaSql(sql);
end;
end;
Só uma observação, como você está usando campos DBEDITs, verifique se os datas sets estão ativos,
Eu geralmente uso edits simples, coletando e repassando informações para as tabelas nos momentos necessários.
var
Sql:String;
begin
Sql := 'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + DBText8.Text + 'AND DTVENC LIKE ''+QuotedStr('%'+DBText69.Text+'%');
Variable1.Value := ConsultaSql(sql);
end;
end;
Só uma observação, como você está usando campos DBEDITs, verifique se os datas sets estão ativos,
Eu geralmente uso edits simples, coletando e repassando informações para as tabelas nos momentos necessários.
GOSTEI 0
Eduardo Lima
14/01/2016
Amigo, acabei de tentar aqui e retornou de novo o 00936. Também tentei usar Chr(39) :'(
GOSTEI 0
Raimundo Pereira
14/01/2016
Me manda a estrutura da sua tabela, vou criar um espelho e fazer o teste e respondo agora
GOSTEI 0
Raimundo Pereira
14/01/2016
Preciso dos dados que estão dentro dos
+ DBText8.Text + ' AND DTVENC LIKE ' +'''+ DBText69.Text +'
Segue meu skype raimundo.ti
+ DBText8.Text + ' AND DTVENC LIKE ' +'''+ DBText69.Text +'
Segue meu skype raimundo.ti
GOSTEI 0
Ronaldo Filho
14/01/2016
Eduardo Lima, faz um teste também para ver o que os DBText8.Text e DBText69.Text, estão retornando.
GOSTEI 0
Eduardo Lima
14/01/2016
Cara, dentro do DBText8, vem um número de nota, ex: 386
e no DBText69 vem uma data, ex: 14/01/2015.
Continuo recebendo o mesmo retorno só na hora de exibir o relatório, esse select que fiz funciona normalmente, só dentro do relatório que não..
e no DBText69 vem uma data, ex: 14/01/2015.
Continuo recebendo o mesmo retorno só na hora de exibir o relatório, esse select que fiz funciona normalmente, só dentro do relatório que não..
GOSTEI 0
Ronaldo Filho
14/01/2016
Nesse caso precisaríamos do código para analisar melhor. Se você puder disponibilizar parte dele, poderemos ajudar mais. Enquanto isso da uma olhada no formato da data passada pelo campo DBText69, por que quando você faz o teste do Select na mão, você pode estar passando a data formatada corretamente, porém, o DBText69 pode estar passando a data formatada errada.
GOSTEI 0
Raimundo Pereira
14/01/2016
Antes de imprimir o relatório
Retorne a quantidade de registro.
Showmessage (inttostr(dm.sua_tabela.recordcount);
Retorne a quantidade de registro.
Showmessage (inttostr(dm.sua_tabela.recordcount);
GOSTEI 0
Eduardo Lima
14/01/2016
Ronaldo,
Mas se a data tivesse vindo no formato incorreto, acho que não retornaria esse erro específico, não?
Mas se a data tivesse vindo no formato incorreto, acho que não retornaria esse erro específico, não?
GOSTEI 0
Eduardo Lima
14/01/2016
Consegui exibir, puxando os dados de outra forma, segue o código:
var Sql:String; begin Sql := 'SELECT AVG((DTVENC - DTLANC)) FROM PCLANC WHERE NUMNOTA = ' + PCMov_Ent['NUMNOTA'] + 'AND DTVENC LIKE '+Chr(39)+ PCMov_Ent['DTMOV']+Chr(39); Variable1.Value := ConsultaSql(sql); end; end;
GOSTEI 1
Ronaldo Filho
14/01/2016
Hoo cara, foi show essa ai viu, mas qualquer coisa pode contar com a gente aqui. Dessa vez não ajudamos muito mas, quem sabe da próxima kkkkkkk.
GOSTEI 1
Eduardo Lima
14/01/2016
Muito obrigado pela ajuda, pessoal! :D
GOSTEI 0