ID do artigo: 229564 - Última revisão: quinta-feira, 15 de fevereiro de 2007 - Revisão: 4.3Exibir Aviso de Isenção de Tradução Automática Exibir os produtos aos quais esse artigo se aplica.Nesta páginaExpandir tudo | Recolher tudoSintomasQuando você habilita uma função de aplicativo do SQL Server em uma conexão de Microsoft ActiveX Data Objects (ADO) para o SQL Server, você receberá a seguinte mensagem de erro quando você se conectar ao SQL Server 7.0: sp_setapprole não foi chamado corretamente. Consulte a documentação para obter mais informações. Quando você se conecta ao SQL Server 2000, o erro pode aparecer da seguinte maneira: [DBNETLIB][ConnectionRead (WrapperRead()).]Erro geral de rede. Verifique a documentação de rede Este erro ocorre quando sp_setapprole é chamado em uma conexão ADO que foi alocada do OLE DB pool de recursos. Este erro ocorre com o provedor SQLOLEDB ou o ODBC para SQL Server driver.A limitação é descrita neste artigo também existe no .NET do SQL Server provedor de dados e no .NET OLE provedor de dados quando usado com o provedor SQLOLEDB OLE DB. Quando você tenta definir uma função de aplicativo em uma conexão é obtida do pool de conexão, você receber a seguinte mensagem de erro: Erro geral de rede Voltar para o inícioCausaNo projeto atual, depois que uma função de aplicativo é habilitada em uma conexão de cliente para SQL Server, você não pode redefinir o contexto de segurança dessa conexão. Portanto, quando o usuário termina a sessão do SQL Server e o servidor se desconectem, a sessão não é reutilizável. No entanto, OLE DB pool de recursos retorna a conexão fechada para o pool e o erro ocorre quando a conexão é reutilizada e o aplicativo cliente tenta redefinir o contexto de segurança da conexão por sp_setapprole chamada novamente. Voltar para o inícioComo ContornarA solução alternativa só está disponível é desativar recurso OLE DB pooling, que ADO usa por padrão. Você pode fazer isso adicionando "serviços OLE DB =-2" à seqüência de conexão ADO, como mostrado aqui:
Pool pode ser desativado para o .NET do SQL Server Data Provider adicionando "pool = False" à seqüência de conexão. Voltar para o inícioMais InformaçõesO código a seguir reproduz o erro:
Voltar para o inícioREFERÊNCIASManuais online do SQL; tópico: "Segurança de aplicativos e funções de aplicativo" Para obter mais informações sobre como desativar serviços de banco de dados OLE, consulte o artigo técnico "Pool do Microsoft Data Access Components," disponível no MSDN online: http://msdn2.microsoft.com/en-us/library/ms810829.aspx
Para obter mais informações sobre como desativar serviços de banco de dados OLE, consulte o arquivo Readme.txt OLE DB. Voltar para o inícioA informação contida neste artigo aplica-se a:Microsoft SQL Server 7.0 Standard EditionMicrosoft SQL Server 2000 Standard EditionMicrosoft Data Access Components 2.0Microsoft Data Access Components 2.1Microsoft Data Access Components 2.5Microsoft Data Access Components 2.6Microsoft Data Access Components 2.7Microsoft Data Access Components 2.8Voltar para o inícioPalavras-chave: kbmt kbfaq kbpending kbprb KB229564 KbMtptVoltar para o inícioTradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.Clique aqui para ver a versão em Inglês deste artigo: 229564 (http://support.microsoft.com/kb/229564/en-us/