Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Campos Virtuales en SQL (https://www.clubdelphi.com/foros/showthread.php?t=52584)

Jonathan96 24-01-2008 21:55:49

Campos Virtuales en SQL
 
Ocupo hacer una consulta que donde halla una serie de datos me los cambie por otros. Por ejemplo:
que los datos que comtengan True me los cambie a Verdadero en español pero en forma virtual.
Xfa me ayudan?

maeyanes 24-01-2008 21:57:22

Hola...

Primeramente se necesitaría saber que tipo de base de datos ocupas...

También, donde quieres mostrar esa información? En una aplicación Delphi, una página Web vía PHP...


Saludos...

Jonathan96 24-01-2008 22:05:03

utilizo sql server 2005 y lo quiero mostrar en Rave Reports!!!!!!!!

maeyanes 24-01-2008 22:13:34

Hola...

Si es así, entonces no necesitas hacerlo desde el query...

Podrías usar algún evento de Rave Report para obtener el valor que quieras que se muestre al momento de imprimir...

Algo como esto:

Código Delphi [-]
if Campo.AsBoolean then
  Text := 'Verdadero'
else
  Text := 'Falso'

Saludos...

Jonathan96 24-01-2008 22:16:00

Como lo hago en Rave Reports? Con el codigo que me sediste?

maeyanes 24-01-2008 22:18:10

Hola...

La verdad no se como hacerlo en rave reports ya que no suelo utilizar esos componentes para hacer reportes...

Alguién más podría darte la solución...


Saludos...

radaalvaro 24-01-2008 22:19:06

Sql.
 
Jonathan96, si es consulta puedes hacer del siguiente modo..

Suponiendo que nuestra tabla 1 tiene 2 campos una NOMBRE, Y la otra un booleano (bit) que nos indica si es mujer o no.

Código SQL [-]
Select Nombre, case mujer when 0 then 'hombre' when 1 then 'mujer' end as genero 
from tabla 1

Saludos.

AzidRain 25-01-2008 03:24:57

Código SQL [-]
 select Nombre, if(micampo=1,"VERDADERO","FALSO") as micampo_str from tabla_1

santi33a 25-01-2008 13:46:40

Pero me parece que lo mejor lo cambias como te dijo maeyanes, en el evento OnGetText del campo (desde Delphi) o en el en evento OnGetText del componente DataText (desde Rave)

Código Delphi [-]
if value = 'True' then
 value := 'Verdadero';
else
 value := 'Falso';
end if;

En el caso especifico de un campo tipo Boolean tienes que probar, pues no tengo Delphi aqui y no se que valor toma en ese caso particular.
De esta forma disminuyes la información por la red, no es lo mismo que por cada linea te envien 1 byte (0 o 1) a 9 byte ('Verdadero' o 'Falso')

AzidRain 25-01-2008 15:45:33

Se puede hacer tambien como dice maeyanes, pero sin embargo si esta operación se la podemos pasar al motor para que la haga pues es mejor que estar codificando en el programa. Aquí solo hacemos el ejemplo con un campo, pero imáginate si fueran 10 o 20...la cosa se complicaría. Además moviendo el SQL no tienes que cambiar nada de Rave.

Jonathan96 25-01-2008 20:55:20

Count en Rave
 
Gracias!!!! Ya lo logre hacer en rave con el codigo que me dieron anteriormente!!!
Pero ahora se conplico un poco mas porque tengo que contar cuantos son verdaderos y cuantos son falsos con un calc text component, alguien sabe como hacerlo


La franja horaria es GMT +2. Ahora son las 09:13:58.

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