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 28-05-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
select de registro que todavia no existe

Bueno, aqui sigo dando lata.

No sabia muy bien como ponerle en el titulo, si el moderador lo considera, lo cambie si encuentra la forma que este mas claro.

La pregunta es, si tengo una tabla con varios campos, y le aplico un select para determinados campos (ya se que el SELECT * FROM TABLE esta prohibido ).
A la hora de insertar un registro nuevo y completo, como le puedo hacer si en el select faltan campos y tampoco puedo poner

Código SQL [-]
Select * from table where clave = 5

Si esa clave todavia no esta registrada?

gracias
Responder Con Cita
  #2  
Antiguo 28-05-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 anubis.

Disculpame, pero realmente no entiendo tu pregunta.

La consulta,
Código SQL [-]
Select * from table where clave = 5
necesariamente devolverá NULL, si el valor 5 es inexistente en la columna "clave".

Y para insertar un nuevo registro la forma genérica es:
Código SQL [-]
INSERT INTO NOMBRE_TABLA (COLUM1, COLUM2, COLUM3,...)
VALUES (VALOR1, VARLOR2, VARLOR3,...)

Tal vez si explicas con mas detalle la situación...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-05-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por contestar,

Me referia si yo tengo una tabla con n campos, en algunos casos se puede hacer

Código SQL [-]
SELECT * FROM TABLE

Pero si no quiero cargar todo porque alguno de los campos es un campo blob, lo hago hasta que lo necesite.

Ahora bien, si tengo
Código SQL [-]
SELECT CLAVE, NOMBRE FROM TABLE

Si quiero registrar clave, nombre y blob tendria que hacer un select de todos sino no me reconoce el campo blob?.
Responder Con Cita
  #4  
Antiguo 29-05-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 anubis Ver Mensaje
...
Si quiero registrar clave, nombre y blob tendria que hacer un select de todos sino no me reconoce el campo blob?.
Hola anubis.

Si por "registrar" te refieres a traer los valores de las columnas, mínimamente deberás incluir CLAVE, NOMBRE y BLOB en el SELECT, si deseas usar sus valores.

Es decir, no es necesario que la consulta traiga todas las columnas de la tabla (que por otro lado es menos eficiente), pero sí aquellas cuyos valores vas a utilizar.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 30-05-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo siento, pero yo es que tampoco te entiendo...
__________________
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
  #6  
Antiguo 30-05-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por el interes y perdon por no explicarme bien.

Vereis, tengo una tabla con varios campos entre ellos un campo blob.

Como estoy accediendo de forma remota a la base de datos, si pongo
Código SQL [-]
SELECT * FROM TABLA

Me trae todos los registros y me tarda por los campos blob que son archivos pdf.
Para consulta no tengo problemas porque hago
Código SQL [-]
SELECT CLAVE, NOMBRE FROM TABLA

y si quiero ver el campo blob pues ya le pongo

Código SQL [-]
SELECT * FROM TABLA WHERE CLAVE = 1

En otro apartado o form, guardo registros, si le pongo lo mismo
Código SQL [-]
SELECT CLAVE, NOMBRE FROM TABLA
para ver los que hay en un dbgrid
Si quiero guardar tambien el campo blob me dice que no existe porque no lo puse en el select.

Asi que no se como puedo guardar el registro sin tener que volver a hacer
Código SQL [-]
SELECT * FROM TABLA
Porque me vuelve a cargar todos los campos de nuevo.
Responder Con Cita
  #7  
Antiguo 31-05-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 anubis.

Si estas agregando un nuevo registro, no es necesario traer ninguna columa, así que tu problema se debe producir cuando realizas una modificación.

Pero en este caso, si no trabajas en lotes, normalmente vas a traer un registro de forma similar a la que mencionas mas arriba:
Código SQL [-]
SELECT * FROM TABLA WHERE CLAVE = :PCLAVE
o mejor todavía, sólo las columnas que van a ser modificadas, por ej.:
Código SQL [-]
SELECT COL1, COL3, COL11 FROM TABLA WHERE CLAVE = :PCLAVE
Pero aún en el peor de los casos sólo estarías trayendo la totalidad de columnas de un solo registro.

De todos modos, si tenes un campo blob extensísimo y hay que agregar o quitar algo de su contenido, indefectiblemente vas a tener que traerlo (incluirlo en el SELECT) para poder trabajar sobre él.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 06-06-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias, era lo que temia.

Igual, pensando, puedo grabar el registro sin el blob y luego modificarlo y grabarlo ya con el blob, asi solo seria un registro.

mmm habra que probarlo.

gracias
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
Registro Existe agustin173 Varios 4 06-11-2010 00:20:04
registro no existe y consultarlos agustin173 Varios 11 13-10-2010 00:34:00
registro no existe agustin173 Varios 19 15-06-2010 23:56:14
Existe SELECT ALEATORIO (Random)? Saiyan SQL 4 08-04-2010 04:01:06


La franja horaria es GMT +2. Ahora son las 04:48: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
Copyright 1996-2007 Club Delphi