Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 53
Poder: 1
strelok Va por buen camino
Thumbs down 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;
Ejemplo:

Código:
dmPrincipal.DataSet1.NOMBRE.AsString := 'STRELOK';
El problema es que mi campo "ID" es autonumerico, le doy valor explota, si le doy nil explota y si no le doy nada explota, como hago?

Código:
dmPrincipal.DataSet1.ID := nil; //intento 1
dmPrincipal.DataSet1.ID.AsInteger := 0; // intento 2
Responder Con Cita
  #2  
Antiguo 05-10-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.665
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 05-10-2017
Avatar de Neftali
Neftali Neftali is offline
-Germán Estévez-
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 15.391
Poder: 10
Neftali Va camino a la famaNeftali Va camino a la fama
Elimina la línea donde le asignas el valor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 06-10-2017
Griselda Diaz Griselda Diaz is offline
Registrado
 
Registrado: sep 2017
Posts: 5
Poder: 0
Griselda Diaz Va por buen camino
No es necesario llenar el campo Id en el codigo, porque la misma base de datos lo hace, ya que es autonumerico.
Responder Con Cita
  #5  
Antiguo 06-10-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 53
Poder: 1
strelok Va por buen camino
Me faltaba crear el trigger, normalmente MYSQL lo hace solo, nunca tuve que crear un trigger para tal fin, ahora uso firebird..
Responder Con Cita
  #6  
Antiguo 06-10-2017
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 880
Poder: 13
ElDioni Va por buen camino
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.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #7  
Antiguo 06-10-2017
Griselda Diaz Griselda Diaz is offline
Registrado
 
Registrado: sep 2017
Posts: 5
Poder: 0
Griselda Diaz Va por buen camino
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

Última edición por ecfisa fecha: 06-10-2017 a las 18:41:02. Razón: Activar enlace
Responder Con Cita
  #8  
Antiguo 06-10-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.665
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #9  
Antiguo 06-10-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 9.870
Poder: 27
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

How to create an autoincremental column ? ( The Firebird FAQ )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 09-10-2017
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 880
Poder: 13
ElDioni Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Si eso es así, casi prefiero crear una variable "código" e ir incrementándolo yo mismo.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #11  
Antiguo 09-10-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.665
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ElDioni Ver Mensaje
Si eso es así, casi prefiero crear una variable "código" e ir incrementándolo yo mismo.
Saludos.
En entornos multiusuario puede traerte problemas. Sin embargo un generador lo controla la propia base de datos y se acabó el problema.
Responder Con Cita
  #12  
Antiguo 09-10-2017
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 880
Poder: 13
ElDioni Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En entornos multiusuario puede traerte problemas. Sin embargo un generador lo controla la propia base de datos y se acabó el problema.


me retracto.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al ingresar registro con caracter "\" en MySQL osmeg SQL 3 02-09-2015 19:40:54
Limpiar Formulario para ingresar nuevo registro en sql novato_erick SQL 4 09-09-2012 18:11:54
Ingresar 2.789.636 registro en una tabla de forma eficiente Chaja Conexión con bases de datos 15 12-04-2012 20:52:35
ingresar registro en delphi php y Mysql kurono PHP 1 06-06-2011 03:38:32
No fue posible ingresar un Registro en el Datamodule... RicardoG Conexión con bases de datos 1 29-05-2007 20:50:26


La franja horaria es GMT +2. Ahora son las 14:51:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi