Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Interbase 6.5 Campo LLave Sin la restriccion "NOT NULL" se puede?? (https://www.clubdelphi.com/foros/showthread.php?t=3219)

norberto_larios 28-08-2003 01:44:47

Interbase 6.5 Campo LLave Sin la restriccion "NOT NULL" se puede??
 
Interbase 6.5 Campo LLave Sin la restriccion "NOT NULL" se puede??

Creo la DB y las tablas con IBExpert

En una tabla "almacenes"
tengo 2 campos

id_almacen
Descripcion

el id_almacen lo tengo como PrimaryKey pero para esto tuve que activarle la restriccion de "NOT NULL", y despues de que ya se creo la tabla , entro en el campo id_almacen y le DESACTIVO EL "NOT NULL"

Y NO ME DA NINGUN ERROR, HABRA ALGUN PROBLEMA POSTERIOR????

POR QUE LO HICE: Resulta q el id_almacen es un campo autoincrementable por medio de un generador y un trigger q se ejecuta antes de insertar los cuales funcionan correctamente, PERO

EN UNA APLIACION CON DELPHI 7 CUANDO CAPTURA UN REGISTRO NUEVO EN ALMACENES , NO LE DOY VALOR MANUALMENTE AL ID_ALMACEN Y SOLO SE LO DOY A DESCRIPCION.

SI LA TABLA TIENE ACTIVADA EL "NOT NULL" DESPUES DE DAR EL

DM01.SD_Almacenes.Post;
DM01.SD_Almacenes.ApplyUpdates(-1);

ME DA EL SIGUIENTE ERROR "FIELD VALUE REQUIRED"

Y SI LA TABLA NO TIENE ACTIVADA EL "NOR NULL" FUNCIONA PERFECTAMENTE EL GENERADOR ASIGNA EL ID_ALMACEN SIN NINGUN PROBLEMA

Julià T. 28-08-2003 03:21:55

Hola norberto_larios:

Lo que hago yo (no quiero decir que sea lo más correcto), es crear la tabla como tiene que ser (campo con llave not null), y en el valor de este campo al insertar, poner el valor -1 (o un valor que no sea posible), luego en el triger, compruebo si el valor es -1, entonces lo cambio por el valor del generador.
También te puede servir para cuando asignes un valor manualmente, este no te cambie por el valor del generador.

sanxpue 29-08-2003 02:12:31

Cuando le aprieten o hagan el evento de insercion ponle al campo id := 0 y con eso ya te quitas del problema...
o ponle por DEFAULt 0

Saludos desde Puebla Mexico
asanxt@hotmail.com

rmostalac 07-09-2004 23:34:12

En las propiedades de la tabla cambia las propiedades ReadOnly a True y Required a False


La franja horaria es GMT +2. Ahora son las 23:48:36.

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