Estoy haciendo un acceso a una base de datos access, mediante ODBC.
Después de hacer la conexion, detecto si se han producido errores, y detecta el siguiente:
[Microsoft][Administrador de controladores ODBC]Error de SQLSetConnectAttr del controlador.
Este error tiene el código 0.
¿Por qué da el error?.
Pongo el código de la conexion y la detección del error (añado alerts para saber si da o no el error), en el que como podéis ver se trata de una conexion simplisima.
<html>
<head><title>Untitled</title></head>
<body>
<%
on error resume next
'-------------------------------------
'ESTABLECIMIENTO CONEXION CON BASE DATOS
'Variables para crear la conexion a la base de datos SQL Server
Dim conexion
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "DB" 'DB es el ODBC de la base de datos db.mdb
'conexion.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\...\db.mdb"
if (conexion.Errors.Count > 0) then 'si hay errores en la creacion de la conexion
Dim strError
strError = "Proceso de conexión con la base de datos\n\nSe han producido los siguientes errores:\n\n"
for each horror in conexion.errors
strError = strError & horror.Number & "\n" & horror.Description & ".\n\nContacte con el Administrador de su Sistema"
next%>
<script language="JavaScript">
alert("<%= strError %>");
</script>
<%else 'si no ha habido errores en la conexion con la bdd, realizamos el insert necesario para aplicacion CRM%>
<script language="JavaScript">
alert("siiiiiiiiiiiii");
</script>
<%end if
'¿si abriendo la conexion con el odbc detecta error, pq funciona el siguiente recordset?
Set recordset = Server.CreateObject("ADODB.recordset")
recordset.CursorType = adOpenStatic
recordset.Open "select * from menu",conexion
if (err.description <> "") then%>
<div class="msg_error">
<%= "ERRORES EN SELECT INICIAL:<br>Error nº: " & err.number & " = " & err.description %>
</div>
<%else
err.Clear '"limpiamos" el objeto err pq puede haber conflictos con los generados por anteriores execute, etc.
numRegsAlbums = recordset.RecordCount
while not recordset.eof
for i=0 to recordset.Fields.Count
response.write(recordset(i) &"-")
next
response.write("<br>")
recordset.movenext
wend
end if%>
</body>
</html>
Si la conexión la abro con una cadena del tipo provider..., como la comentada, funciona sin que se detecten errores.
Lo + raro de todo es que después, si hago selects o lo que sea, como lo que he puesto, funciona.
?????????????????
Si alguién ve que es lo que pasa, ... favor de decirmelo.
Muuuchas gracias.
:cantar:
