Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   IBX y campos char (https://www.clubdelphi.com/foros/showthread.php?t=71194)

IVAND 06-12-2010 18:55:25

IBX y campos char
 
Hola a todos

Tengo una pequena duda , estoy utilizando delphi 6 y los componentes IBx (creo q es la ultima version , pues ya no los encuentro por ninguna parte , si alguien conoce donde bajar una version actualizada me los dicen aunq sea de pago)

Veran , cuando quiero modificar un campo q contiene 40 caracteres y si la cantidad de caracteres es menor los demas campos se llenan de espacios en blanco causando mucha molestia al usuario final , ya probe utilizando los Fibplus y funcionan de maravilla , lastimosamente todo mi proyecto esta echo con los IBx asi q es dificil o casi imposible cambiarlos (me han funcionado bien hasta ahora q nace este pedido de un cliente )

Si me pudieran dar una idea se los agradeceria, de corazon muchas gracias

Casimiro Notevi 06-12-2010 19:18:13

Seguramente tienes un campo char(40), cámbialo a varchar(40), ya que el varchar elimina los espacios que sobran.
Te aconsejo que lo hagas así:
  1. creas el campo varchar(40)
  2. pasas los catos del campo char(40) al nuevo campo varchar(40)
  3. borras el campo char(40)
  4. renombras el campo varchar(40) con el nombre que tenía el char(40)

Lepe 06-12-2010 19:21:19

Pero es que así funcionan los campos de tipo "char", y para ello fueron construidos. Si no es lo que quieres usa varchar. De hecho, los espacios no se guardan en la base de datos, sino que los IBX los inserta al vuelo cuando lee de la BBDD y los muestra en los controles DBEdits por ejemplo.

Lo que quiero decir es que modificando todos los campos de char a varchar(100) por ejemplo, no debería modificar para nada los datos. Los campos persistentes, espero no los uses mucho porque sí hace falta cambiarlos.

Saludos

ecfisa 06-12-2010 20:34:32

Cita:

Empezado por Casimiro Notevi (Mensaje 384135)
Seguramente tienes un campo char(40), cámbialo a varchar(40), ya que el varchar elimina los espacios que sobran.
Te aconsejo que lo hagas así:
  1. creas el campo varchar(40)
  2. pasas los catos del campo char(40) al nuevo campo varchar(40)
  3. borras el campo char(40)
  4. renombras el campo varchar(40) con el nombre que tenía el char(40)

Hola Casimiro.

Te hago una consulta:

Habiendo datos en la tabla, ¿es más seguro o conveniente utilizar esos pasos que la sentencia
Código SQL [-]
ALTER TABLE tabla ALTER COLUMN columna TYPE nuevo_tipo
en forma directa ?


Un saludo.

Casimiro Notevi 06-12-2010 21:08:11

Puede que te funcione como dices, pero no sé si se quedarán guardados los espacios. Yo lo haría como te he puesto, mejor dicho, yo no lo haría así tampoco. En mi caso siempre uso "dominios" para declarar los tipos de los campos, así que tan sólo tendría que cambiarle el dominio al campo.

ecfisa 06-12-2010 22:45:29

Hola de nuevo Casimiro.

Te pregunté por que no hace tanto que empecé con Firebird y esos detalles son los que no se leen en ningún lado.
Y ya que tengo un experto a mano... aprovecho el consejo. ;)

Gracias por la respuesta. :)


Un saludo.

IVAND 07-12-2010 00:44:43

Gracias por responder

Una pregunta , si cambio el tipo de dominio no deberia tener algun problema ?
si en un Sp tengo definido una variable de tipo char(40) y la inserto en la tabla con el campo varchar(40) no deberia tener algun problema ?

Y si amigos el problema de llenar los campos en blancos es de IBx

Nota: He simplemente editado el dominio y listo ... La base de datos podria corromporse de alguna forma al realizar esta maniobra ?

Casimiro Notevi 07-12-2010 01:22:31

En principio no deberías tener ningún problema, aunque tampoco conozco la base de datos que estás usando :)

rrf 07-12-2010 13:53:05

Cita:

Empezado por IVAND (Mensaje 384128)
Tengo una pequena duda , estoy utilizando delphi 6 y los componentes IBx (creo q es la ultima version , pues ya no los encuentro por ninguna parte , si alguien conoce donde bajar una version actualizada me los dicen aunq sea de pago)

Como no especificas la versión de IBX que usas, no se si te servirá: ESTA PÁGINA PARECE QUE TIENE LAS ÚLTIMAS VERSIONES DE IBX para diferentes versiones de Delphi.

Tienes que estar registrado en Embarcadero para que te permitan descargar el archivo. Es gratis.

Saludos.

IVAND 07-12-2010 15:08:46

Hola Nuevamente


Disculpen , la base q uso es firebird 1.5 , y no se como ver la ultima version de los IBX si alguien fuera tan amable y me lo indica

Un abrazo a todos a la distancia

Casimiro Notevi 07-12-2010 15:33:56

Cita:

Empezado por IVAND (Mensaje 384239)
Hola Nuevamente
Disculpen , la base q uso es firebird 1.5 , y no se como ver la ultima version de los IBX si alguien fuera tan amable y me lo indica
Un abrazo a todos a la distancia


Botón derecho en cualquier componente que tengas en algún formulario, sale un menú indicando la versión.

IVAND 07-12-2010 22:55:26

Pues lo unico que sale es Interbaseexpress 6

Imagino que esa es la version

Casimiro Notevi 07-12-2010 23:21:13

Aquí tienes un ejemplo, en este caso la 4.51:



La franja horaria es GMT +2. Ahora son las 02:24:14.

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