Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asp.net

Problema na execução de uma SP usando command.

Recommended Posts

Tenho o scritp para chamar a procedure relatorio abaixo, mas quando vou executar o scrtip recebo como erro:

'ERRO::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ADODB.Command (0x800A0BB9)

Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

/satec/relatorio.asp, line 80

A linha 80 é a em vermelho e negrito.

 

'Efetuando a chamada da Stored Procedure::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

'Criando a Conexao com o banco de dados

Set SatecConexao = Server.CreateObject("ADODB.Connection")

'SatecStrConexao = "Driver={SQL Server};Server=pb0083nt001;Database=satec;Uid=sa;Pwd=;"

SatecConexao.Open MM_satec_STRING

'Criando o command para execução da Stored Procedure

Set SatecComando = Server.CreateObject("ADODB.Command")

'Passando o Nome da SP para p command

SatecComando.CommandText = "relatorio"

'Informando que o tipo de command que vou utilizar é uma SP

SatecComando.CommandType = adCmdStoredProc 'Aqui está gerando um erro de Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito. 'Informando qual a conexão que estou usando para acessar a base de dados

Set SatecComando.ActiveConnection = SatecConexao

'Criando o parâmetro inicial

Set SatecComandoPar = SatecComando.CreateParameter ("@data_inicial", adChar, adParamInput, 10, data_inicial)

'Adicionando o parâmetro

SatecComando.Parameters.Append SatecComandoPar

'Criando o segundo parâmetro

Set SatecComandoPar = SatecComando.CreateParameter ("@data_final", adChar, adParamInput, 10, data_final)

'Adicionando o parâmetro

SatecComando.Parameters.Append SatecComandoPar

'Executando o command

Set Satec = SatecComando.Execute()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o problema relacionado acima a solução é a seguinte.

 

Como os parametros para se trabalhar com o command não são definidos no ASP, deve-se utilizar ao invés dos nomes os números correspondentes, no caso do código acima, basta que sejam alteradas as seguintes linhas do código.

 

SatecComando.CommandType = adCmdStoredProc, substituindo no caso o nome adCmdStoredProc por 4, que é o número correspondente, ficando SatecComando.CommandType = 4

 

Nas linhas abaixo tambem deve ser efetuada a substituição

 

Set SatecComandoPar = SatecComando.CreateParameter ("@data_inicial", adChar, adParamInput, 10, data_inicial), ficando

 

Set SatecComandoPar = SatecComando.CreateParameter ("@data_inicial", 200, 1, 10, data_inicio)

 

e

 

Set SatecComandoPar = SatecComando.CreateParameter ("@data_final", adChar, adParamInput, 10, data_final), ficando

 

Set SatecComandoPar = SatecComando.CreateParameter ("@data_final", 200, 1, 10, data_final)

 

Para verificar todos os valores numéricos dos parametros do command.CreateParameter, basta acessar

 

DevGuru

 

Obrigado a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.