Ricardo, do seu jeito não consegui... mais olhando outras apostilas que
tenho eu resolvi em parte, explico melhor.

A procedure ficou assim:

SET TERM ^ ;
CREATE PROCEDURE INCL_SERVICOS (
    wcdevento integer)
as
declare variable wcodest integer;
declare variable wvalor numeric(12,2);
BEGIN
FOR select CDESTOQUE, VALORVENDA from BDESTOQUE WHERE INCLUIPACOTE = 'S'
INTO :WCODEST, :WVALOR
DO
BEGIN
INSERT into servicosevento (CDEVENTO, CDESTOQUE, VALORCOBRADO, QTDE,
DATAPEDIDO, CONFIRMADO)
values (:WcdEvento, :WCODEST, :WVALOR, 100, 'Now', 'S');
END

END^
SET TERM ; ^


Eu agora estou com outro problema..... precisando de ajuda novamente...

Utilizando o IBExpert, mandando executar esta procedure, passo como
parametro um número de pedido válido,
e ela inclui todos os itens do estoque no arquivo certinho... todos eles.

Agora, dentro da minha aplicação, quando eu termino de incluir um pedido,
guardo o numero do pedido em uma variável, fecho o CDS,
Abro o CDS, o pedido está gravado normalmente, ai eu mando executar a
procedure desta forma:

Dm.SP_InclServicos.Params[0].AsInteger := Wpedido;
Dm.SP_InclServicos.ExecProc;

Estou recebendo mensagens de erro dizendo que esta havendo violação de
chave.

Alguem sabe porque????



-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br]em
nome de Ricardo César Cardoso
Enviada em: quinta-feira, 28 de maio de 2009 09:04
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Ajuda com stored procedure


Bom dia Vinícius!

Ainda estou pesquisando a respeito, mas tenta modificar essa tua SP para o
seguinte e me diz o que deu (acerto ou erro e mensagem):

{******** INÍCIO COPY/PASTE ********}
CREATE PROCEDURE INCL_SERVICOS(
  wcdEvento Integer)AS
DECLARE VARIAVLE numEvento INTEGER;
BEGIN
  numEvento = wcdEvento;

  INSERT INTO TBservicos(
    cdestoque,
    cdevento,
    valorcobrado,
    qtde,
    datapedido,
    confirmado
  )
  VALUES IN(
    SELECT cdestoque, :numEvento, valorvenda, 100, Now, 'S'
    FROM bdestoque
    WHERE incluipacote = 'S'
  );
END
{******** FINAL COPY/PASTE ********}

Atte,
Ricardo.

1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS.

2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor
compreendida.

3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!

--- Em qui, 28/5/09, Vinicius da Silva Pinto <vinic...@cnen.gov.br>
escreveu:













Valeu Ricardo, eu postei tbm no grupo Firebase, mais não obtive nenhuma

resposta.

Já pesquisei bastante, tenho muito material impresso e alguns livros sobre o

assunto.

É que em todo material que tenho, não faz referencia a incluir uma variavel

junto com um select na inclusão,

e todas as mexidas que eu dou sempre dá erro, por isso recorri a lista.

segue a procedure que estou tentando criar:



CREATE PROCEDURE INCL_SERVICOS (WcdEvento Integer) as

BEGIN

INSERT into TBservicos (CDESTOQUE, CDEVENTO, VALORCOBRADO, QTDE, DATAPEDIDO,

CONFIRMADO)

values in (select CDESTOQUE, :WcdEvento, VALORVENDA, 100, Now, 'S'

from bdestoque where INCLUIPACOTE = 'S');



Já tentei sem o IN, já tentei com a variavel entre aspas e sem o :



O programa esta rodando pois estou fazendo a inclusão na mão, até que

consiga resolver este problema.



Peço desculpa ao pessoal da lista por ter enviado duas vezes o mesmo pedido

de ajuda.



Um abraço a todos.



















      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>





Responder a