Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2010
mkbro mkbro is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 3
Poder: 0
mkbro Va por buen camino
Ayuda para insertar más de 8 caracteres desde ComboBox

Hola,

Estoy creando un programa usando Delphi 2010 y firebird 2.5. En la base de datos tengo una columna con un check que es el siguiente:

Código SQL [-]
CONSTRAINT ch_Tip_Prestamo CHECK (Tip_Prestamo in ('DIARIO', 'SEMANAL', 'QUINCENAL', 'MENSUAL') )

Este campo lo inserto a través de un ComboBox (un TDBComboBox para ser exacto) el cual tiene las cuatro opciones anteriores, pero si selecciono la opción "QUINCENAL" me da un error porque reduce esta entrada a "QUINCENA", o sea 8 caracteres y de esa forma no cumple con el CHECK de la base de datos.

Me gustaría saber si hay alguna forma de solucionar este problema usando este mismo componente (combobox) y que me de los 9 caracteres que necesito.

Por cierto, hago la conección usando dbExpress, pero según puedo observar el problema se encuentra solamente en el combobox.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 28-11-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y el campo Tip_Prestamo de qué tipo es?
Responder Con Cita
  #3  
Antiguo 28-11-2010
Avatar de Estifmauin
Estifmauin Estifmauin is offline
Miembro
 
Registrado: may 2008
Ubicación: Alicante
Posts: 24
Poder: 0
Estifmauin Va por buen camino
Hola mkbro.
No quiero poner en duda tus conocimientos, ni tu buen hacer, pero la única explicación lógica que encuentro a lo que cuentas es que la longitud del campo sea de 8 caracteres, por eso pierdes el último.
Si no es eso, tal vez debieras darnos algo más de información: estructura de la tabla...
Saludos.
Responder Con Cita
  #4  
Antiguo 28-11-2010
mkbro mkbro is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 3
Poder: 0
mkbro Va por buen camino
Muchas gracias por tu atención.

Esta es la definición del campo:

Código SQL [-]
Tip_Prestamo varchar (9) not null,

Pero según he podido constatar el problema está en Delphi no en la base en sí, puesto que si hago desde el ISQL.exe de Firebird la siguiente inserción:

Código SQL [-]
INSERT INTO prestamos (Tip_Prestamo)
VALUES ('QUINCENAL');

Hace la inserción de manera normal y no me da ningún error. Y como ya escribí es el ComboBox que me corta los caracteres sobrantes a 8, porque después de arrojar el mensaje de error aparece cortada la palabra "QUINCENAL" a "QUINCENA".
Responder Con Cita
  #5  
Antiguo 28-11-2010
Avatar de Estifmauin
Estifmauin Estifmauin is offline
Miembro
 
Registrado: may 2008
Ubicación: Alicante
Posts: 24
Poder: 0
Estifmauin Va por buen camino
¿Que mensaje de error te sale exactamente?
Responder Con Cita
  #6  
Antiguo 28-11-2010
mkbro mkbro is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 3
Poder: 0
mkbro Va por buen camino
Les pido disculpas y les doy las gracias por sus respuestas.

He sido un tonto (y tienen permiso para llamarme de esa forma), ya he dado con el problema por mí mismo y si me hubiese explicado mejor desde el principio sé que me habrían podido ayudar rápidamente.

El asunto es que no me acordaba que cuando cree la tabla por primera vez le puse un tamaño de 8 caracteres al campo Tip_Prestamo y con esa definición cree inmediatamente los campos del formulario. Pero entonces me di cuenta que el tamaño que debía tener eran 9 caracteres y corregí la definición de ese campo inmediatamente en la tabla, pero ya el ClientDataSet tenía asignado como size 8 en ese campo. El asunto es que de eso hace ya algo de tiempo y por coincidencia (o estupidez) yo no había nunca seleccionado la opción quincenal en el TDBComboBox durante las pruebas hasta hace unas horas y fue ahí cuando me tropecé con el problema.

Tras ver que por el ISQL.exe los datos se introducían de manera correcta, y percatarme de que el TDBComboBox me cortaba lo que escribía todo lo que pensé es que el problema estaba justamente en éste, cuando en realidad estaba en el ClientDataSet, y resulta que el TDBComboBox no cuenta con la propiedad MaxLength mientras que el ComboBox normal si lo tiene, al igual que el TDBText conserva esta propiedad que posee el TEdit normal.

Bueno gracias a todos por su atención, y espero que se si me presenta algún otro problema saber explicarme mejor.
Responder Con Cita
  #7  
Antiguo 28-11-2010
Avatar de Estifmauin
Estifmauin Estifmauin is offline
Miembro
 
Registrado: may 2008
Ubicación: Alicante
Posts: 24
Poder: 0
Estifmauin Va por buen camino
No te martirices...
Eso le puede pasar a cualquiera.
Como a mi tambien me paso varias veces algo parecido, hace tiempo que deje de trabajar con campos persistentes en mis datasets
Responder Con Cita
  #8  
Antiguo 28-11-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Solucionado
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como insertar caracteres de colores en RichEdit pmcastilla Varios 6 28-01-2011 19:21:58
Insertar cadena de carácteres carmelina SQL 7 15-06-2008 10:29:43
Ayuda Para Insertar una imagen en una Base de Datos... zeta2 Conexión con bases de datos 5 23-05-2007 21:34:37
Como se haría desde JAVA para insertar un blob antony_prg Firebird e Interbase 1 16-08-2006 18:12:53
Insertar índices en un ComboBox robertgs Conexión con bases de datos 1 04-11-2003 23:24:17


La franja horaria es GMT +2. Ahora son las 17:41:48.


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
Copyright 1996-2007 Club Delphi