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 12-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Longitud campo Blob

Hola que tal mi duda es la siguiente.. que logintud es recomendable para un campo blob en el cual se quiere almacenar archivos pdf..
Responder Con Cita
  #2  
Antiguo 12-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Longitud?, no te entiendo, un campo blob no lo declaras con una longitud.

Por ejemplo, esto es parte de la creación de una base de datos
Código SQL [-]
set sql dialect 3; 
 
create database "rankings.fdb" PAGE_SIZE 8192 user "SYSDBA" password "masterkey"; 
 
create domain domCodigoNoNulo integer not null; 
create domain domNombre varchar(64) character set ISO8859_1;  /* fb < 2.1 */ 
/*create domain domNombre varchar(64) character set UTF8 collate ES_ES_CI_AI default '';*/  /* fb >= 2.1 */ 
create domain domImagen blob sub_type 0;

create table 
tbAVATARES 
( 
  ID          domCodigoNoNulo, 
  Imagen      domImagen, 
  primary key (ID) 
);
Responder Con Cita
  #3  
Antiguo 12-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Longitud?, no te entiendo, un campo blob no lo declaras con una longitud.

Por ejemplo, esto es parte de la creación de una base de datos

Código SQL [-]
set sql dialect 3;

create database "rankings.fdb" PAGE_SIZE 8192 user "SYSDBA" password "masterkey";

create domain domCodigoNoNulo integer not null;
create domain domNombre varchar(64) character set ISO8859_1; /* fb < 2.1 */
/*create domain domNombre varchar(64) character set UTF8 collate ES_ES_CI_AI default '';*/ /* fb >= 2.1 */
create domain domImagen blob sub_type 0;

create table
tbAVATARES
(
ID domCodigoNoNulo,
Imagen domImagen,
primary key (ID)
);



O lo que pasa que no lo estoy creando en el codigo si no directo del asistente.... y biene un atributo tipo lenght

Última edición por amerika111 fecha: 29-07-2011 a las 01:07:20.
Responder Con Cita
  #4  
Antiguo 12-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No pongas nada, déjalo en blanco.
Responder Con Cita
  #5  
Antiguo 12-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Rectifico, supongo que 'length' es 'size', por defecto son 80:

Responder Con Cita
  #6  
Antiguo 12-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con un tamaño de página de 8 kb, como he declarado en el ejemplo de antes la base de datos, podrás almacenar ficheros hasta 32 Gb:

Cita:
Blobs and Varchars
Varchars are limited to 32k in length whilst a blob is effectively unlimited in size, however
the page size of a database will determine maximum size as determined by the
e.g.
1Kb page size => 64 Mb
2Kb page size => 512 Mb
4Kb page size => 4 Gb
8Kb page size => 32 Gb
16Kb page size => Big enough:*)
Extraído de aquí.
Responder Con Cita
  #7  
Antiguo 12-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Con un tamaño de página de 8 kb, como he declarado en el ejemplo de antes la base de datos, podrás almacenar ficheros hasta 32 Gb:



Extraído de aquí.
Ok deacuerdo lo dejare en lenght 80 aunque no creo que se ocupe los 32 gb
Responder Con Cita
  #8  
Antiguo 12-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por amerika111 Ver Mensaje
Ok deacuerdo lo dejare en lenght 80 aunque no creo que se ocupe los 32 gb
Sí, no bajes de esa cantidad, 8192, es recomendable para el buen rendimiento de la BD.
Responder Con Cita
  #9  
Antiguo 14-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, no bajes de esa cantidad, 8192, es recomendable para el buen rendimiento de la BD.
lo he dejado en 80 pero no me deja almacenar pdf de mas de 4 mb.....
Responder Con Cita
  #10  
Antiguo 14-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y dónde está el código?
Responder Con Cita
  #11  
Antiguo 14-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y dónde está el código?
el tamaño lo asigno directamente en la tabla

Última edición por amerika111 fecha: 29-07-2011 a las 01:07:20.
Responder Con Cita
  #12  
Antiguo 14-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
je, je... mi vista no da para leer eso

De todas formas te preguntaba por el código que usas para guardar los documentos.
Responder Con Cita
  #13  
Antiguo 14-07-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
je, je... mi vista no da para leer eso

De todas formas te preguntaba por el código que usas para guardar los documentos.
disculpa si sorry esta muy pequeña la imagen... el codigo lo tengo en c#.net

Código:
HttpPostedFile ImgFile = ImagenFile.PostedFile;
            // Almacenamos la imagen en una variable para insertarla en la bbdd.
            Byte[] byteImage = new Byte[ImagenFile.PostedFile.ContentLength];
            ImgFile.InputStream.Read(byteImage, 0, ImagenFile.PostedFile.ContentLength);
            string sql = "insert into A_DOC_EMPLEADOS(NOEMPLEADO,DOCUMENTOS,USUARIOCREADOR)";
            sql += " Values(@NOEMPLEADO,@DOCUMENTOS,@USUARIOCREADOR)";
            string connectionString = @"User=SYSDBA;Password=masterkey;Database=C:\Archivos de programa\Sistema Bioreg\DB\BIOREGF.FDB;DataSource=192.168.1.50; Port=3050;Dialect=3; Charset=NONE;Role=;Connection lifetime=15;Pooling=true; MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;";
            FbConnection SqlConn = new FbConnection(connectionString);
            FbCommand SqlCom = new FbCommand(sql, SqlConn);
            SqlCom.Parameters.Add("NOEMPLEADO", FbDbType.VarChar, 50);
            SqlCom.Parameters["@NOEMPLEADO"].Value = txtTitulo.Text;
            SqlCom.Parameters.Add("USUARIOCREADOR", FbDbType.VarChar, 50);
            SqlCom.Parameters["@USUARIOCREADOR"].Value = lblusuario.Text;
            SqlCom.Parameters.Add("@DOCUMENTOS", FbDbType.Binary);
            SqlCom.Parameters["@DOCUMENTOS"].Value = byteImage;
            SqlConn.Open();
            int foto = SqlCom.ExecuteNonQuery();
            SqlConn.Close();

            if (foto > 0)
            {
                Label1.Text = "Documento Almacenado Correctamente";
                txtTitulo.Text = "";
            }
            else
            {
                Label1.Text = "Documento No Almacenada";
                txtTitulo.Text = "";
            }
        }

Última edición por Casimiro Notevi fecha: 14-07-2011 a las 19:52:34.
Responder Con Cita
  #14  
Antiguo 14-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues no sabría qué decirte, parece que es una limitación de esa variable donde lo almacenas.
Responder Con Cita
  #15  
Antiguo 14-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Te pongo un ejemplo simple que carga una imagen en un campo blob.

Código Delphi [-]
procedure TFempresas.bt37Click(Sender: TObject);
begin
  if dlgLoadLogo.Execute then
  begin    
    TBlobField(DSconfig.DataSet.FieldByName('logotipo')).LoadFromFile(dlgLoadLogo.FileName);
    DSconfig.DataSet.Post;
    TpFIBDataSet(DSconfig.DataSet).Transaction.CommitRetaining;    
  end;
end;
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
Longitud del Campo muy grande aanil SQL 2 28-04-2010 02:34:30
longitud de un campo alfanumerico dtomeysoto SQL 2 10-03-2007 20:08:55
Problema con longitud de campo Data4 Tablas planas 0 04-03-2007 00:51:43
Validacion de longitud en un campo. Delphiboy Conexión con bases de datos 1 10-12-2005 19:36:37
ayuda con la longitud del campo y reportes galmacland SQL 2 03-02-2005 19:06:55


La franja horaria es GMT +2. Ahora son las 01:23:26.


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