Ingresar un registro en BD con ID autonumerico
Hola, tengo un DataModule, y dentro tengo un DataSet.
Aprendí hace poco a hacer las altas así : Código:
MiDataModule.MiDataSetCAMPO.AsTipo := valor; Código:
dmPrincipal.DataSet1.NOMBRE.AsString := 'STRELOK'; Código:
dmPrincipal.DataSet1.ID := nil; //intento 1 |
Si es autonumérico en la BD (que no has dicho cuál es), entonces no tienes que hacer nada.
Y "explota" no es un error que podamos identificar. |
Elimina la línea donde le asignas el valor.
|
No es necesario llenar el campo Id en el codigo, porque la misma base de datos lo hace, ya que es autonumerico.
|
Me faltaba crear el trigger, normalmente MYSQL lo hace solo, nunca tuve que crear un trigger para tal fin, ahora uso firebird..
|
No entiendo lo del trigger, ¿para que es?, si es para rellenar el autonumérico es un error porque, como te han dicho, este valor se rellena solo en la base de datos sin asignarle nada.
Saludos. |
No he usado firebird, pense que seria tan sensillo como en mysql y sqlserver, encontre esta liga que es similar a lo que necesitas.
http://www.clubdelphi.com/foros/showthread.php?t=19876 No tengo permiso de poner enlaces por eso separe la url |
En firebird no existen los campos "autonuméricos" como tal, sino que se crea un "generador", que hace las veces de un autonumérico.
Y luego para que se inserte automáticamente en la tabla correspondiente se crea un trigger before insert, que lee el generador, inserta el valor y aumenta el generador. Antes he puesto un ejemplo. |
|
Cita:
Saludos. |
Cita:
|
Cita:
me retracto. Saludos. |
La franja horaria es GMT +2. Ahora son las 00:27:39. |
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