[Lazarus-es] ¿Como conseguir hacer varias SQL juntas?

Carlos Enrique Rodriguez cer en racssprg.com.ar
Jue Dic 24 01:47:46 CET 2015


Hola,
          si no entendí mal, lo que querés hacer no se puede sin usar un 
trigger o un stored procedure.
  Trato de explicarme un poco: Al hacer el insert, estás bloqueando el 
registro hasta que se realiza el commit de la transacción. Ahí creo que 
está el gran problema, porque al hacer commit perdés el control sobre el 
registro y cualquiera lo puede modificar antes del update. Dos 
sentencias sobre el mismo registro en la misma transacción, hasta donde 
yo se no se pueden hacer (generalmente cuando se combinan sentencias que 
se afectan entre si el motor nos devuelve error por Deadlock).

No se qué motor usas (si lo mencionaste antes, te pido disculpas por no 
recordarlo), pero si querés podés plantear el caso concreto y creo que 
entre todos podemos hallar una solución puntual a tu problema

Saludos
Carlos

Gracias a todos, pero creo que me expliqué a medias.
>
> Lo que nos comenta Maxi, es cierto
>
> >Para crear algo en la base lo haces con un query pero en vez de hacer
> >open, usas excecsql.
>
> Y así lo hago.
>
> Pero imaginar que tengo que hacer un Insert en una tabla y luego 
> después un Update. Ok?
>
> Pues si los dos los intento hacer dentro de un solo query y usando 
> execSQL, me genera un error.
> Sin embargo si los hago por separado ... dos query, funciona 
> perféctamente.
>
> Pero no me interesa hacer dos query, porque otro usuario puede entrar 
> al mismo tiempo (entre el Insert y el Update) y modificarme algo que 
> no debe mientras estoy haciendo estos pasos. Es decir que tengo que 
> entrar yo primero en el motor de base de datos hacer el Insert y el 
> Update, y luego otro usuario si quiere después de mi.
>
> Por eso de hacerlo todo sobre una SQL y en un solo query.
>
> Si alguien lo consiguió, me puede decir como. Por supuesto sin usar 
> funciones sobre la Base de Datos ni procedimientos almacenados.
>
> Saludos y gracias de antemano.
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20151223/10041ad0/attachment-0002.html>


More information about the Lazarus-es mailing list