![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola
Soy novato en el manejo de Interbase y Delphi, estoy usando un TQuery para actualizar las tablas de una base de Interbase pero no se como se realizan las transacciones, el codigo que estoy utilizando es el siguiente : Var myQuery : TQuery; Begin myQuery := TQuery.Create(application); myQuery.Sql.Clear; myQuery.Add('Insert into Articulos(modelo,describe,linea...etc') myQuery.Add('Values("0001","PRUEBAS","FALDA")'); myQuery.ExecSQL; myQuery.Sql.Clear; myQuery.Add('Insert into Precios(costo,publico,mayoreo...etc') myQuery.Add('Values(200,400,600)'); myQuery.ExecSQL; End; Supongo que existe la correcta de hacerlo, si alguin me puede ayudar de antemano les agradesco a todos. |
#2
|
||||
|
||||
Holap, bueno la variable esta bien declarada, y la forma de limpiar el SQL tambien pero
al momento de agregar el SQL no debido a que no estas haciendo referencia a la propiedad SQL del TQuery y ademas te faltan algunos "punto y comas"...osea que quedaria asi: Código:
Var myQuery : TQuery; Begin myQuery := TQuery.Create(nil); myQuery.Sql.Clear; myQuery.SQL.Add('Insert into Articulos(modelo,describe,linea...etc'); myQuery.SQL.Add('Values("0001","PRUEBAS","FALDA")'); myQuery.ExecSQL; myQuery.Sql.Clear; myQuery.SQL.Add('Insert into Precios(costo,publico,mayoreo...etc'); myQuery.SQL.Add('Values(200,400,600)'); myQuery.ExecSQL; myQuery.free; End; Por otra parte...para usar transacciones debes bajar un componente TDatabase y configurarlo, ya sea en su propiedad AliasName o en DriverName segun sea tu necesidad...no olvides configurar tambien los parametros de la base de datos y si no quieres que se pida la contraseña del interbase poner la propiedad LoginPromt en 'False'. Entonces ya podes trabajar con Transacciones y tu codigo quedaria asi, suponiendo de que el TDatabase se llama "database1": Código:
Var myQuery : TQuery; Begin database1.StartTransaction; try myQuery := TQuery.Create(application); myQuery.Sql.Clear; myQuery.SQL.Add('Insert into Articulos(modelo,describe,linea...etc'); myQuery.SQL.Add('Values("0001","PRUEBAS","FALDA")'); myQuery.ExecSQL; myQuery.Sql.Clear; myQuery.SQL.Add('Insert into Precios(costo,publico,mayoreo...etc'); myQuery.SQL.Add('Values(200,400,600)'); myQuery.ExecSQL; myQuery.free; database1.Commit; except database1.Rollback; raise exception.create('No se pudo ejecutar la transaccion'); end; End; ![]()
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
|||
|
|||
![]() Modifique mi codigo y funciona perfectamente |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|