FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Convertir valores int de un campo a varchar
Buen dia compañeros de nuevo con un detalle.
tengo una base de datos llamada RH_PERIODOS_SEM en sqlserver con los campos: PERIODOS, MES, EJERCICIO el problema es que el campo MES esta en data type: Int y registra los numeros del mes del 1 al 12 y hay dos detalles.. quiero que en cxGrid que tengo en ves de que se vea el numero del MES(1-12) que se vea el nombre del mes por ejemplo asi se ve: MES 2 4 11 y quiero que se vea asi MES Febrero Aril Noviembre y hice un combobox con los 12 meses pero puse los items con nombre.. Enero, Febrero, Marzo etc.. como puedo guardarlos en la tabla si los valores son int ayuda porfavor !! |
#2
|
||||
|
||||
Obviamente, no se puede, salvo que guardes "1", "2", "3", ...
|
#3
|
||||
|
||||
La forma de manejar esto es usar funciones de conversion
Dependiendo de la version de Delphi, la mejor forma de hacerlo es combinando un tipo enumerado con su correspondiente helper Te permite implementar algo como esto:
|
#4
|
|||
|
|||
Gracias por tu aporte agustin, lo implemente y tuve otros problemas
decidi cambiar el data type a varchar y cambiar los valores manualmente les agradesco sus comentarios |
#5
|
|||
|
|||
Hola davidmedina29, en algún momento me toco hacer algo similar, te comento como se resolvio.
Para los meses >> Genere un Array con los meses y acceder mediante la posicion del 1 al 12. Para guardar el dato >> Mencionas un combobox, puedes guardar el indice de este. Para mostrar el nombre del mes en lugar de numero puedes usar los eventos del dataset y cambiarlos con le array previo. Saludos. |
#6
|
|||
|
|||
hola bitbow gracias por responder
me podrias dar un ejemplo porque no se me ocurre como hacer el array mas bien no estoy familiarizado con ellos te lo agradeceria mucho!! |
#7
|
||||
|
||||
Cita:
Que problemas? Como lo implementaste? Si tenes la posibilidad de usar record helpers te aconsejo que no la dejes pasar; te permiten escribir codigo altamente legible A ver, es mucho mas agradable leer:
Que esto:
Un lugar interesante para obtener ideas de implementacion es en la unidad System.SysUtils, en donde se definen distintos tipos de record helpers para tipos como string, Integer, etc |
#8
|
|||
|
|||
El detalle es que habia cambiado de int a varchar en el campo MES y cambie todo manualmente
pero no pude acomodarlos con el order by me aparecen alfabeticamente: Abril Agosto Diciembre etc.. y los quiero acomodados en orden deacuerdo al calendario Enero Febrero Marzo etc.. |
#9
|
||||
|
||||
A mi me parece una buena idea almacenar los meses como un valor numerico
En realidad, cuando armo una BD, de todas las opciones los tipos string son "casi siempre", la peor; si puedo poner otra cosa, mejor El pro mas importante de los tipos numericos es que son extremadamente rápidos, para realizar busquedas, filtros y ordenamiento de tablas son muchisimo mas eficientes Luego cuando se quiere presentar al usuario el valor "real", es decir, para un usuario quiza no le haga mucha gracia ver el numero 3 en lugar de "Marzo", pero es bastante "economico" realizar un par de conversiones desde el valor 3 a Marzo Pero al fin y al cabo es como que de este paso no podes escapar porque siempre terminas aplicando algun formato a cualquier campo (fechas, importes monetarios, horas, etc) asi que podria considerarse como una de las operaciones mas de "formato" Ahora, si hay que ordenar una tabla con millones de registros, en donde el valor a comparar son todos strings, madre mia |
#10
|
||||
|
||||
Hola David.
Cita:
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
hola ecfisa gracias por aporte me sirvio!!
cambie en data type a varchar y funciono me mostro los meses con nombre pero el detalle es que no debo de cambiarlos el date type lo tengo que dejar en int. tengo un query.. Select Periodo, Ejercicio, Mes, from RH_PERIODOS_SEM. mi duda donde podria poner esa consulta en mi codigo delphi para que funcione gracias! |
#12
|
|||
|
|||
combobox item en texto pero guardar en numero
buenas tardes tengo un cxcombobox que tiene los meses de enero a diciembre
lo que quiero es que cuando guarde me lo guarde en numero del 1 al 12 segun el mes alguna sugerencia? |
#13
|
||||
|
||||
Aunque cxcombobox no es un control estándar de delphi, debe ser similar a un combobox, el cuál tiene una propiedad ItemIndex que indica el índice del elemento seleccionado. Este índice es el que tendrías que guardar (0 - enero, 1 - febrero, 2 - marzo, etc.) Si lo quieres basado en 1, sólo tienes que sumar 1 a ItemIndex.
LineComment Saludos |
#14
|
||||
|
||||
#15
|
||||
|
||||
#16
|
|||
|
|||
buen dia compañeros, pues le e buscado y no e encontrado la solucion ya proble con lo que me compartio ecfisa lo plantie asi:
y nada me digue marcando este error '05 mayo' is not a valid integer value for field 'MES' mi cxcomboboox tiene los siguientes items: 01 Enero 02 Febrero 03 Marzo 04 Abril 05 Mayo 06 Junio 07 Julio 08 Agosto 09 Septiembre 10 Octubre 11 Noviembre 12 Diciembre aqui les dejo tmbien la interfaz del sistema con el error: Captura_converted.png cualquier aporte se los agradeceria compañeros.. saludos. Última edición por davidmedina29 fecha: 23-02-2016 a las 19:01:12. Razón: puse codigo delphi donde no debia ponerlo |
#18
|
||||
|
||||
La excepcion se produce en el evento cxComboBox2PropertiesChange o en otro lado?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Convertir blob en varchar | Mauro Daniel | Firebird e Interbase | 6 | 27-08-2010 13:43:05 |
Convertir un varchar a number | nelem | Oracle | 1 | 06-05-2008 14:48:02 |
Convertir de varchar a decimal | nelem | Oracle | 3 | 13-03-2008 08:40:58 |
Como convertir un campo VARCHAR a uno BLOB, si se puede? | judoboy | Firebird e Interbase | 10 | 31-07-2003 17:28:45 |
|