Foros del Web » Programando para Internet » ASP Clásico »

transacciones en access y mysql

Estas en el tema de transacciones en access y mysql en el foro de ASP Clásico en Foros del Web. Estimados amigos, de nuevo por aquí para preguntarles sobre el tema de transacciones en asp. La tabla que hice para la prueba es: Marca id------------>autonumerico ...
  #1 (permalink)  
Antiguo 31/10/2003, 08:40
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
transacciones en access y mysql

Estimados amigos, de nuevo por aquí para preguntarles sobre el tema de transacciones en asp.

La tabla que hice para la prueba es:

Marca
id------------>autonumerico PK
nombre---->varchar UNIQUE

escribí el siguiente código que funciona correctamente con access pero si uso mysql deja de funcionar:


on Error Resume next
oConn.BeginTrans
sql = "insert into Marcas (nombre) values ('Magistral')"
oConn.Execute sql
if (oConn.Errors.Count > 0) then
oConn.RollBackTrans
else
sql = "insert into Marcas (nombre) values ('Magistral')"
oConn.Execute sql
if (oConn.Errors.Count > 0) then
oConn.RollBackTrans
else
oConn.CommitTrans
end if
end if


Lo que hace en mysql es insertar un registro y no hace el rollback.

Mis suposiciones son que se debe al problema de como conecto contra cada base.
para access uso oledb
para mysql uso odbc

creo que asi son los terminos por favor corrijanme si estoy equivocado. les pasteo los string

STRING PARA CONECTAR A ACCESS:
dim oConn, rs, conexion
Set oConn = Server.CreateObject ("ADODB.Connection")
Set rs = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath("datos/datos.mdb")

STRING PARA CONECTAR A MySQL:

dim oConn, rs, conexion
Set rs = Server.CreateObject ("ADODB.RecordSet")
set oConn = createobject("ADODB.Connection")
oConn.open "DSN=marcas","root","holden"


Bueno espero que alguien me tire una soga.
Gracias como siempre,

Holden
__________________
Holden-@r
http://www.hvaldez.com.ar
  #2 (permalink)  
Antiguo 31/10/2003, 09:52
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
si inserta el registro deberia hacer un commit y no un roolback...segun tu codigo y que es correcto

ahora si ocurre un error al insertar un registro y no te aplica el rollback en el mysql podria ser que el conector de b de datos usa otra sentencia para hacer un rollback...
no conozco mucho acerca mysql pero si no logras que alguien te guie de aqui te recomiendo postear tu problema en php ya que ellos trabajan bastante con esta b de datos.

otra prueba que podrias revisar es access con odbc y revisar si acepta el rollback, de esta forma eliminarias tu suposicion acerca del conector o acertarias de lo contrario.

saludos
  #3 (permalink)  
Antiguo 31/10/2003, 10:48
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Hola bakanzipp, te cuento que probé usar un dns con access y andubo bien el tema de la transacción.
Es decir tal como pastie el codigo no inserta NINGUN registro.
Ahora si pongo nombres distintos a los respectivos valores, inserta los dos registros.

Por lo tanto es un problema con la BD.
Esto quiere decir que el código que escribí no lo puedo independizar de la BD. :(

Quisiera poder independizarme de la BD que use.
Alguien sabe si esto es posible?

Gracias.
__________________
Holden-@r
http://www.hvaldez.com.ar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:43.