Ver Mensaje Individual
  #1  
Antiguo 18-08-2003
norberto_larios norberto_larios is offline
Miembro
 
Registrado: ago 2003
Ubicación: Mexico, D.F.
Posts: 15
Reputación: 0
norberto_larios Va por buen camino
Question Ejecucion automatica de Triggers IB65 con Delphi 7 Dbexpress

* Tengo una base de datos (Interbase 6.5) en un Servidor Win 2000
- El Interbase Manager esta corriendo como un servicio En windows
- Tengo una tabla almacenes con 2 campos:

id_alm Integer Autoincrementado (LLAVE PRIMARIA)
descripcion Character


por lo tanto tengo un generador del id_alm q inicia en o e incrementa en 1
ademas de un Disparador antes de insertar

BEGIN
IF (NEW.ID_ALM IS NULL) THEN
NEW.ID_ALM = GEN_ID(GEN_ALM_ID,1);
END

Los cuales estoy seguro q funcionan por que inserto datos desde el InterBase Expert
y al insertar registros pone automaticamente el ID incrementando en el generador

PERO CON DELPHI 7 NO LO HACE, TENGO LO SIGUIENTE
* Utizo DBExpress
- 1 SQLConnection1 (con mis respectivos parametros de coneccion)
- 1 SimpleDataSet1
connection := SQLConnection1
commandtype:= ctTable
commandtext:= almacenes
- 1 DataSourse1
DataSet := SimpleDataSet1

Tengo una forma donde use un Grid, un boton de Agregar y un boton de Guardar
- 1 DbGrid1
DataSource:= DataSourse1

Al oprimir el Boton de Agregar
SimpleDataSet1.Insert;
se genera el nuevo registro con los campos en blanco
NO CAPTURO NADA en id_alm y tecleo datos par adescripcion

Al oprimir el boton de Guardar
SimpleDataSet1.Post;
SimpleDataSet1.ApplyUpdates(-1);

Y ENTONCES ME DA EL SIGUIENTE ERROR
"Field 'id_alm'must have a value'
Y esto para mi es que no se ejecuta el disparador, en cambio si manualmente le doy un
valor al campo id_alm entonces lo acepta y guarda el registro sin problema.

OTRO DETALLE Q DETECTE ES QUE SI MANUALMETE YO LE DOY VALORES AL ID_ALM
Y REPITO UN VALOR DEL ID_ALMA CUANDO LO REPITO Y LE DOY GUARDAR
NO ME MANDA NINGUN MESAJE DE ERROR Y APARENTEMENTE LO ACEPTA, PERO
AL REFRESCAR LA TABLA EN REALIDAD NO REGISTRO.
LO CUAL ES CORRECTO POR QUE ES UNA RESTRICCION, POR SER UN CAMPO LLAVE.


!!!!!Por favor Alguien me podria decir que tengo q hacer para que funcione
el disparador y el valor del campo se genere automaticamente con
el generador que esta en Base de Datos.
CON DELPHI 7


GRACIAS
Atte: Norber norberto_larios@hotmail.com
Responder Con Cita