[firebase-br] Erro ao chamar Stored Procedure
Jeter Rabelo Ferreira
jeter.rabelo em gmail.com
Ter Maio 23 15:00:03 -03 2006
Boa tarde,
Estou modificando uma rotina de cálculo do meu sistema para Stored
Procedure.
Eu precisava de uma função de Length() para umas das condições.
Pequei um exemplo na lista de discussão de uma função deste tipo, segue
abaixo:
CREATE PROCEDURE STRLEN (
TEXTO VARCHAR(1000))
RETURNS (
TAM INTEGER)
AS
DECLARE VARIABLE BUF VARCHAR(1000);
BEGIN
TAM = 0;
BUF = '';
WHILE (NOT TEXTO LIKE BUF) DO
BEGIN
TAM = TAM + 1;
BUF = BUF || '_';
END
END
O Firebird cria a função corretamente, mas, na hora de chamá-la, acontece o
seguinte erro:
An error was found in the application program input parameters for the SQL
statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
STRLEN.
A Rotina que eu utilizo para chamar esta procedure é a seguinte:
if (id_conta_res <> '') then
begin
EXECUTE STATEMENT strlen(ID_CONTA_RES) INTO :I_QTDE;
if (I_QTDE = 7) then
begin
X_WHERE2 = X_WHERE2 || 'cx.ID_CONTA_RES=' || :id_conta_res;
if (id_cta_indiv <> '') then
X_WHERE2 = X_WHERE2 || 'and cx.ID_CTA_INDIV=' || :id_cta_indiv;
end
else
begin
X_WHERE2 = X_WHERE2 || 'cx.ID_CONTA LIKE ' || :id_conta_res;
X_WHERE2 = X_WHERE2 || '%';
end
end
Alguem poderia me ajudar?
Delphi + DBExpress + Firebird 1.5.3.4870
[]'s
Jéter Rabelo
Mais detalhes sobre a lista de discussão lista