Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Aqui no sistema, temos base Oracle, e SQL Server.
E os códigos precisam funcionar para os 2.
Estou com o seguinte codigo que funciona perfeitamente em ORacle
CEILING(DIVEZERO(CAST(ROW_NUMBER() OVER (PARTITION BY COCAPEDI.NUMEPEDI ORDER BY COCAPEDI.NUMEPEDI, FROMMVPE.ORDEMVPE,(SELECT MAX(PROD.NOMEPROD) FROM POCAPROD PROD WHERE FROMMVPE.CODIPROD = PROD.CODIPROD))AS INTEGER),23))|| '/' || CEILING(DIVEZERO(COUNT(COUNT(*)) OVER (PARTITION BY COCAPEDI.CODIPEDI),23))AS "Paginas"
Mas nao funciona em SQL Server por causa do '/'
Não é por causa dos || || por que o sistema converte tudo isso depois, quando executar.
Tentei colocar o CAST desta forma.
CAST(CEILING(DIVEZERO(CAST(ROW_NUMBER() OVER (PARTITION BY COCAPEDI.NUMEPEDI ORDER BY COCAPEDI.NUMEPEDI, FROMMVPE.ORDEMVPE,(SELECT MAX(PROD.NOMEPROD) FROM POCAPROD PROD WHERE FROMMVPE.CODIPROD = PROD.CODIPROD))AS INTEGER),23))AS varchar(10))|| '/' || CEILING(DIVEZERO(COUNT(COUNT(*)) OVER (PARTITION BY COCAPEDI.CODIPEDI),23))AS "Paginas"
Quando eu testo no sistema, informa que o SQL está correto.
MAs quando executo no Delphi, recebo a seguinte mensagem.
Conversion failed when converting date and/or time from character string
O que será que pode ser o erro?
>
|| também concatena no SqlServer ?!
Não. Concatenar para o SQL é o +
O Delphi faz isso sozinho, por que ele identifica qual é a base, SQL Server ou Oracle, e faz as conversões.
Algum destes campos ai á datetime??
Tem certeza ?!
De forma nativa confesso desconhecer isto.
Só se foi programado.
Consegui arrumar, era problema em um outro campo.
O sistema converte tudo quando vai passar pro banco, por isso nao gera erro.
Obrigado pela ajuda.
|| também concatena no SqlServer ?!