Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Caracteres no deseados en tablas firebird (https://www.clubdelphi.com/foros/showthread.php?t=82759)

GustavoCruz 10-04-2013 17:24:33

Caracteres no deseados en tablas firebird
 
Hola amigos foreros.
Tengo una db en firebird 2.5.2. pero tengo un extraño problema...
me está mostrando caracteres extraños. esta es la definición de la base de datos:
Código SQL [-]
SET SQL DIALECT 3;

SET NAMES NONE;

CREATE DATABASE 'localhost:E:\Mis Documentos\RAD Studio\Projects\Comunes\BASE_NO.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET NONE COLLATION NONE;

esta función tampoco la puedo definir utilizando ñ o tildes
Código SQL [-]
ALTER PROCEDURE EDADCOMPLETA (
    FECHA_NACIDO DATE)
RETURNS (
    RESULTADO VARCHAR(240) CHARACTER SET ASCII)
AS
declare variable a integer;
declare variable aa integer;
declare variable m integer;
declare variable mm integer;
declare variable d integer;
declare variable dd integer;
declare variable anio integer;
declare variable mes integer;
declare variable dia integer;
begin
  a = extract(year from fecha_nacido);
  m = extract(month from fecha_nacido);
  d = extract(day from fecha_nacido);
  aa = extract(year from current_date);
  mm = extract(month from current_date);
  dd = extract(day from current_date);
  anio = aa - a;
  if (m <= mm) then
    mes = mm - m;
  else
    begin
      mes = mm + 12 - m;
      anio = anio - 1;
    end
  if (d <= dd) then
    dia = dd - d;
  else
    begin
      if (mod(aa, 4) = 0) then
        dia = dd + 29 - d;
      else
        dia = dd + 28 - d;
      mes = mes - 1;
    end
  if (mes < 0) then
    begin
      anio = anio - 1;
      mes = mes + 12;
    end
  if (anio = 1) then
    resultado = cast(anio as varchar(4))||' Anio, ';
  else
    resultado = cast(anio as varchar(4))||' Anios, ';
  if (mes = 1) then
    resultado = resultado||cast(mes as varchar(2))||' Mes, ';
  else
    resultado = resultado||cast(mes as varchar(2))||' Meses, ';
  if (dia = 1) then
    resultado = resultado||cast(dia as varchar(2))||' Dia ';
  else
    resultado = resultado||cast(dia as varchar(2))||' Dias ';
  suspend;
END;

tendría que cambiar a UTF-8 o es algo más quizás estoy haciendo algo malo

Gracias por vuestro tiempo

Gustavo Cruz

ecfisa 10-04-2013 19:31:05

Hola Gustavo.

Proba con:
Código SQL [-]
 DEFAULT CHARACTER SET ISO8859_1;

Saludos.

GustavoCruz 10-04-2013 21:34:49

Hola amigo ecfisa probé modificar el procedimiento y me aparecen de forma perfecta los datos y toda la demás información...

Gracias por tu ayuda

Gustavo Cruz

cointec 10-04-2013 23:43:26

Hola, no se recomienda utilizar en la definición de la base de datos el conjunto de caracteres NONE. Aún así, si tienes la base de datos con ese conjunto de caracteres, si en la conexión a la misma utilizas un conjunto de caracteres, te dejara utilizar las ñ sin problemas.


La franja horaria es GMT +2. Ahora son las 20:18:35.

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