[firebase-br] Problemas com Firebird 1.5 + Stored Procedure +Delphi 7

Cristiano Rebonatto crebonatto em upf.br
Qua Out 27 14:28:36 -03 2004


Faltou um SUSPEND !
Tente algo assim :

CREATE PROCEDURE "selecionar"
RETURNS (qtde integer)
as
BEGIN
  SELECT COUNT(*) FROM TESTE INTO :qtde;
   SUSPEND;
END

+-----------------------------------------------------------+
 Cristiano Rebonatto
 Setor de Análise e Desenvolvimento
 Divisão de Tecnologia da Informação
 Universidade de Passo Fundo
 Passo Fundo - RS
+-----------------------------------------------------------+
----- Original Message ----- 
From: "Junior" <jrjuniorsp em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, October 27, 2004 2:09 PM
Subject: [firebase-br] Problemas com Firebird 1.5 + Stored Procedure +Delphi
7


Boa tarde Lista

estou com um problema que não consigo solucionar sobre Stored Procedure.

criei uma tabela bem simples de Teste
CREATE TABLE TESTE (
    CODIGO INTEGER NOT NULL,
    NOME VARCHAR (40),
    PRIMARY KEY(CODIGO)
);

Adicionei manualmente 4 registros normal.
Para minha primeira SP, eu criei uma simple para adicionar valores

CREATE PROCEDURE "inserir"(
CODIGO INTEGER,
NOME VARCHAR (40))
as
BEGIN
  INSERT INTO TESTE (CODIGO , NOME ) VALUES (:CODIGO,:NOME);
END

No Delphi 7, estou usando os componentes IBX e funcionou legal (componentes
utilizados: IBDatabase,IBTransaction,IBStoredProc).

O problema é retornar valores.
tentei fazer um Select Count(*) e retornar esse valor (no banco de dados
possui 4 registros) e mesmo assim me retorna valor NENHUM!!

CREATE PROCEDURE "selecionar"
RETURNS (qtde integer)
as
BEGIN
  SELECT COUNT(*) FROM TESTE INTO :qtde;
END

Rodando pelo EMS QuickDesk nao retorna nada, e pelo Delphi utilizando os
componentes (IBDatabase, IBTransaction, IBQuery). No caso do IBQuery,
coloquei -------select * from "selecionar"------
Nesse caso não mostra nenhum registro, o certo seria mostrar 4.

Agora o último problema é quando uma consulta retorna vários valores, por
exemplo
CREATE PROCEDURE "selecionar"
RETURNS (codigo integer,nome varchar(40))
as
BEGIN
  SELECT codigo,nome FROM TESTE INTO :codigo, :nome;
END

Aqui tanto no QuickDesk como no Delphi da erro de "Multiples Rows in
Singleton Select"

Alguem poderia me ajudar fazendo favor?

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br






Mais detalhes sobre a lista de discussão lista