Conexión mediante includes a access 2000

Hola!. Tengo un problemilla con la conexión a una base de datos en access. Tengo un include con las conexiones, comandos, creación de recordset, etc.. Y utilizando este no funciona nada, ni da errores ni a salta el debugger, y si lo saco fuera del include, da error en el objeto comando, llevo varios días dándole vueltas y no veo el fallo.
Lo siento, no se como va esto, te envío las funciones que estoy utilizando y a lo mejor tienes alguna forma más sencilla de decirme como:
dim DBConn
sub IniciaConexion()
set DBConn = Server.CreateObject("ADODB.Connection")
WITH DBCONN
.ConnectionTimeout = 15
.CommandTimeout = 30
.CursorLocation = 3
'.Open ( "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=People;Data Source=SERINTERDEV;Connect Timeout=15;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;" )
--Esta es la que estoy utilizando, me he creado una udl, pero estoy aconstumbrada a Sql y access no se si soporta las mismas cosas
.Open "Provider=MSDASQL.1;Persist Security Info=False;User ID=as;Data Source=DatosZanca;Initial Catalog=C:\Zanca\DatosZanca"
END WITH
end sub
---Esta siguiente funcion es utilizada para crear recordset
function CreaRs(filtro,RsSalida)
dim cmdTmp
set cmdTmp = Server.CreateObject("ADODB.Command")
--- y normalmente el error salta en esta línea
cmdTmp.ActiveConnection = DBConn
set RsSalida.Source = cmdTmp
cmdTmp.CommandType = 1
cmdTmp.CommandTimeout = 200
cmdTmp.CommandText = filtro
RsSalida.CacheSize = 10
RsSalida.CursorType = 3
RsSalida.CursorLocation = 3
RsSalida.LockType = 3
'ON ERROR RESUME NEXT
RsSalida.open (cmdTmp)
if Err then
CreaRs= -1
end if
end function

1 respuesta

Respuesta
1
¡Caramba cómo lo complicas!
En IniciaConexion, supongo que el Open que no tienes comentado conecta con SQL Server, ¿no? Debes usar una cadena de conexión para Access ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " & Server.MapPath("misdatos.mdb")). Lo más cómodo es crear una conexión ODBC, que ya contiene todos los parámetros necesarios, y abrir directamente el DSN creado.
Por otro lado, abrir el Recordset es tan sencillo como crear el objeto y usar el método Open sobre la conexión abierta. El objeto Command es útil para ejecutar procedimientos almacenados de SQL Server, pero para un simple acceso a datos, y sobre todo en Access, mejor usar directamente el objeto Recordset.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas