Bem... não sei se entendi sua pergunta, mas se vc quer fazer isso no Delphi, 
pode fazer usando o TSQLConnection (DBExpress) passando esta stored procedure. 
Cada parâmetro é acessado por um "array" Params e o índice de cada parâmetro. O 
primeiro parâmetro tem o índice 0 no "array" de parâmetros e assim por diante. 
Para criar a procedure, vc usa o método "Execute".

Acho que é isso. Se não for, detalhe melhor o problema.

Atte,
Ricardo.

Edson Cabral <[EMAIL PROTECTED]> escreveu:                               
Perdoem o off-topic, é que estou com certa urgência.
 Quem trabalha com Stored Procedures poderá tirar essa dúvida.
 --------------------
 
 Olá pessoal. 
 
 Estou com uma dúvida em relação a criação de Stored Procedures no Firebird 
2.0. 
 Sempre que precisei usar SPs, as criei a partir do IBExpert. 
 Só que agora preciso de uma stored procedure que tenho que criar na unha e 
estou meio perdido... 
 
 Trata-se de uma stored procedure para atualizar o Estoque (campo ESTOQUE) da 
tabela PRODUTOSESTOQUELOJAS. 
 Preciso passar três parâmetros: CodLoja e CodProduto, e mais a Quantidade que 
desejo incrementar o estoque. 
 
 A SP deve verificar se o produto já existe cadastrado a partir dos parâmetros 
de entrada CodProduto e CodLoja (se achar algum registro com os campos CodLoja 
e CodProduto que confiram com os parâmetros). 
 Caso exista, deve-se dar um UPDATE na tabela para atualizar o estoque 
somando-o a variável QUANTIDADE (mais um parâmetro de entrada). 
 
 Caso não exista ainda cadastrado, deve-se dar um INSERT na tabela cadastrando 
o produto com a quantidade em estoque que passei como parâmetro QUANTIDADE. 
 O código que tenho (e que não funciona, pois dá erro na criação da SP) é esse 
abaixo: 
 
 Código: 
 
 SET TERM ^ ; 
 CREATE PROCEDURE SP_ALTERA_ESTOQUE( 
   CODLOJA INTEGER, 
   CODPRODUTO INTEGER, 
   QUANTIDADE INTEGER) 
 AS 
 BEGIN 
   IF (Select Count(*) From PRODUTOSESTOQUELOJAS WHERE 
((PRODUTOSESTOQUELOJAS.CODLOJA = :CODLOJA) AND (PRODUTOSESTOQUELOJAS.CODPRODUTO 
= :CODPRODUTO) > 0) THEN 
   BEGIN 
     BEGIN TRANSACTION 
     UPDATE PRODUTOSESTOQUELOJAS SET PRODUTOSESTOQUELOJAS.ESTOQUE = 
PRODUTOSESTOQUELOJAS.ESTOQUE + :QUANTIDADE 
     COMMIT 
   END 
   ELSE 
   BEGIN 
     BEGIN TRANSACTION 
     INSERT INTO PRODUTOSESTOQUELOJAS (ESTOQUE) VALUES (QUANTIDADE) 
     COMMIT 
   END 
 END; 
 SET TERM ; ^ 
  
 
 Obrigado a todos. 
 Edson 
 
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
 http://br.mail.yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
     
             



       
---------------------------------
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

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

Responder a