Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   trigger (https://www.clubdelphi.com/foros/showthread.php?t=4493)

acertij022 17-10-2003 15:15:11

trigger
 
Hola foro estoy utlizando por 1° vez los trigger uso Firebird con Delphi 6 Enterprice. Mi problema es el siguiente:
Realice un pequeño programa siguiendo las intrucciones que indica la siguiente URL http://www.interbase.com.mx/articulo..._interbase.php
Pero en el momento de guardar un registro da la sensacion que no se autoincrementa pero si cierro la aplicacion y la vuelvo a abrir noto que si se ha autoincrementado la pregunta es ¿que estoy haciendo mal o que lo que me falta colocar para ver que se autoincremente el campo sin tener que cerrar y abrir la aplicacion?

Desde ya gracias ;)

Ixra 17-10-2003 20:57:31

(1) Por favor, comíte la transacción después de realizarla

(2) Maneja la transacciones en modo Read-Commited


Es todo.

acertij022 17-10-2003 23:12:45

(1) Por favor, comíte la transacción después de realizarla
te refieres en el momento de guardar hacer
IBDataset2.Post;
IBTransaction1.CommitRetaining;

(2) Maneja la transacciones en modo Read-Commited
te refieres a la propiedad que esta en algun componente porque no la encuantro.

PD: gracias por contestar

Ixra 17-10-2003 23:33:02

(1) Sí, el método CommitRetaining hace el trabajo, aunque para transacciones muy grandes se recomienda usar Commit en vez de CommitRetaining

(2) La propiedad a la que me refiero la encuentras haciendo clic con el botón derecho del ratón sobre el componente IBTransaction para mostrar el menú contextual y posteriormente eligiendo el elemento de menú Transaction Editor , luego en el cuadro de diálogo elige Read Commited para que leas los registros que han sido cometidos a la base de datos por otras transacciones.

Eso es todo.

kinobi 18-10-2003 00:06:15

Cita:

Posteado originalmente por Ixra
(1) Sí, el método CommitRetaining hace el trabajo, aunque para transacciones muy grandes se recomienda usar Commit en vez de CommitRetaining
con transacciones "pequeñas" (con pocas actualizaciones) tampoco es recomendable el uso de CommitRetaining si el número es elevado. El problema de CommitRetaining, no lanzar la recolección cooperativa de basura y la degradación del rendimiento asociada, se presenta con "grandes" y "pequeñas" transacciones.

erickperez6 20-10-2003 16:41:20

Cual es el verdadero uso que se le puede dar al commitretaing??, ya que por lo que siempre leo en algunos post el commitretaining no es recomendable para nada, supongo que la gente de interbase por algo agregaron este metodo.

Yo uso siempre en mis aplicaciones el commitreaining ya que cuando utilizo el commit me cierra todos los dataset activos y de esta manera se me hace mas tedioso el trabajo, por lo cual uso el commitretaining.

Quiero saber exactamente cuales son las consecuencias notables que puedo ver en mis aplicaciones con un uso recurrente del commitretaining.

Cita:

no lanzar la recolección cooperativa de basura y la degradación del rendimiento asociada
A que te refieres con que no lanza cooperativa de basura? y en que casos puedo ver una degradacion del rendimiento ??

kinobi 20-10-2003 19:20:31

Hola,

Cita:

Posteado originalmente por erickperez6
A que te refieres con que no lanza cooperativa de basura? y en que casos puedo ver una degradacion del rendimiento ??
en mi página web: http://www.clubdelphi.com/users/kinobi/ , puedes descargarte un documento que escribí hace tiempo sobre el tema (Capítulo 2: Concurrencia y otros aspectos, Sección 2.2: Limpiando la base de datos: sweeping, gbak y gfix).

Saludos.


La franja horaria es GMT +2. Ahora son las 02:49:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi