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

Jose Antonio Cuello jcuello en artextrading.com
Vie Dic 25 07:28:36 CET 2015


Hola, lo que describes es justo una transacción. Básicamente abre una transacción, luego ejecutas todas las sentencias de insert, update o delete que desees (ya sea con un SqlScript como te indica Maxi o en queries separadas enlazadas a la misma transacción) y cuando terminas cierras la transacción. 

Todos los registros usados en la transacción no pueden ser usados (en la mayoría de los casos, existen maneras según el tipo de transacción) por otros usuarios, pero el dueño de la transacción puede modificar varias veces un mismo registro si así lo desea. 

Espero te sea de ayuda, un saludo y felices fiestas. 


De: "SocGer" <socger en gmail.com> 
Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> 
Enviados: Miércoles, 23 de Diciembre 2015 23:31:10 
Asunto: Re: [Lazarus-es] ¿Como conseguir hacer varias SQL juntas? 

El día 22 de diciembre de 2015, 6:03, SocGer < socger en gmail.com > escribió: 
> Buenas, uso los componentes TSQLQUery para hacer consultas, Insert o update. 
> Pero no consigo por ejemplo hacer varias cosas al mismo tiempo con estos 
> componentes. Por ejemplo un insert, después un update y despues una select. 
> 
> En Delphi 5 conseguía hacerlo sin problemas mediante ODBC, pero deseo 
> hacerlo con los componentes TSQLQUery por la facilidad de cambiar de base de 
> datos sin modificar los componentes. 
> 
> Además también necesito crear funciones o procedimientos en la base de datos 
> en tiempo real desde estos componentes y no consigo tampoco hacerlo. 
> 
> Tiene que ser posible seguro, pero igual no lo estoy haciendo bien. ¿Puede 
> alguien enviarme ejemplos o un link, que me aclare como conseguir hacer las 
> dos cosas que no consigo?. La de hacer varias consultas dentro de una misma 
> estructura SQL (Insert, update y select) y la de conseguir crear sobre la 
> base de datos un procedimiento o una función. 
> 
> Muchas gracias por vuestra labor de formación y gracias de antemano por 
> vuestra ayuda. 


***************************************************************************************** 
***************************************************************************************** 

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/20151225/944ec014/attachment-0002.html>


More information about the Lazarus-es mailing list