From: | "Roberto Guevara" <cygnus2k(at)gmail(dot)com> |
---|---|
To: | alvherre(at)commandprompt(dot)com |
Cc: | PostgreSQL Español Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Fwd: Maximo valor de un char |
Date: | 2008-04-14 16:59:42 |
Message-ID: | 57650fe50804140959g1eecc1eq3dad34234b6723a8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
---------- Forwarded message ----------
From: Roberto Guevara <cygnus2k(at)gmail(dot)com>
Date: 2008/4/14
Subject: Re: [pgsql-es-ayuda] Maximo valor de un char
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2008/4/14 Alvaro Herrera <alvherre(at)commandprompt(dot)com>:
Roberto Guevara escribió:
> > Hola a todos, les comento
> > Estoy desarrollando (retomando un proyecto abandonado) una interfaz de
> idx a
> > postgres hasta ahora salio todo bien salvo con los valores maximos de
> los
> > strings.
> > La api crea una constante MAX_CHAR que tiene el caracter ÿ o sea el
> > caracter (int)255. Luego de acuerdo al tamaño del varchar concatena
> estos
> > caracteres para establecer el valor maximo de un string para aplicarlo
> de
> > esta forma:
> >
> > SELECT * FROM general.tipoe
> > WHERE tipoe.ti_tipo <= 'ÿ'
> > ORDER BY tipoe.ti_tipo
>
> Esto no tiene mucho sentido. El valor en bytes de un char depende de la
> codificacion -- por ejemplo en Latin1 no es lo mismo que en UTF8.
> Ademas, el servidor hace recodificacion automaticamente, lo cual puede
> cambiar los bytes que vayan al cliente con lo que se compara en el
> servidor.
>
> Si lo que quieres es almacenar un byte para indicar una categoria, te
> sugiero usar el tipo "char", con las comillas incluidas, o sea
>
> create table tipos (
> ti_tipo "char" NOT NULL,
> ti_dtip varchar(30)
> );
>
> Asi lo hacen los catalogos de sistema (por ejemplo pg_class.relkind).
> Es un truco feo en todo caso, y probablemente lo mejor sea evitarlo.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>
Entiendo lo que me decís, pero de la conversion se encarga un ejecutable y
me lo deja asi. Salvando el detalle del tipo de dato. Como comparo una
cadena contra el maximo valor si no es por el codigo entero? Hay una
MAX_CHAR o algo por el estilo en sql?
Gracias.
PD: Me olvide de copiarlo a la lista
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-04-14 17:04:39 | Re: Maximo valor de un char |
Previous Message | Sebastián Villalba | 2008-04-14 16:50:26 | Re: [OFF-TOPIC]RECIBIR LISTA DE CORREO EN OUTLOK |