FoxPro/Visual FoxPro - TRANSACTION CON MYSQL parte 2

   
Vista:

TRANSACTION CON MYSQL parte 2

Publicado por ovelit (126 intervenciones) el 29/08/2008 23:54:48
saludos foxeros estoy trabajando con mysql y fox y estoy probando las transaction:
tengo el siguiente codigo pero no se me ejecuta el rollback, cuando pasa por el rollback de todas forma me guarda los datos en la tabla y no deberia

que estare haciendo mal o que le falta para q se realice bien

IF conexion> 0

= SQLSETPROP(conexion, 'Transactions', 2)
= SQLEXEC(conexion, "INSERT INTO tabla1 (nombre, apellido);
VALUES ('pedro', 'garcia')")

IF MESSAGEBOX('Grabar datos en la tabla..?',4+32,'Grabar') = 6
= SQLCOMMIT(conexion)

ELSE
= SQLROLLBACK(conexion)

ENDIF

SQLDISCONNECT(conexion)
ELSE
IF AERROR(laError) > 0
= MESSAGEBOX("Error al intentar conectar:"+laError[2])
ELSE
= MESSAGEBOX("Error inesperado al intentar conectar")
ENDIF
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TRANSACTION CON MYSQL parte 2

Publicado por Douglas (107 intervenciones) el 01/09/2008 08:07:01
claro amigo es que tu codigo esta algo malito es una tontera, pero fijate en el valid.

IF conexion> 0

= SQLSETPROP(conexion, 'Transactions', 2)

aqui abajo esta el error

LOCAL mivar as Boolean

mivar= SQLEXEC(conexion, "INSERT INTO tabla1 (nombre, apellido);
VALUES ('pedro', 'garcia')")

IF MESSAGEBOX('Grabar datos en la tabla..?',4+32,'Grabar') = 6
la linea anterior esta bien ya que deseas preguntar lo q falta es esto
IF MIVAR
= SQLCOMMIT(conexion)

ELSE
= SQLROLLBACK(conexion)

ENDIF
ENDIF

resto igual

saludes
Douglas
from Nicaragua.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

listo

Publicado por ovelit (126 intervenciones) el 01/09/2008 17:37:20
listo gracias douglas tenias razon en lo q respondiste, asi lo tengo solo q no lo coloque en el foro se me paso, pero el problema era el siguiente.

cuando trabajen con mysql tomen en cuenta que cuando crean las tablas y quieran trabajar con transanction el table-type sea de tipo innoDB y NO MyiSAM, ya que MyiSAM NO TRABAJA CON TRANSACTION MANUALES SINO AUTOMATICAS.

EN MI CASA YO TENIA MIS TABLAS DE TIPO MyiSAM Y LAS COLOQUE TODAS A innoDB Y AHORA SI PUEDO REALIZAR LAS TRANSACTION.

OTRA COSA: el MYSQL QUE SOPORTA TRANSACIONES MANUALES ES A PARTIR DE LA 5.0 OJO POR DEBAJO DE ESO NO FUNCIONA LAS TRANSACTION MANUALES.

ESPERO QUE LES SIRVA ESTA EXPERIENCIA A OTROS.

SALUDOS FOXEROS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar