[firebase-br] Pesquisar produto com alteração no preço
Ronaldo Souza
ronaldsouza01 em gmail.com
Qua Mar 16 15:27:43 -03 2011
Não sei se no 2010 é possível, mas vc não poderia, em tempo de execução,
alterar a linha do SQLDataSet ? Tipo:
SQLDataSet.SQL[n] := 'WHERE P.CODIGOF_PRODUTO = ' + QuotedStr(Codigo)
É só uma sugestão, não tenho o 2010 aqui por isso não tenho como testar.
Sucesso
Ronaldo Alves de Souza
AtonWare Ltda
Em 16 de março de 2011 15:20, Paulo Geloramo
<paulogeloramo em terra.com.br>escreveu:
> Uma solução foi usando Execute Block, gostaria de encontrar
> uma solução usando select ou sub-select, pois a solução
> com SP ou Execute Block não pode ser usada, não posso
> alterar o banco e Execute Block não passa pelos
> componentes SQLDataSet devido aos dois pontos
> antes dos parâmetros D2010.
>
> Alguma sugestão usando select ou sub-select?
>
> EXECUTE BLOCK RETURNS(
> CODIGOF_PRODUTO INTEGER,
> NOME_PRODUTO VARCHAR(30),
> CODIGOF_EDICAO INTEGER,
> PRECO NUMERIC(18,2))
> AS
> DECLARE EDICAO_ANTERIOR INTEGER;
> DECLARE PRECO_ANTERIOR NUMERIC(18,2);
> BEGIN
> FOR SELECT DISTINCT P.CODIGOF_PRODUTO, P.NOME_PRODUTO, E.CODIGOF_EDICAO,
> E.PRECO
> FROM NOTA_PONTO_ITEM I
> JOIN NOTA_PONTO N ON N.ID_NOTA_PONTO = I.ID_NOTA_PONTO
> JOIN EDICAO E ON E.ID_EDICAO = I.ID_EDICAO
> JOIN PRODUTO P ON P.ID_PRODUTO = E.ID_PRODUTO
> WHERE N.CODIGO_NOTA_PONTO = 1680
> ORDER BY P.NOME_PRODUTO
> INTO CODIGOF_PRODUTO, NOME_PRODUTO, CODIGOF_EDICAO, PRECO DO
> BEGIN
> EDICAO_ANTERIOR = CODIGOF_EDICAO - 1;
> PRECO_ANTERIOR = 0;
> SELECT E.PRECO
> FROM EDICAO E
> JOIN PRODUTO P ON P.ID_PRODUTO = E.ID_PRODUTO
> WHERE P.CODIGOF_PRODUTO = :CODIGOF_PRODUTO AND
> E.CODIGOF_EDICAO = :EDICAO_ANTERIOR
> INTO PRECO_ANTERIOR;
> IF ((PRECO_ANTERIOR > 0) AND (PRECO <> PRECO_ANTERIOR)) THEN
> SUSPEND;
> END
> END
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista