Erro: Parametros em Update com CASE
Boa tarde pessoal,
Estou começando a usar agora o comando UPDATE do SQL e estou com o seguinte problema:
update mat_pedido_itens
set DT_REC = :dt_rec, QTD_REC = :qtd_rec, QTD_PED = CASE WHEN((QTD_PEND + QTD_REC ) > QTD_PED) THEN
:old_rec + QTD_PED END
qnd tento usar o cod acima, paraece a seguinte mensagem: Data Type Unknown, tenho que especificar o ´tipo´ desses parametros?Se for por favor me digam onde, pois ja tentei em diversos lugares
Uso o IBX/FB e Delphi 7.
Obrigado
Estou começando a usar agora o comando UPDATE do SQL e estou com o seguinte problema:
update mat_pedido_itens
set DT_REC = :dt_rec, QTD_REC = :qtd_rec, QTD_PED = CASE WHEN((QTD_PEND + QTD_REC ) > QTD_PED) THEN
:old_rec + QTD_PED END
qnd tento usar o cod acima, paraece a seguinte mensagem: Data Type Unknown, tenho que especificar o ´tipo´ desses parametros?Se for por favor me digam onde, pois ja tentei em diversos lugares
Uso o IBX/FB e Delphi 7.
Obrigado
Neves777
Curtidas 0
Respostas
Emerson Nascimento
01/09/2005
creio que haja um problema lógico aí:
se (QTD_PEND + QTD_REC ) for maior que QTD_PED, então QTD_PED é igual a soma de :old_rec e QTD_PED.
e caso contrário? qual será o valor de QTD_PED???
deveria ter um ELSE nesse case:
se (QTD_PEND + QTD_REC ) for maior que QTD_PED, então QTD_PED é igual a soma de :old_rec e QTD_PED.
e caso contrário? qual será o valor de QTD_PED???
deveria ter um ELSE nesse case:
update mat_pedido_itens set DT_REC = :dt_rec, QTD_REC = :qtd_rec, QTD_PED = CASE WHEN (QTD_PEND + QTD_REC ) > QTD_PED THEN :old_rec + QTD_PED ELSE QTD_PED END
GOSTEI 0
Neves777
01/09/2005
O problema é mesmo de sintaxe, pois o codigo nao é nem executado, ja que como eu disse aparece a mensagem de erro: Data type Unknown.
Alguem sabe o por que???
Alguem sabe o por que???
GOSTEI 0
Emerson Nascimento
01/09/2005
qual a versão do FB que você utiliza?
GOSTEI 0
Neves777
01/09/2005
Versao 1.5, mas o banco esta no dialeto 1.0
GOSTEI 0
Gandalf.nho
01/09/2005
Versao 1.5, mas o banco esta no dialeto 1.0
Vc terá que converter seu banco para a versão 1.5, já que o CASE só foi implantado a partir dessa versão.
GOSTEI 0