Ir para conteúdo

POWERED BY:

Arquivado

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

delgisa

Falha de SQLSetConnectAttr do driver

Recommended Posts

Salve!!!

 

 

Turma, estou a tempo de ficar doido.

 

Criei conexão com os banco .mdb e SQL Server, ambos no dreamwaver.

Acontece que após criar conexão, crio uma ligação (recodSet), consigo executar uma select de teste na própria tela onde crio o recordset. Até aí beleza, mas quando eu executo a página, dá o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][ODBC Driver Manager] Falha de SQLSetConnectAttr do driver

/teste/FourCli/index.asp, line 10

 

 

Para facilitar, vou jogar o código do index.asp e do conexao.asp:

 

INDEX.ASP:

 

<!--#include file="../Connections/access.asp" -->
<%
Dim Recordset2
Dim Recordset2_numRows

Set Recordset2 = Server.CreateObject("ADODB.Recordset")
Recordset2.ActiveConnection = MM_access_STRING
Recordset2.Source = "SELECT login  FROM acesso"
Recordset2.CursorType = 0
Recordset2.CursorLocation = 2
Recordset2.LockType = 1
Recordset2.Open()

Recordset2_numRows = 0
%>

 

Outro arquivo:

 

CONEXÃO.ASP:

<%
Dim MM_JarCli_STRING
MM_JarCli_STRING = "dsn=Four;uid=sa;pwd=af4infomr;"

%>

Já chequei muitos fóruns, mas nada...Ví aqui no Imasters um tópico deste assunto, mas não entendi como foi arrumado o erro

http://forum.imasters.com.br/index.php?showtopic=1650

 

Se alguém puder me ajudar, estarei muito grato.

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentou verificar a propriedade Número de cada erro na coleção Conn.Errors. Este número é retornado para a coleção Errors do driver ODBC. Se esta propriedade número for zero (0), a mensagem será puramente um mensagem informativa.

 

Por exemplo::

If Conn.Errors.Count <> 0 Then
	  For each errItem in Conn.Errors
		 If errItem.Number <> 0 Then
			Response.Write "<br>NativeError = " & errItem.NativeError
			Response.Write "<br>Description = " & errItem.Description
			Response.Write "<br>SQLState	= " & errItem.SQLState
			Response.Write "<br>Source	  = " & errItem.Source
		 End If
	  Next
   End If

 

Como alternativa, interceptar para o código de erro NativeError que retorna o driver ODBC de para a coleção Errors.

 

Por exemplo::

 

 

If Conn.Errors.Count <> 0 Then
	  For each errItem in Conn.Errors
		 If errItem.NativeError <> 5701 Then
			Response.Write "<br>NativeError = " & errItem.NativeError
			Response.Write "<br>Description = " & errItem.Description
			Response.Write "<br>SQLState	= " & errItem.SQLState
			Response.Write "<br>Source	  = " & errItem.Source
		 End If
	  Next
   End If

 

Para SQL Server, a codificar NativeError " contexto banco de dados alteradas " é 5701, e a codificar NativeError " alterado " configuração linguagem é 5703. Essas mensagens são normal e será sempre retornado através de DBLib ou o driver ODBC.

 

Para evitar a mensagem " ODBC catálogo procedimentos armazenados ", aberto uma instância de ISQL e conectar ao seu servidor. Próxima, executar o arquivo Instcat.sql que foi fornecido com o baixar Microsoft Componentes de Acesso a Dados (MDAC). Consulte artigos listados na seção REFERENCES para obter mais informações sobre esta mensagem.

 

As mensagens retornadas do driver ODBC Microsoft Access e o Microsoft ODBC para driver Oracle geralmente referir para a configuração SQL_ATTR_LOGIN_TIMEOUT, que é Não atualmente mas com suporte por qualquer driver não-fatal.

 

A codificar NativeError para " falha SQLSetConnectAttr do driver " é zero (0) e é retornado pelo ODBC Driver Manager. A codificar NativeError para driver não pode executar " " é 84.

 

Usar um provedor MSDASQL Other Than para fazer a conexão. Para exemplo, instead of usando um seqüência de conexão padrão será MSDASQL:

 

Conn.Open "DSN=Pubs;UID=<username>;PWD=<strong password>;DATABASE=Pubs;"

 

Use um seqüência de conexão que especificamente nomes um provedor:

 

Conn.Open "Provider=Sqloledb;Data Source=YourServer;" & _
	  "Initial Catalog=Pubs;User Id=<username>;Password=<strong password>;"

olha este script de teste:

 

<HTML>
   <HEAD>
   <TITLE>Conexao Teste</TITLE>
   </HEAD>
   <BODY BGCOLOR=#FFFFFF>
   <H3>Connection Message Test</H3>
   <BR><BR>
   <%
   Set Conn = Server.CreateObject("ADODB.Connection")
   Conn.Open "dsn=pubs;uid=<username>;pwd=<strong password>;"
   if Conn.Errors.Count <> 0 then
	  for i = 0 to Conn.errors.count -1
		 Response.Write (Conn.Errors.Item(i).NativeError; " - " & _
		 Conn.Errors.Item(i).Description & "<BR>")
	  next
   end if
   Set RS = Server.CreateObject("ADODB.Recordset")
   RS.Open "select au_id, au_lname from authors", Conn
   %>
   <P>
   <TABLE BORDER=1>
   <TR>
   <% For i = 0 to RS.Fields.Count - 1 %>
	  <TD><B><% = RS(i).Name %></B></TD>
   <% Next %>
   </TR>
   <%Do While Not RS.EOF %>
	  <TR>
	  <% For i = 0 to RS.Fields.Count - 1 %>
		 <TD VALIGN=TOP><% = RS(i) %></TD>
	  <% Next %>
	  </TR>
	  <%
	  RS.MoveNext
   Loop
   RS.Close
   Conn.Close
   %>
   </TABLE>
   <BR>
   </BODY>
   </HTML>

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.