![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() bueno me explicare lo mejor que puedo haber si alguien me ilumina con este lio
tengo la siguiente tabla en interbase esta es de ejemplo CREATE TABLE "PERSONAS" ( "CLAVEPERSONAS" INTEGER NOT NULL, "NOMBRE" VARCHAR(40), "APELLIDO" VARCHAR(40), "TELEFONO" VARCHAR(10), "EMAIL" VARCHAR(50), CONSTRAINT "PK_PERSONAS" PRIMARY KEY ("CLAVEPERSONAS") ); y tengo un campo llave y no puede estar vacio en la aplicacion tengo un ibdataset y todos los demas componentes y un navegador para insertar y eliminar los registros en la base de datos tengo un triggers y un generador AS BEGIN IF (NEW.CLAVEPERSONAS IS NULL) THEN NEW.CLAVEPERSONAS = GEN_ID(GEN_PERSONAS,1); END CREATE GENERATOR GEN_PERSONAS; el problema es que cuando inserto el registro el campo claveperssonas no se llena ni se incrementa en tonces no puedo guardar el registro porque el campo no puede estar basio y no se que esta mal si alguien puede ayudarme con esto y darme un ejemplo para salir de este lio gracias |
#2
|
|||
|
|||
Deberas asignar en el evento OnNewRecord del DataSet un valor 0 al campo PK, y modificar tu trigger:
AS BEGIN IF ((NEW.CLAVEPERSONAS IS NULL)OR(NEW.CLAVEPERSONAS=0)) THEN NEW.CLAVEPERSONAS = GEN_ID(GEN_PERSONAS,1); END el problema es que el valor que le asignara el trigger atraves del generador tu aplicacion no sabra cual es, hasta que no refresques la transaccion. Saludos repo |
#3
|
|||
|
|||
autonumerico en interbase
bueno probe lo que me digeron pero y funciona se incrementa pero ahora no puedo editar los otros campos de la tabla y me da un error cuando trato de editar en ella me dise que el dataset no esta en modo de insercion.
|
#4
|
|||
|
|||
Campo Autonumerico
Yo utilizo lo siguiente
1.- ya cuando creas la sentencia sql le dices que no se actualize en el ibdataset 2.- agregas los campos al ibdataset y seleccionas la llave primaria, ahora en la propiedad Required le pones a false, y en la propiedad AutogenerateVale le pones arAutoInc, y en ProviderFlags.pfInkey le pones true asi cuando insertes un registro a la tabla no te dara ningun problema. Bueno esa es mi sugerencia no se, si hay alguna otra. |
#5
|
|||
|
|||
![]() beuno gracias a todos por su ayuda siempre me sacan de estos lios
uni todas las soluciones y se resolvio el problema gracias ok... |
![]() |
|
|
![]() |
|