Fórum Componente SQLStoredProd (dbExpress) configurado em IB preciso mudar para SQL Server 2008 #419828
12/07/2012
0
Estou usando um sistema que usava a base de dados IB. Estou usando agora o SQL Server.
Acontece que quando a stored procedure tem parametros de saida, da erro.
Alguem sabe se eu preciso configurar alguma coisa no componente?
Se a procedure é so um select. Tudo funciona bem.
Se a procedure recebe parametros e tem valores de saída. Erro na abertura do procedure
List index out of bounds (o)
Obrigado.
A procedure se executa normalmente dentro do SQL Server.
Segue a procedure
********************************************
USE [Client_NOMCLIENT]
GO
/****** Object: StoredProcedure [dbo].[PROC_BUSCA_PARAMETRO_COLUNA] Script Date: 07/12/2012 15:16:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROC_BUSCA_PARAMETRO_COLUNA](
@Formulario VARCHAR(40),
@CodUsuario INTEGER,
@Chave VARCHAR(60),
@Configuracao vARCHAR(1) OUTPUT,
@Indice SMALLINT OUTPUT,
@Tamanho INTEGER OUTPUT)
AS
BEGIN
SET @Configuracao = (SELECT CONFIGURACAO
FROM PARAM_COLUNA
WHERE FORMULARIO = @Formulario
AND CODIGO_USUARIO = @CodUsuario
AND CHAVE = @Chave);
SET @Indice = ( SELECT INDICE
FROM PARAM_COLUNA
WHERE FORMULARIO = @Formulario
AND CODIGO_USUARIO = @CodUsuario
AND CHAVE = @Chave);
SET @Tamanho = ( SELECT TAMANHO
FROM PARAM_COLUNA
WHERE FORMULARIO = @Formulario
AND CODIGO_USUARIO = @CodUsuario
AND CHAVE = @Chave);
SELECT @Configuracao , @Indice , @Tamanho
END
Rfb
Curtir tópico
+ 0Posts
12/07/2012
Deivison Melo
Há como postar?
Gostei + 0
12/07/2012
Rfb
Na abertura da procedure
Gostei + 0
12/07/2012
Rfb
Gostei + 0
12/07/2012
Deivison Melo
Será que a quantidade de campos adicionada não está diferente?
Gostei + 0
12/07/2012
Rfb
Os parametros são de entrada.
***********************************
with stdBuscaParametroColuna do
begin
Close;
// Percorre a lista de variáveis de parâmetros
// Atribui os valores aos parâmetros da procedure
ParamByName(FORMULARIO).AsString := Copy(FRMSIS_MENU_PRINCIPAL.Formulario, 1, 40);
ParamByName(CODUSUARIO).AsInteger := FRMSIS_MENU_PRINCIPAL.CodUsuAtual;
ParamByName(CHAVE).AsString := Chave;
// Executa a procedure
ExecProc;
// Prepara o StringList para retornar se existir dados
if not ParamByName(CONFIGURACAO).IsNull then
Colunas.Visible := StrToBoo(ParamByName(CONFIGURACAO).AsString)
else
Colunas.Visible := True;
if not ParamByName(INDICE).IsNull then
Colunas.Index := ParamByName(INDICE).AsInteger
else
Colunas.Index := -1;
if not ParamByName(TAMANHO).IsNull then
Colunas.Tamanho := ParamByName(TAMANHO).AsInteger
else
Colunas.Tamanho := -1;
end;
Gostei + 0
13/07/2012
São Ti
Exemplo:
No banco você usou @Tamanho e na aplicação Tamanho.
Dá uma olhada e veja se isso resolve, mais tarde olho com mais calma a sua rotina.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)