[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