![]() |
CheckBox y Campos Boolean
Saludos a todos...
Estoy programando con delphi un pequeño sistema en el que utiliso CheckBox en el formulario para que el usuario marque si se se posee una caracteristica o lo deje en blanco si no; el caso es que cree en la base de datos (en Paradox) el campo que se relaciona con dicho control como Booleano y cuando deseo hacer un insert al query que guarda los datos, no encuentro un convertidor para ese tipo de dato para hacer la sentencia, como en el caso de los integert o dates(InttoStr(), DatetoStr()). Puede alguien darme una sugerencia al respecto. Tengo dos dias buscando en los foros pasados y .... o soy muy neofito o el unico que se le apresentado este problema (no creo) Gracias de antemano. :confused: |
¿¿Esta es tu duda??
Código:
Field.AsBoolean := CheckBox1.Checked; |
o esta otra ??
BoolToStr( true, true); StrToBool('true'); Revisa la ayuda, ya que te puede interesar usar : sysutils.Trueboolstr := 'Si'; sysutils.Falseboolstr := 'No'; ... los nombres son de memoria... espero no equivocarme mucho ;) Saludos |
Gracias a ambos, voy a hacer la prueba y les cuento.
|
Ok, he probado la sugerencia de Delphi.com.ar (perdon por lo impersonal) y aunque funciona, creo que no seria tan flexible como quisiera (digo creo), porque lo que estoy buscando es una sentencia INSERT, algo como:
query.sql.add('Insert into BasedeDatos (Codigo, Producto, Estado) values (' + IntToStr(iCodigo)+', '+editProducto.text+', '+BooleanToStr(CheckboxEstado.Checked)+')') donde icodigo => variable entera EditProducto.Text => Cadena BooleanToStr() => Una funcion que transforme Boolean a Str. Y CheckboxEstado => si el producto cumple o no una condicion. La idea es optener la flexibilidad de SQL sin tanto codigo a fin de hacer una migración mas sencilla una base de datos SQL (actualmente estoy programando en local con Paradox). Las funciones propuestas por Lepe me llamaron la atención, pero descubri que mi versión de delphi no las tiene (versión 2.0). Una idea que se me ocurrio fue crear una función de conversión a texto y su inversa, por ejemplo: if ckboxEstado.checked then sVariable := 'True' else sVariable := ´False'; pero creo que se me complicara todo con un codigo mas largo y no se si sera mas lento, Acepto humildemente las sugerencias que ustedes siendo expertos me puedan brindar porque yo me estoy estrenando en programacion Visual y preferi a delphi como software de desarrollo. gracias anticipadamente. |
En cuanto a la funcion BoolTostr no creo que sea tan grave como parece no??
File --> New -->Unit y reemplaza el contenido con este codigo: Código:
Cita:
si un programa ha de llamar a una funcion con 1 o 2 parametros y realizar un par de if.... tampoco es que gaste muchos recursos.... y evaluar un par de if tampoco lleva tanto tiempo de CPU ;) y más cuando los equipos de hoy en día tienen tropocientos Megahercios... (es mi opinion, claro) //Saludos |
Yo lo que hago en los programas, porque tambien utilizo sentencias insert o update es, como dice lepe, comprobar con un if el estado del checkbox justo antes de construir y enviar la sentencia.
Y puedes estar seguro de que poner un par de if en un código no te va a afectar absolutamente para nada en el rendimiento, la verdad es que me sorprende mucho que puedas pensar eso, no lo veía desde que vivíamos en la época de los ordenadores de 16 bits (y ya hace bastantes años de eso). Lo que afecta al rendimiento del programa es cómo manejes los datos desde el mismo, no ese tipo de cuestiones. |
Nuevamente gracias.
Voy a probar el codigo que me propuso Lepe. Agradezco tambien sus opiniones sobre el uso de las sentencias, y la paciencia que le tienen a los novatos. Despues les comunico como me fue... |
| La franja horaria es GMT +2. Ahora son las 12:54:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi