Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2017-04

Problemas con caracteres unicode en TMemDataset

7 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ismael L. Donis Garcia

Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. Como puedo solucionar este problema sin comprometar la longitud del registro?

Tengo:
ds: TMemDataset;
ds.FieldDefs.Add('nombre', ftString, 35);

En una tabla Firebird 2.5 definido el campo como VARCHAR(35) Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año

El grid solo me muestra: Producción Agr.en Preceso - Del A

Saludos
========
| ISMAEL |
========
WebSite: sisconge.byethost15.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170412/d096995c/attachment.html>

Reply by email

Maxi
to Ismael L. Donis Garcia

cambia el charset de la conexion al que tiene la BD

El 12 de abril de 2017, 11:34, Ismael L. Donis Garcia via Lazarus-es <

lazarus-es en lists.lazarus-ide.org> wrote 27 lines
Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. Como puedo solucionar este problema sin comprometar la longitud del registro? Tengo: ds: TMemDataset; ds.FieldDefs.Add('nombre', ftString, 35); En una tabla Firebird 2.5 definido el campo como VARCHAR(35) Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año El grid solo me muestra: Producción Agr.en Preceso - Del A Saludos ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170412/d2b5b29a/attachment.html>

Reply by email

Ismael L. Donis Garcia
to Maxi

La base de datos es ISO8859_1 en su diseño algo que no puedo cambiar, pero la conexión la abro en lazarus como UTF8 porque si le pongo ISO8859_1 no me devuelve los datos de forma correcta.

Saludos Reiterados
========
| ISMAEL |
========
WebSite: sisconge.byethost15.com

Earlier message 33 lines
----- Original Message ----- From: Maxi via Lazarus-es To: Spanish version of Lazarus List Cc: Maxi Sent: Wednesday, April 12, 2017 3:15 PM Subject: Re: [Lazarus-es] Problemas con caracteres unicode en TMemDataset cambia el charset de la conexion al que tiene la BD El 12 de abril de 2017, 11:34, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. Como puedo solucionar este problema sin comprometar la longitud del registro? Tengo: ds: TMemDataset; ds.FieldDefs.Add('nombre', ftString, 35); En una tabla Firebird 2.5 definido el campo como VARCHAR(35) Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año El grid solo me muestra: Producción Agr.en Preceso - Del A Saludos ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com

Reply by email

Ismael L. Donis Garcia
to Maxi: cambia el charset de la conexion al que tiene la BD El 12 de abril de 2017, 11:34, Ismael…

El problema está al visualizar el dato en el grid porque el me trae bien el datos de la BD lo pude comprobar al hacer:

while not dma.rsmr1.EOF do begin
Application.MessageBox(pchar(dma.rsmr1.FieldByName('nombre').AsString), pchar(self.Caption), MB_ICONINFORMATION);
ds.FieldByName('nombre').AsString := dma.rsmr1.FieldByName('nombre').AsString;
dma.rsmr1.Next;
end;

Saludos Reiterados
========
| ISMAEL |
========
WebSite: sisconge.byethost15.com

Earlier message 33 lines
----- Original Message ----- From: Maxi via Lazarus-es To: Spanish version of Lazarus List Cc: Maxi Sent: Wednesday, April 12, 2017 3:15 PM Subject: Re: [Lazarus-es] Problemas con caracteres unicode en TMemDataset cambia el charset de la conexion al que tiene la BD El 12 de abril de 2017, 11:34, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. Como puedo solucionar este problema sin comprometar la longitud del registro? Tengo: ds: TMemDataset; ds.FieldDefs.Add('nombre', ftString, 35); En una tabla Firebird 2.5 definido el campo como VARCHAR(35) Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año El grid solo me muestra: Producción Agr.en Preceso - Del A Saludos ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com

Reply by email

Ismael L. Donis Garcia

El problema no es de la base de datos porque el mismo se puede reproducir sin uso de ella con el siguiente ejemplo:

unit Unit1;
{$mode objfpc}{$H+}
interface

uses
Classes, SysUtils, memds, db, FileUtil, Forms, Controls, Graphics, Dialogs,

  DBGrids;
type
  { TForm1 }
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    MemDataset1: TMemDataset;
    procedure FormActivate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.lfm}

{ TForm1 }

procedure TForm1.FormActivate(Sender: TObject);
begin
 MemDataset1.FieldDefs.Add('nombre', ftString, 35);
 MemDataset1.Open;
 MemDataset1.Append;
 MemDataset1.FieldByName('nombre').AsString := 'Producción Agr.en Preceso - Del Año';
 MemDataset1.UpdateRecord;
 MemDataset1.Post;
end;
end.

Como verás el grid solo te va a mostrar: Producción Agr.en Preceso - Del A

Sin embargo tengo una BD en Firebird 2.5 definido el campo como varchar(35) y el dato se puede salvar completo en la BD

Saludos Reiterados
========
| ISMAEL |
========
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170413/a157f2ab/attachment.html>

Reply by email

Juan Perles
to Ismael L. Donis Garcia: El problema está al visualizar el dato en el grid porque el me trae bien el datos de la…

Ismael no te rompas la cabeza con la 'enne' la o acentuada que sí la ves es tan carácter especial como la enne de año. Prueba a poner longitud 40 en vez de 35.

Juan Perles
628.482.007
Enviado desde mi iPad

Show quoted text 68 lines
El 12 abr 2017, a las 22:33, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: El problema está al visualizar el dato en el grid porque el me trae bien el datos de la BD lo pude comprobar al hacer: while not dma.rsmr1.EOF do begin Application.MessageBox(pchar(dma.rsmr1.FieldByName('nombre').AsString), pchar(self.Caption), MB_ICONINFORMATION); ds.FieldByName('nombre').AsString := dma.rsmr1.FieldByName('nombre').AsString; dma.rsmr1.Next; end; Saludos Reiterados ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com ----- Original Message ----- From: Maxi via Lazarus-es To: Spanish version of Lazarus List Cc: Maxi Sent: Wednesday, April 12, 2017 3:15 PM Subject: Re: [Lazarus-es] Problemas con caracteres unicode en TMemDataset cambia el charset de la conexion al que tiene la BD El 12 de abril de 2017, 11:34, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: > Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. > Como puedo solucionar este problema sin comprometar la longitud del registro? > > Tengo: > ds: TMemDataset; > ds.FieldDefs.Add('nombre', ftString, 35); > > En una tabla Firebird 2.5 definido el campo como VARCHAR(35) > Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año > > El grid solo me muestra: Producción Agr.en Preceso - Del A > > Saludos > ======== > | ISMAEL | > ======== > WebSite: sisconge.byethost15.com > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus-es > -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus-es

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170416/2ea65562/attachment.html>

Reply by email

Ismael L. Donis Garcia
to Juan Perles

No, no procede porque el campo en la tabla es de solo 35 caracteres de longitud. Pero si se le puede poner letras acentuadas y solo es contada como 1 carácter.

BD Firebird 2.5.7 ISO8859_1

Saludos Reiterados
========
| ISMAEL |
========

Earlier message 67 lines
----- Original Message ----- From: Juan Perles via Lazarus-es To: Spanish version of Lazarus List Cc: Juan Perles Sent: Sunday, April 16, 2017 5:37 AM Subject: Re: [Lazarus-es] Problemas con caracteres unicode en TMemDataset Ismael no te rompas la cabeza con la 'enne' la o acentuada que sí la ves es tan carácter especial como la enne de año. Prueba a poner longitud 40 en vez de 35. Juan Perles 628.482.007 Enviado desde mi iPad El 12 abr 2017, a las 22:33, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: El problema está al visualizar el dato en el grid porque el me trae bien el datos de la BD lo pude comprobar al hacer: while not dma.rsmr1.EOF do begin Application.MessageBox(pchar(dma.rsmr1.FieldByName('nombre').AsString), pchar(self.Caption), MB_ICONINFORMATION); ds.FieldByName('nombre').AsString := dma.rsmr1.FieldByName('nombre').AsString; dma.rsmr1.Next; end; Saludos Reiterados ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com ----- Original Message ----- From: Maxi via Lazarus-es To: Spanish version of Lazarus List Cc: Maxi Sent: Wednesday, April 12, 2017 3:15 PM Subject: Re: [Lazarus-es] Problemas con caracteres unicode en TMemDataset cambia el charset de la conexion al que tiene la BD El 12 de abril de 2017, 11:34, Ismael L. Donis Garcia via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: Tengo un TMemDataset el cual me trunca los datos cuando existen caracteres unicode. Como puedo solucionar este problema sin comprometar la longitud del registro? Tengo: ds: TMemDataset; ds.FieldDefs.Add('nombre', ftString, 35); En una tabla Firebird 2.5 definido el campo como VARCHAR(35) Puedo poner en el registro por ejemplo: Producción Agr.en Preceso - Del Año El grid solo me muestra: Producción Agr.en Preceso - Del A Saludos ======== | ISMAEL | ======== WebSite: sisconge.byethost15.com

Reply by email