Stored Procedure - Erro na criação
Olá amigostudo bem com vcs...espero que sim
eu estou com um probleminha e acho que vc spodem me ajudar é o seguinte
eu estou tentando criar no Interbase um Stored Procedure para consultar uma tabela...uma select bem simples...usando esse código
porém o IbConsole me retorna o seguinte erro
e se eu tirar a vírgula...ficando assim
ele me retorna esse erro
onde estou errando?
Desde já agradeço
eu estou com um probleminha e acho que vc spodem me ajudar é o seguinte
eu estou tentando criar no Interbase um Stored Procedure para consultar uma tabela...uma select bem simples...usando esse código
SET TERM ^ ; CREATE PROCEDURE "SELECIONA_ALUNO" (PRCODIGO INTEGER) AS begin select codigo,nome,endereco,telefone from aluno where codigo = :prcodigo; end ^ SET TERM ; ^
porém o IbConsole me retorna o seguinte erro
Dynamic SQL Error
SQL error code = -104
Token unknown - line 4, char 73
;
Statement: CREATE PROCEDURE ´SELECIONA_ALUNO´ (PRCODIGO INTEGER)
AS
begin
select codigo,nome,endereco,telefone from aluno where codigo = :prcodigo;
end
e se eu tirar a vírgula...ficando assim
SET TERM ^ ; CREATE PROCEDURE "SELECIONA_ALUNO" (PRCODIGO INTEGER) AS begin select codigo,nome,endereco,telefone from aluno where codigo = :prcodigo end ^ SET TERM ; ^
ele me retorna esse erro
Dynamic SQL Error
SQL error code = -104
Token unknown - line 5, char -1
end
Statement: CREATE PROCEDURE ´SELECIONA_ALUNO´ (PRCODIGO INTEGER)
AS
begin
select codigo,nome,endereco,telefone from aluno where codigo = :prcodigo
end
onde estou errando?
Desde já agradeço
Lucianoiron
Curtidas 0
Respostas
Gandalf.nho
13/03/2006
Tente assim (vc não criou as variáveis de saída para que a função retorne algo e esqueceu a cláusula INTO no SELECT) :
SET TERM ^ ; CREATE PROCEDURE "SELECIONA_ALUNO" (PRCODIGO INTEGER) RETURNS ( codigo INTEGER, nome VARCHAR(tamanho), endereco VARCHAR(tamanho), telefone VARCHAR(tamanho)) AS begin for select codigo, nome, endereco, telefone from aluno where codigo = :prcodigo into :codigo, :nome, :endereco, :telefone do suspend; end ^ SET TERM ; ^
GOSTEI 0
Lucianoiron
13/03/2006
gandalf.nho funcionou certinho...sí mais uma dúvida....como eu faço isso via Delphi?...por exemplo no create de um form ou co click de um botão
Ate + amigo
Ate + amigo
GOSTEI 0
Lucianoiron
13/03/2006
como vc já deve ter percebibo...sou leigo em Stored Procedure...então além da dúvida acima gostaria de saber se há possibilidade de colocar o resultado dessa consulta num DbGrid...estou usando o componente TStoredProc da paleta BDE
Abraços
Abraços
GOSTEI 0
Gandalf.nho
13/03/2006
Como é uma SP do tipo selecionável (que pode retornar uma ou mais linhas) use TQuery e não TStoredProc (que é recomendado para SPs executáveis). Basta fazer assim:
Uma sugestão, procure não usar BDE que já é ultrapassado. Experimente usar componentes de acesso direto ao banco (IBX, por exemplo) ou até mesmo DBExpress.
SELECT * FROM procedure(lista_parâmetros)
Uma sugestão, procure não usar BDE que já é ultrapassado. Experimente usar componentes de acesso direto ao banco (IBX, por exemplo) ou até mesmo DBExpress.
GOSTEI 0