Quanto ao uso do componente para executar a Stored Procedure eu sei. 

A questão é que a Stored Procedure abaixo não é criada, pois dá um erro 
(possivelmente de sintaxe). 
Eu quero saber se alguém descobre que erro é esse, ou se de repente eu estou 
fazendo algo errado no corpo da stored procedure para causar o erro.

O erro do IBExpert informa a linha em que está o IF e não compila a stored 
procedure no banco. Entendeu? A SP nem sequer chega a ser criada.

Edson


----- Mensagem original ----
De: Ricardo César Cardoso <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Terça-feira, 4 de Março de 2008 12:14:43
Assunto: Re: [delphi-br] OFF-TOPIC / SQL Firebird 2.0 - Stored Procedures

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] com.br> 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 PRODUTOSESTOQUELOJA S. 
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 PRODUTOSESTOQUELOJA S WHERE ((PRODUTOSESTOQUELO 
JAS.CODLOJA = :CODLOJA) AND (PRODUTOSESTOQUELOJ AS.CODPRODUTO = :CODPRODUTO) > 
0) THEN 
BEGIN 
BEGIN TRANSACTION 
UPDATE PRODUTOSESTOQUELOJA S SET PRODUTOSESTOQUELOJA S.ESTOQUE = 
PRODUTOSESTOQUELOJA S.ESTOQUE + :QUANTIDADE 
COMMIT 
END 
ELSE 
BEGIN 
BEGIN TRANSACTION 
INSERT INTO PRODUTOSESTOQUELOJA S (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]


 


      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]

Responder a