[firebase-br] Posso executar EXECUTE BLOCK com componenteClientDataSet?
Rubem Nascimento da Rocha
djpardalrocha em hotmail.com
Qua Dez 27 15:18:13 -03 2006
Será que não precisa daquela jogada com SET TERM pra poder usar isso daí?
Experimentou isso? Eu não uso o FireBird 2.0, por isso estou apenas
deduzindo. Sds.
>From: "Paulo Geloramo" <paulogeloramo em terra.com.br>
>Reply-To: FireBase <lista em firebase.com.br>
>To: "Lista Firebird" <Lista em firebase.com.br>
>Subject: [firebase-br] Posso executar EXECUTE BLOCK com
>componenteClientDataSet?
>Date: Wed, 27 Dec 2006 15:16:12 -0200
>
>Posso chamar o EXECUTE BLOCK atraves do componente ClientDataSet
>conforme abaixo?
>
>Pois se executo o EXECUTE BLOCK no IBExpert funciona, mas chamando
>conforme abaixo apresenta a mensagem de erro abaixo:
>
>
>Select := 'EXECUTE BLOCK (ID_PRODUTO INTEGER = :ID_PRODUTO) ';
>Select := Select + 'RETURNS ( ';
>...
>Select := Select + 'END';
>
>Neste ponto copio a variavel Select e executo no IBExpert com sucesso.
>
>
>ClientDataSet1.Close;
>ClientDataSet1.CommandText := Select;
>ClientDataSet1.Params.ParamByName('ID_PRODUTO').AsInteger :=
>dmA.cdsSaldo.FieldByName('ID_PRODUTO').AsInteger;
>ClientDataSet1.Open;
>
>
>---------------------------
>Teste
>---------------------------
>Erro no servidor: Token unknown - line 1, column 291
>?.
>---------------------------
>OK
>---------------------------
>
>segue abaixo o Select na integra:
>
> Select := 'EXECUTE BLOCK (ID_PRODUTO INTEGER = :ID_PRODUTO) ';
> Select := Select + 'RETURNS ( ';
> Select := Select + 'CODIGO_PONTO INTEGER, ';
> Select := Select + 'NOME_PRODUTO VARCHAR(30), ';
> Select := Select + 'EDICAO_CAPA VARCHAR(6), ';
> Select := Select + 'REMESSA INTEGER, ';
> Select := Select + 'DEVOLUCAO INTEGER, ';
> Select := Select + 'VENDA INTEGER, ';
> Select := Select + 'LANCAMENTO DATE, ';
> Select := Select + 'CODIGO_EDICAO INTEGER, ';
> Select := Select + 'TOTAL INTEGER) ';
> Select := Select + 'AS ';
> Select := Select + 'BEGIN ';
> Select := Select + ' FOR SELECT CODIGO_PONTO ';
> Select := Select + ' FROM PONTO ';
> Select := Select + ' INTO :CODIGO_PONTO DO ';
> Select := Select + ' BEGIN ';
> Select := Select + ' FOR SELECT FIRST ' +
>IntToStr(cbHistoricoRemessaDevolucaoVenda.ItemIndex) + ' P.NOME_PRODUTO,
>E.EDICAO_CAPA, I.REMESSA, I.DEVOLUCAO, I.VENDA, E.LANCAMENTO,
>E.CODIGO_EDICAO, ';
> Select := Select + ' (SELECT SUM(M.REMESSA) FROM
>CE_PONTO_ITEM M WHERE M.ID_EDICAO = E.ID_EDICAO) AS TOTAL ';
> Select := Select + ' FROM CE_PONTO_ITEM I ';
> Select := Select + ' JOIN PONTO T ON (I.ID_PONTO =
>T.ID_PONTO) ';
> Select := Select + ' JOIN EDICAO E ON (I.ID_EDICAO =
>E.ID_EDICAO) ';
> Select := Select + ' JOIN PRODUTO P ON (E.ID_PRODUTO =
>P.ID_PRODUTO) ';
> Select := Select + ' WHERE E.ID_PRODUTO = :ID_PRODUTO AND
>T.CODIGO_PONTO = :CODIGO_PONTO AND (I.REMESSA + I.DEVOLUCAO + I.VENDA > 0)
>';
> Select := Select + ' ORDER BY E.CODIGO_EDICAO DESC ';
> Select := Select + ' INTO :NOME_PRODUTO, :EDICAO_CAPA,
>:REMESSA, :DEVOLUCAO, :VENDA, :LANCAMENTO, :CODIGO_EDICAO, :TOTAL DO ';
> Select := Select + ' BEGIN ';
> Select := Select + ' SUSPEND; ';
> Select := Select + ' END ';
> Select := Select + ' END ';
> Select := Select + 'END';
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br
Mais detalhes sobre a lista de discussão lista