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 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question firebird 2.1 ¿ char o varchar?

hola

tengo que insertar cadenas de texto algo grandes.
pero no se cual es la mejor forma.

si con char o varchar.

¿y cuales son los limites de cantidad de caracteres que soportan.?


aqui dice que no mas de 255
http://www.volny.cz/iprenosil/interb...ib_strings.htm

VARCHARs (e.g. limit to 255 characters or inability to distinguish between empty and null string).

pero yo requeiro al menos 2000 o 5000 caracteres puede que hasta 10 000

por que el objetivo es almacenar sin usar campos blob.
Responder Con Cita
  #2  
Antiguo 16-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
VarChar= 255 caracteres = 1 byte
VarChar + de 255 caracteres = 2 Bytes.
Same Think, diferent way to do it.
You may chose.
Saludos
PD: que buen ingles me manejo ultimamente jejeje.
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 16-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si usas char es un tamaño fijo que ocupa memoria, lo uses toda o no.
Si usas varchar ocupa lo que necesitas, el resto no ocupa memoria.

El límite de varchar son 32765 caracteres.
Cita:
The size of a VARCHAR cannot exceed 32,765 bytes because Firebird adds a 2-byte size element to each VARCHAR item.
Responder Con Cita
  #4  
Antiguo 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
entonces no hay problema si pongo varchar(10000) ?
Código SQL [-]
CREATE TABLE Grande (
  unogrande  VARCHAR(500) CHARACTER SET NONE,
  descriptionenorme        VARCHAR(10000) CHARACTER SET NONE,
Responder Con Cita
  #5  
Antiguo 16-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pero el varchar de 255 o menos no usa un byte?.
Por ahi me parecio leerlo.
Lo de la memoria no lo conocia.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
vientos gracias.
Responder Con Cita
  #7  
Antiguo 16-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Caral Ver Mensaje
Hola
Pero el varchar de 255 o menos no usa un byte?.
Por ahi me parecio leerlo.
Lo de la memoria no lo conocia.
Saludos
Sí, he leído casos que dicen una cosa y casos que dicen todo lo contrario :s
En este caso le viene mejor usar varchar.
Se debe usar char cuando hay un tamaño fijo, por ejemplo: el campo Telefono char(9) almacenará 9 caracteres aunque lo dejemos en blanco.
El tipo varchar se debe usar cuando se necesite almacenar cadenas de longitud muy variable, por ejemplo: el campo Incidencias varchar(1024) puede guardar cadenas desde 0 a 1024 caracteres. A veces se escribirá poco y otras mucho.

Cita:

Differences between CHAR and VARCHAR


Many people believe that VARCHAR is better because it stores only actual data, while CHAR is stored in full length. It is not true. In fact, both CHAR and VARCHAR are stored in memory buffer in their full, declared length; when the row is stored on disk, then RLE compression algorithm is used to compress whole row, i.e. CHARs, VARCHARs, INTEGERs, DATEs, etc. all together. So if you want to save space, CHARs are slightly better than VARCHARs (the differenece is that VARCHAR stores string length in two bytes). So decision whether use CHAR or VARCHAR should be based solely on application's requirements. E.g. store fixed length codes in CHAR, store names in VARCHAR (to allow correct concatenating).

Responder Con Cita
  #8  
Antiguo 17-08-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por JXJ Ver Mensaje
entonces no hay problema si pongo varchar(10000) ?
Código SQL [-]CREATE TABLE Grande ( unogrande VARCHAR(500) CHARACTER SET NONE, descriptionenorme VARCHAR(10000) CHARACTER SET NONE,
No, no hay ningún problema. Solo que un campo tan grande probablemente no lo podrás indexar. Pero eso normalmente no es ningún problema.

Además depende de la versión de la base de datos, a cada versión de Firebird van quitando limitaciones de este tipo y cada vez se pueden indexar campos más grandes. Así que si necesitas ese campo indexado, tendrás que probar que tamaño máximo te permite tu versión concreta de Firebird.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 22-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Estoy usando firebird 2.1
y definiendo los campos con ibmanager todo bien.

al exportar a un script sql todo bien
el problema es al importar.


Código:
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Data type unknown.
Implementation limit exceeded.
COLUMN GRANDECADENA.
y este es el codgio sql de varchar(1000)

Código SQL [-]
GRANDECADENA  VARCHAR(10000) CHARACTER SET UTF8 COLLATE UTF8,
  GRANDECADENA VARCHAR(10000) CHARACTER SET UTF8 COLLATE UTF8

siguiendo en esto, en que tipo es mas apropiado
almacenar caracteres de texto. e imagenes

Pregunto por mysql se usa para almacenar las notas
de wordpress, joomla y otros. desarrollos web con php.


y eso es lo que quiero hacer en una semana
un pequelo CMS

en php y firebird. y no se que forma es mejor para
grandes cantidades de texto.
para exportar como sql y recrear las bases de datos
en otros servidores firebird 2.1
Responder Con Cita
  #10  
Antiguo 22-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
hice mis pruebas de a 1000 en 1000

y con 8000
es lo maximo en caracteres que soporta.

Código SQL [-]
GRANDECADENA  VARCHAR(8000) CHARACTER SET UTF8 COLLATE UTF8,
  GRANDECADENA VARCHAR(8000) CHARACTER SET UTF8 COLLATE UTF8

como lo dice aqui

http://www.firebirdsql.org/manual/mi...ata-types.html

Variable-length non-Unicode data with a maximum of 8,000 characters. Firebird can hold up to 32,765 characters. In 6.5, maximum was 255.
Responder Con Cita
  #11  
Antiguo 22-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En esa tabla que enlazas dice que firebird almacena en campos varchar hasta 32,765 characters. El que no pasa de 8000 es MS Sql server, que supongo que es a donde lo estás intentando de importar.
Responder Con Cita
  #12  
Antiguo 25-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
no..
no intento importar a mssql

estoy tratando de crear la base de datos , la estructura
y me da el error de que no soporta los 10 000 caracteres ni 9 000, solo con 8 000
caracteres firebird 2.1 me acepta el escript.
Responder Con Cita
  #13  
Antiguo 25-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puede que sea así al usar utf.
Responder Con Cita
  #14  
Antiguo 01-09-2010
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

blob tipo tipo texto
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #15  
Antiguo 01-09-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por rastafarey Ver Mensaje
blob tipo texto

Desde luego que es lo mejor para usar campos de texto grandes.
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
cambiar tipo de dato blob a varchar en firebird ingabraham Varios 4 13-08-2010 00:13:49
campos char o varchar postgres se ven como Blobtype=ftMemo andresenlared PostgreSQL 10 25-01-2008 21:46:40
Formato a un Char JudyA OOP 1 21-02-2007 04:43:11
password char clx ? Alex2000 Varios 1 15-12-2003 18:14:13
cast de BLOB a VARCHAR o CHAR Angel Firebird e Interbase 1 03-10-2003 18:41:20


La franja horaria es GMT +2. Ahora son las 12:11:25.


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