Buenos días,
trabajo con delphi 6 y DB MySQL con tablas tipo InnoDB.
Dentro de mi programa tengo un menu con los procedimientos:
Código Delphi
[-]
Transaccion
DS.tabla1.SQL.Clear;
DS.tabla1.SQL.Add('start transaction');
DS.tabla1.Execute;
DS.tabla1.SQL.Clear;
DS.tabla1.SQL.Add('UPDATE tabla1 SET');
DS.tabla1.SQL.Add('Campo='+DatoString);
DS.table1.SQL.Add('WHERE Campo='+CondicionStr);
DS.table1.Execute;
DS.tabla1.SQL.Clear;
DS.tabla1.SQL.Add('commit');
DS.tabla1.Execute;
El problema es que la primera vez que ejecuto el menu va perfecto, pero la segunda vez (en la misama ejecución del programa base) me lanza una exepcion EDataBaseError: Query must return exactly result set - use Execute.
Nota: Si ejecuto el menu, pero no hago ninguna modificación de los datos, funciona correctamente.
Resumen evolución de la ejecución del programa:
Caso 1:
Ejecucion Programa general
Abrir tablas (Abrir menu)
Transacción tablas (Modificar datos)
Cerrar tablas (Cerrar menu)
Abrir tablas (Abrir menu) -> Error!!
Caso 2:
Ejecucion Programa general
Abrir tablas (Abrir menu)
Cerrar tablas (Cerrar menu sin modificar)
Abrir tablas (Abrir menu) -> OK!!
Espero haberme explicado bien. Gracias de antemano por su atención y ayuda!
Saludos!