Ir para conteúdo

Arquivado

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

Martinsrj

Operação não permitida quando o objeto está fechado

Recommended Posts

Olá pessoal, bom dia!

Tinha uma aplicação funcionando no meu micro normalmente, após a formatação do micro deixou de funcionar.

Agora quando tento logar no sistema da esse erro:

Tipo de erro:

ADODB.Connection (0x800A0E78)

Operação não permitida quando o objeto está fechado.

/wapReembolso/logar.asp, line 17

 

Porem no proprio sql server fiz um teste de consulta incluido a clausula where está funcionando dessa forma conforme a imagem abaixo:

http://uploaddeimagens.com.br/imagem/ver/sqlserver.JPG

Imagem Postada

 

Abaixo segue o meu código:

logar.asp

<%
'-- Retirar do internet explorer o cache!!!
Response.Expiresabsolute = Now() - 2
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
<!--#Include file="conexaopontoweb.asp"-->
<%
Call gpAbreConexao

var_Login = TRIM(Request.Form("txt_login"))
var_Senha = TRIM(Request.Form("txt_senha"))


strSQL = "SELECT * FROM BD_atChamado.dbo.usuarios WHERE login='" & var_Login & "' AND senha='" & var_Senha & "'"
Set rsLogin = session("ObjConn").Execute(strSQL)


If rsLogin.EOF Then
	Response.Write "Login ou Senha inválida!"
	'Response.write "<script>alert('Atenção, login ou senha inválidos!')<script>" 
    Response.AddHeader "Refresh", "1;URL=http://localhost/wapReembolso/wapReembolso/login.asp"
Else
	gpSQL = "SELECT * FROM tbChamado"
	Session("login") = rsLogin("login")
	Session("senha") = rsLogin("senha")
	Session("nome") = rsLogin("nome")
	Session("temAcesso") = 1
	Session("gpSQL") = gpSQL
	
	Response.Redirect "http://localhost/wapReembolso/wapReembolso/index2.asp" 'página restrita
 
	'Response.write var_Login & "<br>"
	'Response.write var_Senha

Call gpFechaConexao()
	
End If
%>

Aqui segue a pagina da conexao com o banco:

<%
Const gpVersaoSistema = "Versão: 1.0"
Const userName_imp="paulo"
Const passWord_imp="alfaω!@#"
Const dataBaseName_imp="BD_atChamado"
Const serverName_imp = "JESUS-2FAB328AB\SQLEXPRESS"


Sub gpAbreConexao()
	Dim strConn
	Set session("ObjConn") = Server.CreateObject("ADODB.Connection")
	strConn = "Provider=SQLOLEDB;Persist Security Info=False;User ID="&userName_imp&";Password="&passWord_imp&";Initial Catalog="&dataBaseName_imp&";Data Source="&serverName_imp
	session("ObjConn").ConnectionString = strConn
	On Error Resume Next
	session("ObjConn").Open 
	session("ObjConn").CommandTimeout=3600
	if Err <> 0 Then
		response.write "<font face=arial size=2 color=#000055>Ocorreu o seguinte Erro ao abrir o BD Ponto Web : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
	ELSE
		'response.write "<font face=arial size=2 color=#000055>conexão efetuado com sucesso : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
	End if
	On Error goto 0
	Session("ConexaoAberta") = "Sim"
End Sub

Sub gpFechaConexao()
    session("ObjConn").close
    Set session("ObjConn") = Nothing 
    session("ObjConn")=""
    Session("ConexaoAberta")="Não"
End sub

%> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique a versão do MDAC,esse erro pode ser causado quando você tenta acessar os valores de um conjunto de registros vazio ou um conjunto de registros que já tenha sido fechado. A causa mais comum, no entanto, parece resultar de chamar um procedimento armazenado que não usa NOCOUNT SET ON.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá xanburzum, boa tarde!

Tentei instalar essa versão: Microsoft Data Access Components (MDAC) 2.8, mas não consegui instalar dando a seguinte mensagem de erro:

http://uploaddeimagens.com.br/imagem/index/mdac.JPG

Imagem Postada

Cliquei em detalhes da imagem acima e aparece isso:

http://uploaddeimagens.com.br/imagem/ver/detalhemdac.JPG

Imagem Postada

Abaixo eu coloquei sobre o sql server instalado na minha maquina:

Microsoft SQL Server Management Studio Express: 9.00.2047.00

Microsoft Data Access Components (MDAC): 2000.085.1132.00 (xpsp.080413-0852)

Microsoft MSXML: 2.6 3.0 5.0 6.0

Microsoft Internet Explorer: 8.0.6001.18702

Microsoft .NET Framework: 2.0.50727.3603

Operating System: 5.1.2600

 

Abraços.

 

verifique a versão do MDAC,esse erro pode ser causado quando você tenta acessar os valores de um conjunto de registros vazio ou um conjunto de registros que já tenha sido fechado. A causa mais comum, no entanto, parece resultar de chamar um procedimento armazenado que não usa NOCOUNT SET ON.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

desinstala e instala novamente o MDAC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, boa noite!

Desinstalei o SQLServer 2005 e instalei o 2008 e continua dando o mesmo erro.

Abaixo segue o sumario da instalação que fiz do SQL Server 2008:

 

Overall summary:

Final result: Passed

Exit code (Decimal): 0

Exit message: Passed

Start time: 2010-05-09 16:37:16

End time: 2010-05-09 17:01:13

Requested action: Install

 

Machine Properties:

Machine name: JESUS-2FAB328AB

Machine processor count: 1

OS version: Windows XP

OS service pack: Service Pack 3

OS region: United States

OS language: Português (Brasil)

OS architecture: x86

Process architecture: 32 Bit

OS clustered: No

 

Product features discovered:

Product Instance Instance ID Feature Language Edition Version Clustered

 

Package properties:

Description: SQL Server Database Services 2008 R2

ProductName: SQL Server 2008 R2

Type: RTM

Version: 10

SPLevel: 0

Installation location: d:\d7fae86ad07c07bb5bcd96ae6ce251f0\x86\setup\

Installation edition: EXPRESS_ADVANCED

 

User Input Settings:

ACTION: Install

ADDCURRENTUSERASSQLADMIN: True

AGTSVCACCOUNT: AUTORIDADE NT\NETWORK SERVICE

AGTSVCPASSWORD: *****

AGTSVCSTARTUPTYPE: Disabled

ASBACKUPDIR: Backup

ASCOLLATION: Latin1_General_CI_AS

ASCONFIGDIR: Config

ASDATADIR: Data

ASDOMAINGROUP: <empty>

ASLOGDIR: Log

ASPROVIDERMSOLAP: 1

ASSVCACCOUNT: <empty>

ASSVCPASSWORD: *****

ASSVCSTARTUPTYPE: Automatic

ASSYSADMINACCOUNTS: <empty>

ASTEMPDIR: Temp

BROWSERSVCSTARTUPTYPE: Disabled

CONFIGURATIONFILE:

CUSOURCE:

ENABLERANU: True

ENU: True

ERRORREPORTING: False

FARMACCOUNT: <empty>

FARMADMINPORT: 0

FARMPASSWORD: *****

FEATURES: SQLENGINE,REPLICATION,SSMS,SNAC_SDK

FILESTREAMLEVEL: 0

FILESTREAMSHARENAME: <empty>

FTSVCACCOUNT: <empty>

FTSVCPASSWORD: *****

HELP: False

IACCEPTSQLSERVERLICENSETERMS: False

INDICATEPROGRESS: False

INSTALLSHAREDDIR: C:\Arquivos de programas\Microsoft SQL Server\

INSTALLSHAREDWOWDIR: C:\Arquivos de programas\Microsoft SQL Server\

INSTALLSQLDATADIR: <empty>

INSTANCEDIR: C:\Arquivos de programas\Microsoft SQL Server\

INSTANCEID: SQLServer2008

INSTANCENAME: SQLSERVER2008

ISSVCACCOUNT: NT AUTHORITY\NetworkService

ISSVCPASSWORD: *****

ISSVCSTARTUPTYPE: Automatic

NPENABLED: 0

PASSPHRASE: *****

PCUSOURCE:

PID: *****

QUIET: False

QUIETSIMPLE: False

ROLE: AllFeatures_WithDefaults

RSINSTALLMODE: FilesOnlyMode

RSSVCACCOUNT: <empty>

RSSVCPASSWORD: *****

RSSVCSTARTUPTYPE: Automatic

SAPWD: *****

SECURITYMODE: SQL

SQLBACKUPDIR: <empty>

SQLCOLLATION: Latin1_General_CI_AS

SQLSVCACCOUNT: AUTORIDADE NT\SYSTEM

SQLSVCPASSWORD: *****

SQLSVCSTARTUPTYPE: Automatic

SQLSYSADMINACCOUNTS: JESUS-2FAB328AB\Paulo Martins

SQLTEMPDBDIR: <empty>

SQLTEMPDBLOGDIR: <empty>

SQLUSERDBDIR: <empty>

SQLUSERDBLOGDIR: <empty>

SQMREPORTING: True

TCPENABLED: 0

UIMODE: AutoAdvance

X86: False

 

Configuration file: C:\Arquivos de programas\Microsoft SQL Server\100\Setup Bootstrap\Log\20100509_163421\ConfigurationFile.ini

 

Detailed results:

Feature: Database Engine Services

Status: Passed

MSI status: Passed

Configuration status: Passed

 

Feature: SQL Client Connectivity SDK

Status: Passed

MSI status: Passed

Configuration status: Passed

 

Feature: SQL Server Replication

Status: Passed

MSI status: Passed

Configuration status: Passed

 

Feature: Management Tools - Basic

Status: Passed

MSI status: Passed

Configuration status: Passed

 

Rules with failures:

 

Global rules:

 

Scenario specific rules:

 

Rules report file: C:\Arquivos de programas\Microsoft SQL Server\100\Setup Bootstrap\Log\20100509_163421\SystemConfigurationCheck_Report.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já verificou se está perdendo a sessao session("ObjConn") ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou fazer o teste quando chegar em casa. Acredito que o problema pode ser até mesmo o IIS, pois comentei todas as linhas e dei um response.write nas variaveis do campo login e senha, da o mesmo erro.

 

Você já verificou se está perdendo a sessao session("ObjConn") ?

 

Olá Hargon, boa noite!

Coloquei agora a noite as duas paginas no site do pastebin, segue o link da pagina da conexao com o banco:

http://pastebin.com/EQSPkrG3

Abaixo segue verificar a situação do login:

http://pastebin.com/BQ9u2LGJ

 

Obs.: o segundo link está praticamento todo comentado e aparece o mesmo erro:

 

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

 

--------------------------------------------------------------------------------

 

Informações técnicas (para a equipe de suporte)

 

Tipo de erro:

ADODB.Connection (0x800A0E78)

Operação não permitida quando o objeto está fechado.

/wapReembolso/logar.asp, line 17

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.4; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; AskTB5.6)

 

Página:

POST 44 bytes to /wapReembolso/logar.asp

 

POST Data:

txt_login=admin&txt_senha=admin&Submit=Login

 

Hora:

segunda-feira, 10 de maio de 2010, 22:19:40

 

Vejo com isso que o erro não está no SQL Server.

 

Alguem como posso reparar o IIS? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

no menu executar digite: reset inetserv, caso não volte, sugiro re-instalar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para testar o código e saber onde encontra-se o erro, faça o seguinte:

 

No arquivo Logar.asp, logo abaixo da linha 10, onde tem:

Call gpAbreConexao

Insira o código:

 

' Verifica se a conexao foi aberta, caso nao, exibe mensagem e finaliza.
If (Session("ConexaoAberta") <> "Sim") or isEmpty(Session("ConexaoAberta")) Then
	Response.Write "Conexao ainda nao foi aberta."
	Response.End()
End If

 

O arquivo conexaopontoweb.asp é o segundo que você postou, correto?

Caso sim, vá até a linha 14 e comente-a ou remova.

Depois execute novamente seu sistema e vê qual erro aparece.

 

Posta ae pra gente dar uma olhada depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Alexandre, boa noite!

 

Realizei o procedimento que você mencionou. Segue o código:

conexaopontoweb.asp

<%
'CONEXÃO SQL Server
Const gpVersaoSistema = "Versão: 1.0"
Const userName_imp="paulo"
Const passWord_imp="alfa30"
Const dataBaseName_imp="BD_atChamado"
Const serverName_imp = "JESUS-2FAB328AB"


Sub gpAbreConexao()
	Dim strConn
	Set session("ObjConn") = Server.CreateObject("ADODB.Connection")
	strConn = "Provider=SQLOLEDB;Persist Security Info=False;User ID="&userName_imp&";Password="&passWord_imp&";Initial Catalog="&dataBaseName_imp&";Data Source="&serverName_imp
	'session("ObjConn").ConnectionString = strConn
	' Verifica se a conexao foi aberta, caso nao, exibe mensagem e finaliza.

	If (Session("ConexaoAberta") <> "Sim") or isEmpty(Session("ConexaoAberta")) Then        
		Response.Write "Conexao ainda nao foi aberta."        
		Response.End()
	End If
	
	On Error Resume Next
	session("ObjConn").Open 
	session("ObjConn").CommandTimeout=3600
	if Err <> 0 Then
		response.write "<font face=arial size=2 color=#000055>Ocorreu o seguinte Erro ao abrir o banco de dados : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
	ELSE
		'response.write "<font face=arial size=2 color=#000055>conexão efetuado com sucesso : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
	End if
	On Error goto 0
	Session("ConexaoAberta") = "Sim"
End Sub

Sub gpFechaConexao()
    session("ObjConn").close
    Set session("ObjConn") = Nothing 
    session("ObjConn")=""
    Session("ConexaoAberta")="Não"
End sub

%> 

logar.asp:

<%
'Call gpAbreConexao

var_Login = TRIM(Request.Form("txt_login"))
var_Senha = TRIM(Request.Form("txt_senha"))

Response.Write(var_Login)
Response.Write(var_Senha)
Response.End()


'strSQL = "SELECT * FROM usuarios WHERE login='" & var_Login & "' AND senha='" & var_Senha & "'"
'Set rsLogin = session("ObjConn").Execute(strSQL)
'
'
'If rsLogin.EOF Then
'	Response.Write "Login ou Senha inválida!"
'	'Response.write "<script>alert('Atenção, login ou senha inválidos!')<script>" 
'    Response.AddHeader "Refresh", "1;URL=http://localhost/wapReembolso/wapReembolso/login.asp"
'Else
'	gpSQL = "SELECT * FROM tbChamado"
'	Session("login") = rsLogin("login")
'	Session("senha") = rsLogin("senha")
'	Session("nome") = rsLogin("nome")
'	Session("temAcesso") = 1
'	Session("gpSQL") = gpSQL
'	
'	Response.Redirect "http://localhost/wapReembolso/wapReembolso/index2.asp" 'página restrita
' 
'	'Response.write var_Login & "<br>"
'	'Response.write var_Senha
'
'Call gpFechaConexao()
'	
'End If
%>

Continua dando esse erro:

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

 

--------------------------------------------------------------------------------

 

Informações técnicas (para a equipe de suporte)

 

Tipo de erro:

ADODB.Connection (0x800A0E78)

Operação não permitida quando o objeto está fechado.

/wapReembolso/logar.asp, line 17

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.4; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; AskTB5.6)

 

Acredito que seja o problema so meu IIS, pois no meu trabalho funciona corretamente.

A questão é, como resolver o problema do IIS?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não nao... você inverteu as explicações, é exatamente o contrario.

 

Os codigos ficarão assim:

 

 

<%
'CONEXÃO SQL Server
Const gpVersaoSistema = "Versão: 1.0"
Const userName_imp="paulo"
Const passWord_imp="alfa30"
Const dataBaseName_imp="BD_atChamado"
Const serverName_imp = "JESUS-2FAB328AB"


Sub gpAbreConexao()
        Dim strConn
        Set session("ObjConn") = Server.CreateObject("ADODB.Connection")
        strConn = "Provider=SQLOLEDB;Persist Security Info=False;User ID="&userName_imp&";Password="&passWord_imp&";Initial Catalog="&dataBaseName_imp&";Data Source="&serverName_imp
        session("ObjConn").ConnectionString = strConn
        'On Error Resume Next
        session("ObjConn").Open 
        session("ObjConn").CommandTimeout=3600
        if Err <> 0 Then
                response.write "<font face=arial size=2 color=#000055>Ocorreu o seguinte Erro ao abrir o banco de dados : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
        ELSE
                'response.write "<font face=arial size=2 color=#000055>conexão efetuado com sucesso : </font>" & "<font face=arial size=2 color=#FF0000>" & Err.Description & "</font>"
        End if
        On Error goto 0
        Session("ConexaoAberta") = "Sim"
End Sub

Sub gpFechaConexao()
    session("ObjConn").close
    Set session("ObjConn") = Nothing 
    session("ObjConn")=""
    Session("ConexaoAberta")="Não"
End sub

%>

 

 

e:

 


<%
Call gpAbreConexao
' Verifica se a conexao foi aberta, caso nao, exibe mensagem e finaliza.
If (Session("ConexaoAberta") <> "Sim") or isEmpty(Session("ConexaoAberta")) Then        
		Response.Write "Conexao ainda nao foi aberta."        
		Response.End()
End If

var_Login = TRIM(Request.Form("txt_login"))
var_Senha = TRIM(Request.Form("txt_senha"))

'Response.Write(var_Login)
'Response.Write(var_Senha)

strSQL = "SELECT * FROM usuarios WHERE login='" & var_Login & "' AND senha='" & var_Senha & "'"
Set rsLogin = session("ObjConn").Execute(strSQL)
'
'
If rsLogin.EOF Then
   	Response.Write "Login ou Senha inválida!"
   	'Response.write "<script>alert('Atenção, login ou senha inválidos!')<script>" 
    Response.AddHeader "Refresh", "1;URL=http://localhost/wapReembolso/wapReembolso/login.asp"
Else
   	gpSQL = "SELECT * FROM tbChamado"
   	Session("login") = rsLogin("login")
   	Session("senha") = rsLogin("senha")
   	Session("nome") = rsLogin("nome")
   	Session("temAcesso") = 1
   	Session("gpSQL") = gpSQL
   	
   	Response.Redirect "http://localhost/wapReembolso/wapReembolso/index2.asp" 'página restrita
 
   	'Response.write var_Login & "
"
   	'Response.write var_Senha

Call gpFechaConexao()
   	
End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Rafael, vc tem poder de levar defunto heim rsrsrs

 

Esse erro depende de cada code em questão, pois pode ser vários motivos: Sua Conexao, seu Recordset e por vai.

 

Cada situação pode ser diferente da outra, embora a mensagem seja a mesma.

 

Para tirar um pouco de sua dúvida sobre esse erro, de uma pesquisada no Google para ter uma ideia das várias situações:

 

LINK

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Rafael, você tem poder de levar defunto heim rsrsrs

 

Esse erro depende de cada code em questão, pois pode ser vários motivos: Sua Conexao, seu Recordset e por vai.

 

Cada situação pode ser diferente da outra, embora a mensagem seja a mesma.

 

Para tirar um pouco de sua dúvida sobre esse erro, de uma pesquisada no Google para ter uma ideia das várias situações:

 

LINK

 

vlw

kkkk verdade vou ganhar o trofeu pá de ouro 2014, só desenterrando relíquias, sobre o erro consegui resolver voltei o arquivo de backup do dia anterior e parou o erro. de qualquer maneira obrigado, a proposito terminei o modulo vou dar uma olhada nakele flash que vc tinha dito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser em versões mais antigas do MDAC. Este erro pode ser causado quando você tenta acessar valores de um conjunto de registros vazio ou a partir de um conjunto de registros que já foi fechado. A causa mais comum, no entanto, parece resultar de chamar um procedimento armazenado que não usa SET NOCOUNT ON.

A quase idêntica, mas muito menos comum mensagem:

ADODB.Recordset erro '800a0e79'
A operação não é permitida quando o objeto está aberto.
/<file>.asp, linha <line>

Isso pode ser causado pela tentativa de definir uma propriedade que precisa ser definida antes que o objeto é aberto. Por exemplo, tentar definir a propriedade MaxRecords de um objeto ADODB.Recordset depois de abrir o conjunto de registros:

<%
set rs = CreateObject ("ADODB.Recordset")
rs.Open "Selecionar Colunas de nometabela", conn
rs.maxRecords = 5
%>

Para corrigir, o código deve ser:

<%
set rs = CreateObject ("ADODB.Recordset")
rs.maxRecords = 5
rs.Open "Selecionar Colunas de nometabela", conn
%>

Você também pode obter 800a0e78 erros do provedor, sem informação muito mais útil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde!!! Estou com um problema no SQL Server 2012, porém o erro ao fazer uma tarefa é diferente: Operação não permitida quando o objeto está aberto. Alguém pode me ajudar? Já reiniciei o Serviço , porém o erro persiste.

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.