FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como evitar los espacios blancos fantasma??
Os cuento , trabajo con ACCESS y adoquery. Creo la siguiente tabla de forma dinámica:
Código:
begin WITH ADOQUERY1 DO BEGIN Close; with SQL do begin Clear; Add('create table '+taula+' ('); Add('IdFactura autoincrement,'); Add('IdCliente STRING,'); Add('IdEmpleado string,'); Add('IdDocumento string,'); Add('FechaFactura datetime,'); Add('CantidadTotal currency,'); Add('Cliente char(30),'); Add('Referencia char(30),'); Add('Conceptes char(30),'); Add('IVA char(30),'); Add('NumFactura string,'); Add('NumFac int DEFAULT 1,'); Add('Pagada yesno,'); Add('primary key (IdFactura))'); end; try ExecSQL; except |
#2
|
||||
|
||||
No sé con access, pero en otros sistemas el tipo char rellena de espacios, y el tipo varchar lo "limpia".
Quiere decir que en lugar de usar, ejemplo: nombre char(30) debes usar nombre varchar(30) |
#3
|
||||
|
||||
Cita:
De este modo, por ejemplo ante un campo varchar(30) si para un registro guardamos un texto de 10 caracteres, el tamaño del campo para éste será de 10 y no se desperdicia memoria. Por su parte el char reserva directamente ese tamaño de memoria de modo que si guardamos contenido de menos caracteres, se llena totalmente el texto de "espacios" hasta la totalidad del campo. Es mejor hacer esta aclaración antes de que llamar "limpiar" ¿no crees? Saludos, |
#4
|
||||
|
||||
Tienes toda la razón, además de que sé perfectamente que es así, tal y como has explicado.
Como se dice habitualmente: se me ha ido la pinza |
#5
|
||||
|
||||
De todas formas, este tipo de cosas suceden con Access pero no con otros motores. Aunque un tipo char(30) ocupe un espacio fijo de 30 caracteres en la base de datos, esto no quiere decir que el valor devuelto enn una consulta SQL tenga la cadena rellena de espacios.
// Saludos |
#6
|
||||
|
||||
Estas en lo cierto Roman. Parece que solo Access hace eso, copiado del viejo estandar de xBASE donde cada registro debía tener el mismo número de bytes, por lo que campos tipo char que ocuparan menos del tamaño declarado, en efecto se rellenaban con espacios para cumplir con la regla. Ah que tiempos aquellos...
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como eliminar espacios en el centro de una cadena? | JoAnCa | Varios | 4 | 10-06-2010 22:53:57 |
Porqué los blancos tienen el culo negro. | Lord Delfos | Humor | 1 | 01-02-2010 08:48:10 |
Función que elimine caracteres blancos!!! | Sole_l | Varios | 2 | 01-04-2009 09:16:46 |
la vibracion fantasma o como el celular nos afecta | gmontes | La Taberna | 6 | 22-06-2007 18:22:18 |
blancos por el final | empty | Varios | 2 | 11-07-2004 18:21:07 |
|