[RESOLVIDO] Falha de SQLAllocHandle do driver em SQL_HANDLE_ENV

estou com o seguinte erro, alguma ideia de como resolver? estou com a versão SSMS v18.12.1

SQLState: IM004
Error Code: 0
Message: [Microsoft][ODBC Driver Manager] Falha de SQLAllocHandle do driver em SQL_HANDLE_ENV
SQLState: IM004
Error Code: 0
Message: [Microsoft][ODBC Driver Manager] Falha de SQLAllocHandle do driver em SQL_HANDLE_ENV

Isto pode ser problema no ambiente. Dê uma olhada neste link: https://www.ibm.com/support/pages/sqlstate-im004-sqlallochandle-sqlhandleenv-failed-when-connecting-odbc-application

1 Curtida

obrigado pela orientação kleyber, no caso só tentei conectar o scriptcase com meu banco de dados (sql sever developer) a história é o seguinte estou tendo que mudar o meu ambiente de desenvolvimento para uma nova maquina e nessa demanda estou tendo que reinstalar tudo e foi por ai que veio essa mensagem de erro
estou revendo o driver instalado talvez seja uma saída, estranhamente ele não está aparecendo nas ferramentas administrativas e nem como opção para desinstalar

Ola

Tem que instalar o driver no php.
Verifique a versão do sql server e não a versão do ssms e instale o driver no php.

Uso sql server express 2016 e em desenvolvimento não precisa instalar nada, porem se for versão mais recente acredito que tem que instalar.

at
Moacir de Oliveira

1 Curtida

valeu Moacir, vou dar uma olhada e retorno
atualmente uso o developer

reinstalei a versão do sql server para express e estou testando as conexões, assim que terminar falo o resultado

instalei a versão express do sql server mesmo assim persiste o erro

Erro de conexão

SQLState: 08001
Error Code: 10061
Message: [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Nenhuma conex�o
p�de ser feita porque a m�quina de destino as recusou ativamente.

SQLState: HYT00
Error Code: 0
Message: [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired
SQLState: 08001
Error Code: 10061
Message: [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific
error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
SQLState: 08001
Error Code: 10061
Message: [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Nenhuma conex�o p�de ser
feita porque a m�quina de destino as recusou ativamente.

SQLState: HYT00
Error Code: 0
Message: [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired
SQLState: 08001
Error Code: 10061
Message: [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific
error has occurred while establishing a connection to SQL Server. Server is not found or
not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections.
For more information see SQL Server Books Online.

pesquisando em relação ao IP verifiquei que o local_tcp_port está null

depois de muita pesquisa achei o que estava me dando problema no caso a porta tcp ip

com o script vi que a porta estava null sendo assim configurei a porta

SELECT TOP 1 local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL

tbm utilizei o seguinte script para verificar se a porta estava correta
DECLARE @Instancia NVARCHAR(50)
DECLARE @Porta VARCHAR(100)
DECLARE @RegKey_Instancia NVARCHAR(500)
DECLARE @RegKey NVARCHAR(500)

SET @Instancia = CONVERT(NVARCHAR, ISNULL(SERVERPROPERTY(‘INSTANCENAME’), ‘MSSQLSERVER’))

– SQL Server 2000
IF ( SELECT CONVERT( VARCHAR (1), (SERVERPROPERTY (‘ProductVersion’))) ) = 8
BEGIN

IF (@Instancia = 'MSSQLSERVER')
    SET @RegKey = 'SOFTWARE\Microsoft\' + @Instancia + '\MSSQLServer\SuperSocketNetLib\TCP\'
ELSE
    SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @Instancia + '\MSSQLServer\SuperSocketNetLib\TCP\'

EXEC master.dbo.xp_regread
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = @RegKey,
    @value_name = 'TcpPort',
    @value = @Porta OUTPUT

SELECT @@SERVERNAME AS Servidor, @Instancia AS Instancia, @Porta AS Porta

END

– SQL Server 2005 ou superiores
IF ( SELECT CONVERT( VARCHAR (1), (SERVERPROPERTY (‘ProductVersion’))) ) <> 8
BEGIN

SET @RegKey_Instancia = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL'

EXEC master.dbo.xp_regread
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = @RegKey_Instancia,
    @value_name = @Instancia,
    @value = @Porta OUTPUT

SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @Porta + '\MSSQLServer\SuperSocketNetLib\TCP\IPAll'

EXEC master.dbo.xp_regread
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = @RegKey,
    @value_name = 'TcpPort',
    @value = @Porta OUTPUT

SELECT @@SERVERNAME AS Servidor, @Instancia AS Instancia, @Porta AS Porta

END

não sei se aqui no forum posso postar a fonte: no caso encontrei os scripts para localização e correção no site

caso não possa postar agradeço orientação para que eu exclua o mesmo

2 Curtidas