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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2014
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Question Insert parcializado

Buenas, ante todo, feliz 2.014 para todos en este maravilloso foro.
Voy a la cuestión. Es sabido que en una BD Oracle puedo hacer un Inser parcializado. A saber:

Tabla A
campo1 campo2 campo3 campo4

En este caso puedo hacer:
Código SQL [-]
Insert into A (campo1, campo2)
Values (:Campo1, :campo2)

Y no se queja, los otros campos son puestos a Null o al valor que se le haya asignado por defecto.

¿Esto puede hacerse en Firebird?

Esto es muyb potente, ya que si agregamos campos a la BD, no tenemos que andar rastreando pot todo el código para modificar nuestros insert's

Gracias de antemano y saludos a todos.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 06-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 beholdecfisa is a splendid one to behold
Cita:
Empezado por santiago14 Ver Mensaje
Voy a la cuestión. Es sabido que en una BD Oracle puedo hacer un Inser parcializado. A saber:

Tabla A
campo1 campo2 campo3 campo4

En este caso puedo hacer:
Código SQL [-]
Insert into A (campo1, campo2)
Values (:Campo1, :campo2)

Y no se queja, los otros campos son puestos a Null o al valor que se le haya asignado por defecto.

¿Esto puede hacerse en Firebird?
Hola santiago14.

Si, Firebird soporta sin problemas la inserción parcial de campos.

Sea por ejemplo la tabla:
Código SQL [-]
CREATE TABLE PERSONAS (
    ID         INTEGER,
    NOMBRE     VARCHAR(30),
    ANIO_NAC   SMALLINT,
    EDAD       COMPUTED BY (CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS INTEGER)- ANIO_NAC),
    DOCUMENTO  VARCHAR(11),
    DIRECCION  VARCHAR(30)
);
La instrucción:
Código SQL [-]
INSERT INTO PERSONAS (ID, NOMBRE, ANIO_NAC)
VALUES (:ID,:NOMBRE,:ANIO_NAC)
dando los valores ID = 1, NOMBRE = "PEPE" y ANIO_NAC = 1980, da como resultado:
Código:
ID	NOMBRE	ANIO_NAC  EDAD	  DOCUMENTO  DIRECCION
1	PEPE	1980	  34      <Null>     <Null>
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 06-01-2014
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Gracias compañero.
Supongo que habrá que declarar los valores por defecto de los campos.

Gracias.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #4  
Antiguo 06-01-2014
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Funciona de 10... No fue necesario declarar valores por defecto, asume que el valor por defecto es null.
Por supuesto, si queremos darle algún valor por defecto, podemos hacerlo.

Muchas gracias.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #5  
Antiguo 06-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 beholdecfisa is a splendid one to behold
Hola santiago14.

Cita:
Supongo que habrá que declarar los valores por defecto de los campos.
Así es.

Un script ejemplo para modificar la tabla del mensaje anterior:
Código SQL [-]
ALTER TABLE PERSONAS ALTER NOMBRE SET DEFAULT '';
ALTER TABLE PERSONAS ALTER ANIO_NAC SET DEFAULT 1900;
ALTER TABLE PERSONAS ALTER DOCUMENTO SET DEFAULT '';
ALTER TABLE PERSONAS ALTER DIRECCION SET DEFAULT '';

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 06-01-2014
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Cita:
Empezado por ecfisa Ver Mensaje
Hola santiago14.


Así es.

Un script ejemplo para modificar la tabla del mensaje anterior:
Código SQL [-]
ALTER TABLE PERSONAS ALTER NOMBRE SET DEFAULT '';
ALTER TABLE PERSONAS ALTER ANIO_NAC SET DEFAULT 1900;
ALTER TABLE PERSONAS ALTER DOCUMENTO SET DEFAULT '';
ALTER TABLE PERSONAS ALTER DIRECCION SET DEFAULT '';

Saludos
Exacto, ni mas ni menos.

Gracias nuevamente. Pero si uno no pone los valores por defecto, asume que es NULL. Interesante.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #7  
Antiguo 06-01-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creía que era algo estándar sql, que todos permiten hacerlo.
Responder Con Cita
  #8  
Antiguo 06-01-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 914
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creía que era algo estándar sql, que todos permiten hacerlo.
Al parecer no es así...
Responder Con Cita
Respuesta



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
Insert into jerosol SQL 21 14-03-2007 19:58:40
insert into... supermilloriver Conexión con bases de datos 4 05-01-2006 00:25:52
insert into Nelly SQL 3 14-10-2005 17:54:00
Insert me cierra otro Insert motrildelphi Conexión con bases de datos 0 05-05-2005 12:20:27
Insert Con Ibx AGAG4 Conexión con bases de datos 8 09-09-2004 20:29:15


La franja horaria es GMT +2. Ahora son las 00:54:22.


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
Copyright 1996-2007 Club Delphi