FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
campo autonumerico en interbase
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
|
|||
|
|||
campo autonumerico interbase
beuno gracias a todos por su ayuda siempre me sacan de estos lios
uni todas las soluciones y se resolvio el problema gracias ok... |
|
|
|