Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 09-02-2012
leofuentes21 leofuentes21 is offline
Miembro
 
Registrado: Feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 7
leofuentes21 Va por buen camino
Problemas con campo varchar(max)

Hola que tal Amigos espero que tenga un buen dia todos.
Bueno tengo un pequeño problemita y espero que me puedan ayudar.

Estoy trabajando con una base sql server 2005 y d7, y en una tabla tengo declarado un campo varchar(max) donde
quiero guardar gran cantidad de informacion. el problemas que tengo es que hasta 255 caracteres me guarda bien la informacion.pero si argrego mas de 255 caracteres me guarda simbolos.

He intentado cambiar el campo y declararlo como text pero es igual siempre despues de 255 caracteres me guarda simbolos.

Espero me puedan dar una ayuda
Gracias
Responder Con Cita
  #2  
Antiguo 09-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 26.758
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Y ese 'max' ¿qué es?
Responder Con Cita
  #3  
Antiguo 09-02-2012
leofuentes21 leofuentes21 is offline
Miembro
 
Registrado: Feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 7
leofuentes21 Va por buen camino
es el tipo de dato
es de tipo varchar (max) dentro del parentesis va la longitud.
Max indica el tamaño de almacenamiento maximo
Responder Con Cita
  #4  
Antiguo 10-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 26.758
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, bien, pero ¿cuánto vale 'max'?
Responder Con Cita
  #5  
Antiguo 10-02-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: Jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 610
Poder: 11
TiammatMX Va camino a la fama
Wink

¿Y qué tipo de variable utilizas para contener el dato dentro de Delphi? ¿String o WideString? Por que String tiene la limitante a los 255 caracteres y WideString no tiene un límite; o al menos, un límite que llenes fácilmente.

Prueba por ahí y platicamos.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #6  
Antiguo 10-02-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: Jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 610
Poder: 11
TiammatMX Va camino a la fama
Talking

Alguna vez yo tuve un problema muy parecido si no es que idéntico. Lo resolví satisfactoriamente cambiando la variable a tipo WideString.

No le busques más, ésa es tu solución, a despecho que en un memo "veas" el contenido de la variable.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #7  
Antiguo 10-02-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: Jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 650
Poder: 12
olbeup Va por buen camino
Yo utilizo SQL SERVER 2005 con varchar(MAX) no he tenido ningún problema hasta ahora, como dice tiammat utiliza el WideString que es la asignación correcta para guardar los datos.

Una breve explicación de la ayuda de SQL SERVER 2005


Son tipos de datos de caracteres que tienen longitud fija o variable.

char [ ( n ) ]
Datos de caracteres no Unicode de longitud fija, con una longitud de n bytes. n debe ser un valor entre 1 y 8.000. El tamaño de almacenamiento es n bytes. El sinónimo de char en SQL-2003 es character.

varchar [ ( n | max ) ]
Datos de caracteres no Unicode de longitud variable. n puede ser un valor entre 1 y 8.000. max indica que el tamaño de almacenamiento máximo es de 2^31-1 bytes. El tamaño de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los datos especificados pueden tener una longitud de 0 caracteres. Los sinónimos de varchar en SQL-2003 son char varying o character varying.

Notas
Cuando no se especifica n en una instrucción de definición de datos o de declaración de variable, la longitud predeterminada es 1. Cuando no se especifica n al utilizar las funciones CAST y CONVERT, la longitud predeterminada es 30.

A los objetos que utilizan char o varchar se les asigna la intercalación predeterminada de la base de datos, a menos que se asigne una intercalación específica mediante la cláusula COLLATE. La intercalación controla la página de códigos utilizada para almacenar los datos de caracteres.

Si tiene sitios que admiten varios idiomas, considere el uso de tipos de datos Unicode nchar o nvarchar para reducir al mínimo los problemas de conversión de caracteres. Si usa char o varchar, siga estas recomendaciones:

Utilice char cuando los tamaños de las entradas de datos de columna sean coherentes.


Utilice varchar cuando los tamaños de las entradas de datos de columna varíen de forma considerable.


Utilice varchar(max) cuando los tamaños de las entradas de datos de columna varíen de forma considerable y se pudieran superar los 8.000 bytes.


Si SET ANSI_PADDING es OFF cuando se ejecuta CREATE TABLE o ALTER TABLE, una columna de tipo char definida como NULL se trata como si fuera de tipo varchar.

Si la página de códigos de la intercalación utiliza caracteres de doble byte, el tamaño de almacenamiento sigue siendo de n bytes. Dependiendo de la cadena de caracteres, el tamaño de almacenamiento de n bytes puede ser inferior a n caracteres.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 10-02-2012 a las 09:27:08.
Responder Con Cita
  #8  
Antiguo 10-02-2012
leofuentes21 leofuentes21 is offline
Miembro
 
Registrado: Feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 7
leofuentes21 Va por buen camino
Cita:
Empezado por tiammat Ver Mensaje
Alguna vez yo tuve un problema muy parecido si no es que idéntico. Lo resolví satisfactoriamente cambiando la variable a tipo WideString.

No le busques más, ésa es tu solución, a despecho que en un memo "veas" el contenido de la variable.
Hola amigo buen dia

Ya prove como me lo aconsejaste de cambiar la variable de string a widestring y sigue igual,no se si porque estoy utizando sql server express 2005 no se si eso influye o no tengo idea por que me sigue dando simbolos.
Responder Con Cita
  #9  
Antiguo 11-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 26.758
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puede que sea alguna limitación del componente que usas para conectar
Responder Con Cita
  #10  
Antiguo 14-02-2012
leofuentes21 leofuentes21 is offline
Miembro
 
Registrado: Feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 7
leofuentes21 Va por buen camino
Problema resuelto

Cambie algunos componente de bde a ADO y ( Como decia un Maestro de una clase de Programacion 'Como por arte de magia se soluciono') Ya encerio cambie de componete de BDE a ADO me imagino o desconosco si los BDE tiene limitaciones de caracteres. pero me funcionaron lo componentes ADO y todo funciona bien

Gracias amigo por sus respuesta me sirvieron de mucho la ayuda.. les debo una
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
Campo varchar > 255 con TQuery y SQL Server 2000 Lord Delfos Conexión con bases de datos 3 09-08-2008 00:26:13
Cómo cambiar el tamaño de un campo tipo varchar subzero Firebird e Interbase 3 12-10-2007 15:57:27
Escribir un campo VARCHAR en Mysql !?? RJF MySQL 1 19-07-2006 10:57:41
Usar un campo varchar(500) o un Memo? pyanqn Conexión con bases de datos 2 17-11-2005 10:08:49
Como convertir un campo VARCHAR a uno BLOB, si se puede? judoboy Firebird e Interbase 10 31-07-2003 18:28:45


La franja horaria es GMT +2. Ahora son las 00:12:18.


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