Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
Consulta con la funcion CONCAT

Buenos días:

Estoy desarollando un sistema con Delphi y estoy conectandome a una BD MYSQL con los componentes MYDAC de DEVART, son famosos.

Resulta que cuando hago una consulta con esta:

Select concat(nombre,' ',ApellidoP,' ', ApellidoM,' ') as NombreCompleto
from tablanombres

Pues el resultado es que aparece un listado con una columna "NombreCompleto" con el nombre completo de la persona por que concatena los campos nombre, ApellidoP y ApellidoM y ademas pone un espacio entre ellos. Eso es normal y facil de entender.

LO curioso es que si por alguna razòn la columna ApellidoP en algunos de sus registros no tiene ningun valor entonces en Delphi...el valor de NombreCompleto aparece totalmente vacio.
Si hacemos una prueba directa de esa consulta sobre MYSQL el valor de NombreCompleto si aparece completo...es decir...solo omite el ApellidoP como es de esperarse pero si muestra el Nombre y el ApellidoM, esta raro
El componente que uso es el Tquery

Alguien sabe por que? Gracias.
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #2  
Antiguo 21-05-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Es bastante raro lo que mencionas, en lo personal uso mas que todo los componentes Zeos que son libres y gratuitos y no solo sirven para MySQL sino tambien para otros servidores; pero tambien tengo instalado los componentes MyDac y he hecho la prueba y todo ha ido bien, aunque la version que tengo instalada de MyDac es "mydac.v5.20.1.14" y mi versión de MySQL es 5.0.37 .
De todas formas si tu version de MyDac es superior o inferior puede que sea un Bug.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 23-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
La solucion

Resulta que si hay campos de una base de datos que contengan valores NULL
la concatenación no se realiza por la función CONCAT en MYSQL.

Para lograrlo en tal caso se puede usar una funcion llamada:COALESCE

Si encuentra un valor nulo lo sustituye por el valor indicado, entonces quedaría la consulta así:

SELECT idprospecto, razonsocial, concat(COALESCE(ApellidoP," "),' ',COALESCE(ApellidoM," "),' ', COALESCE(Nombre," ")) as ajasNombre, RFC FROM prospectos order by razonsocial

En este caso si encuentra valores null, los sustituye por un espacio.

Esa es la solución.
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
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
BDS 2006 Concat( delphi32, c++) vroa74 Varios 1 23-10-2007 00:33:10
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
Consulta que en función de un campo saque desglose o nombre del grupo apicito SQL 6 28-04-2004 09:02:24
Consulta con funcion MAX isc_hilda SQL 3 26-04-2004 23:14:59


La franja horaria es GMT +2. Ahora son las 16:02:08.


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