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]