Problema con conexion a Access 2000 - Interfaz no compatible

31/01/2004 - 21:47 por Jesús Lozano | Informe spam
Buenas noches a todos.

Aquí llevo un rato peleándome con un ejemplito de conexión a Access 2000, y
he tenido que usar el driver ODBC para conseguirla.

Y sin embargo, he visto en todos los sitios que se podía usar el motor Jet
de accesso a BD Access, pero a mí no me funciona, con lo cual, o estoy
haciendo algo mal, o realmente, me falta algún componente en mi equipo.

Las sentencias son las siguientes:

Dim objConex
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source="&Server.MapPath("/prueba/bd.mdb")
Set objConex=Server.CreateObject("ADODB.Connection")
objConex.Open strConn

Como veis, nada del otro mundo, y sin embargo, me da el siguiente error (lo
que no ocurre usando ODBC):

a.. Tipo de error:
Provider (0x80004002)
Interfaz no compatible
/transaccion.asp, line 12

y me he quedado a cuadros. ¿Me falta algún componente? o algo parecido?

Al hilo de todo esto, os queria preguntar si el Transaction funciona sobre
BD Access, pq a mi no me ha fucionado, es decir, no me hacia rollback cuando
se supone que debía hacerlo.

El código completo que me funcionaba, salvo el rollback es:

<%@TRANSACTION=REQUIRED%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</Head>
<body>
<%
Dim objConex
Dim uni
strConn = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ="&Server.MapPath("/prueba/bd.mdb")

Set objConex=Server.CreateObject("ADODB.Connection")
objConex.Open strConn

objConex.Execute("Insert into articulos
(idpedidos,idarticulos,idcliente,unidades) values (2,2,3,500);")
objConex.Execute("Update Articulos Set unidades=unidades-100 Where
idarticulos=2")
Set rs=objConex.Execute("Select unidades from articulos where
idarticulos=2")
uni=rs("unidades")
rs.close
Set rs=Nothing
If uni<200 then
Response.Write "entra en abort"
ObjectContext.SetAbort
Response.Write "ejecutado set Abort???"
Else
Response.Write "entra en complete"
ObjectContext.SetComplete
End if
objConex.Close
Set objConex=Nothing
Sub OnTransactionCommit()
Response.Write "<b>Transacción realizada con éxito</b>"
End sub
Sub OntransactionAbort()
Response.Write "<b>La transaccion se ha cancelado</b>"
End sub%>
</body>
</html>

Como veis, usando la conexión ODBC me funciona, la del motor Jet no. La otra
pregunta es que no me funciona el rollback, y no se si es posible usarlo
sobre Access.

Gracias de antemano

Saludos

Jesús Lozano

Preguntas similare

Leer las respuestas

#1 Carlos Huerta [MSFT]
03/02/2004 - 17:29 | Informe spam
Hola,

Microsoft Access no tiene ningún resource manager por lo que no soporta la
directiva
@Transaction. Eso es lo que te indica el error " Provider (0x80004002)
Interfaz no compatible"
Debes usar una versión de SQL Server o MSDE o algún otro provider que
soporte la directiva.

Para más información sobre MSDE, puedes acceder a:
http://www.microsoft.com/sql/msde/default.asp

Un saludo
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho. El uso de los ejemplos incluidos se rige por las
condiciones indicadas en la dirección
http://www.microsoft.com/spain/misc/avisolegal.htm

Por favor no envíen emails directamente a este alias. Este alias es sólo
para uso en las newsgroups

This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
"Jesús Lozano" wrote in message
news:
Buenas noches a todos.

Aquí llevo un rato peleándome con un ejemplito de conexión a Access 2000,


y
he tenido que usar el driver ODBC para conseguirla.

Y sin embargo, he visto en todos los sitios que se podía usar el motor Jet
de accesso a BD Access, pero a mí no me funciona, con lo cual, o estoy
haciendo algo mal, o realmente, me falta algún componente en mi equipo.

Las sentencias son las siguientes:

Dim objConex
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source="&Server.MapPath("/prueba/bd.mdb")
Set objConex=Server.CreateObject("ADODB.Connection")
objConex.Open strConn

Como veis, nada del otro mundo, y sin embargo, me da el siguiente error


(lo
que no ocurre usando ODBC):

a.. Tipo de error:
Provider (0x80004002)
Interfaz no compatible
/transaccion.asp, line 12

y me he quedado a cuadros. ¿Me falta algún componente? o algo parecido?

Al hilo de todo esto, os queria preguntar si el Transaction funciona sobre
BD Access, pq a mi no me ha fucionado, es decir, no me hacia rollback


cuando
se supone que debía hacerlo.

El código completo que me funcionaba, salvo el rollback es:

<%@TRANSACTION=REQUIRED%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</Head>
<body>
<%
Dim objConex
Dim uni
strConn = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ="&Server.MapPath("/prueba/bd.mdb")

Set objConex=Server.CreateObject("ADODB.Connection")
objConex.Open strConn

objConex.Execute("Insert into articulos
(idpedidos,idarticulos,idcliente,unidades) values (2,2,3,500);")
objConex.Execute("Update Articulos Set unidades=unidades-100 Where
idarticulos=2")
Set rs=objConex.Execute("Select unidades from articulos where
idarticulos=2")
uni=rs("unidades")
rs.close
Set rs=Nothing
If uni<200 then
Response.Write "entra en abort"
ObjectContext.SetAbort
Response.Write "ejecutado set Abort???"
Else
Response.Write "entra en complete"
ObjectContext.SetComplete
End if
objConex.Close
Set objConex=Nothing
Sub OnTransactionCommit()
Response.Write "<b>Transacción realizada con éxito</b>"
End sub
Sub OntransactionAbort()
Response.Write "<b>La transaccion se ha cancelado</b>"
End sub%>
</body>
</html>

Como veis, usando la conexión ODBC me funciona, la del motor Jet no. La


otra
pregunta es que no me funciona el rollback, y no se si es posible usarlo
sobre Access.

Gracias de antemano

Saludos

Jesús Lozano




Respuesta Responder a este mensaje
#2 Jesús Lozano
06/02/2004 - 00:10 | Informe spam
Gracias Carlos, algo así me olía sobre la directiva @Transaction.

Con respecto a la cadena de conexión que no me funciona, que me puedes
decir? Alguna idea de pq no funciona esa y si la de ODBC??

Gracias de antemano

Jesús Lozano

"Carlos Huerta [MSFT]" escribió en el
mensaje news:
Hola,

Microsoft Access no tiene ningún resource manager por lo que no soporta la
directiva
@Transaction. Eso es lo que te indica el error " Provider (0x80004002)
Interfaz no compatible"
Debes usar una versión de SQL Server o MSDE o algún otro provider que
soporte la directiva.

Para más información sobre MSDE, puedes acceder a:
http://www.microsoft.com/sql/msde/default.asp

Un saludo
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y


no
otorga ningún derecho. El uso de los ejemplos incluidos se rige por las
condiciones indicadas en la dirección
http://www.microsoft.com/spain/misc/avisolegal.htm

Por favor no envíen emails directamente a este alias. Este alias es sólo
para uso en las newsgroups

This posting is provided "AS IS" with no warranties, and confers no


rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
"Jesús Lozano" wrote in message
news:
> Buenas noches a todos.
>
> Aquí llevo un rato peleándome con un ejemplito de conexión a Access


2000,
y
> he tenido que usar el driver ODBC para conseguirla.
>
> Y sin embargo, he visto en todos los sitios que se podía usar el motor


Jet
> de accesso a BD Access, pero a mí no me funciona, con lo cual, o estoy
> haciendo algo mal, o realmente, me falta algún componente en mi equipo.
>
> Las sentencias son las siguientes:
>
> Dim objConex
> strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data
> Source="&Server.MapPath("/prueba/bd.mdb")
> Set objConex=Server.CreateObject("ADODB.Connection")
> objConex.Open strConn
>
> Como veis, nada del otro mundo, y sin embargo, me da el siguiente error
(lo
> que no ocurre usando ODBC):
>
> a.. Tipo de error:
> Provider (0x80004002)
> Interfaz no compatible
> /transaccion.asp, line 12
>
> y me he quedado a cuadros. ¿Me falta algún componente? o algo parecido?
>
> Al hilo de todo esto, os queria preguntar si el Transaction funciona


sobre
> BD Access, pq a mi no me ha fucionado, es decir, no me hacia rollback
cuando
> se supone que debía hacerlo.
>
> El código completo que me funcionaba, salvo el rollback es:
>
> <%@TRANSACTION=REQUIRED%>
> <HTML>
> <HEAD>
> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
> </Head>
> <body>
> <%
> Dim objConex
> Dim uni
> strConn = "DRIVER={Microsoft Access Driver (*.mdb)};
> DBQ="&Server.MapPath("/prueba/bd.mdb")
>
> Set objConex=Server.CreateObject("ADODB.Connection")
> objConex.Open strConn
>
> objConex.Execute("Insert into articulos
> (idpedidos,idarticulos,idcliente,unidades) values (2,2,3,500);")
> objConex.Execute("Update Articulos Set unidades=unidades-100 Where
> idarticulos=2")
> Set rs=objConex.Execute("Select unidades from articulos where
> idarticulos=2")
> uni=rs("unidades")
> rs.close
> Set rs=Nothing
> If uni<200 then
> Response.Write "entra en abort"
> ObjectContext.SetAbort
> Response.Write "ejecutado set Abort???"
> Else
> Response.Write "entra en complete"
> ObjectContext.SetComplete
> End if
> objConex.Close
> Set objConex=Nothing
> Sub OnTransactionCommit()
> Response.Write "<b>Transacción realizada con éxito</b>"
> End sub
> Sub OntransactionAbort()
> Response.Write "<b>La transaccion se ha cancelado</b>"
> End sub%>
> </body>
> </html>
>
> Como veis, usando la conexión ODBC me funciona, la del motor Jet no. La
otra
> pregunta es que no me funciona el rollback, y no se si es posible usarlo
> sobre Access.
>
> Gracias de antemano
>
> Saludos
>
> Jesús Lozano
>
>
>
>


Respuesta Responder a este mensaje
#3 Carlos Huerta [MSFT]
11/02/2004 - 12:16 | Informe spam
Hola

Perdona la tardanza pero estuve de viaje
Sobre el problema de la cadena de conexión, no deberías tener ningún problema, tienes ejemplos varios, com
http://support.microsoft.com/defaul...?scid=http://support.microsoft.com:80/support/kb/articles/Q232/1/44.ASP&NoWebContent¿Puedes indicarme el código que no te funciona

Un saludo
Respuesta Responder a este mensaje
#4 Jesús Lozano
12/02/2004 - 23:44 | Informe spam
Gracias por responder Carlos, mas vale tarde que nunca :-)))

Lo tienes en el primer mensaje del hilo, ahí lo indicaba bien, creo

Gracias de nuevo

Jesús Lozano


"Carlos Huerta [MSFT]" escribió en el
mensaje news:
Hola,

Perdona la tardanza pero estuve de viaje.
Sobre el problema de la cadena de conexión, no deberías tener ningún


problema, tienes ejemplos varios, como



http://support.microsoft.com/defaul...?scid=http://support.microsoft.com:80/support/kb/articles/Q232/1/44.ASP&NoWebContent=1
¿Puedes indicarme el código que no te funciona?

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida