Page 1 of 1

O.T. xBrowse con MySQL [SOLUCIONADO]

PostPosted: Sat Apr 09, 2016 10:15 am
by MarioG
Estimados;
Tengo una Tabla de personas en la que la estructura esta definida de manera que los campos de Apellido, Nombre y otros datos estan repetidos.
Para clarificar. la Tabla corresponde a Tutores de alumnos. Y seria mas o menos así:
IDTutor1,ApellidosT1, NombresT1, DctoT1..., IDTutor2,ApellidosT2, NombresT2, DctoT2
La implemente de esta manera porque a uno de ellos es a quien se le factura, esto se define mediante un campo Tinyint (1,0)
De manera que al ingresar al Facturador, cuando se va capturar un cliente (o Tutor), se despliega un xbrowse donde, ahora si, en esta lista se presentan, en dos columnas: Dcto y, Apellidos y Nombres
Este browse lo hago mediante un select definido así:
Code: Select all  Expand view
"SELECT id_tutor,tutor1 AS TUTORFAC,dniT1 AS DNI,doctipot1 AS DOCTIPO,direcnrot1 AS DIREC,totcuotas " + ;
               "FROM tutores WHERE FacAfipT1=" +Str( nFiltro,1,0 )+" "+ ;
               "UNION SELECT id_tutor,tutor2 AS TUTORFAC,dniT2 AS DNI,doctipot2 AS DOCTIPO,direcnrot2 AS DIREC,"totcuotas " + ;
               "
FROM tutores WHERE FacAfipT2=" +Str( nFiltro,1,0 )+" ORDER BY TutorFac"

Re: O.T. xBrowse con MySQL

PostPosted: Sat Apr 09, 2016 10:28 am
by MarioG
Disculpas, (en lugar de Vista Previa pulse Enviar :oops: )
sigo...
El xBrowse en dos columnas, se muestra de acuerdo a lo esperado, en 2 columnas de Dcto y, Apellidos y Nombres
El problema que se me plantea es cuando pulso sobre la cabecera de una de estas para activar la búsqueda (y realizar busquedas incrementales), se produce el mensaje de error: You have an erro en your syntax... "ORDER BY TUTORFAC"
Esto es correcto debido a que esta columna esta en UNION
Entonces la pregunta es: No puedo implementar la busqueda, mediante tal función de xBrowse?
Si se puede, como?

gracias

Re: O.T. xBrowse con MySQL

PostPosted: Sat Apr 09, 2016 12:15 pm
by armando.lagunas
hola

en MySql yo creo "Vistas"..(Views), que son instrucciones SQL que generan una "vista" como si fuera una tabla mas de MySql, después la llamo desde el programa con las clausulas Where que necesito en el momento de llamarlas..., yo utilizo Navicat para hacerlo, pero estuve viendo Workbench (se descarga desde el sitio www.mysql.com ..comunity, y es gratis) y se puede hacer lo mismo de forma sencilla.
te muestro unas imagenes...

Image

este es el resultado de esa vista

Image

y asi lo llamo desde el programa

Code: Select all  Expand view


   oDbf  := oApp:oConnect:Query("SELECT * FROM V_PALLET_SIN_INSPECCION_DETALLE WHERE GRUPO='"+cGrupo+"' AND ESPECIE='"+cEspecie+"' AND FOL_INTERNO='"+cFolio+"' ")

 


la clausula where hago el filtro para hacer mas pequeña la consulta

viendo tu código lo sería algo asi

Code: Select all  Expand view


CREATE
    ALGORITHM = TEMPTABLE
    DEFINER = `root`@`%`
    SQL SECURITY DEFINER
VIEW `vista_tutores` AS

        SELECT id_tutor, tutor1 AS TUTORFAC,dniT1 AS DNI,doctipot1 AS DOCTIPO,direcnrot1 AS DIREC,totcuotas FROM tutores
        UNION SELECT id_tutor,tutor2 AS TUTORFAC,dniT2 AS DNI,doctipot2 AS DOCTIPO,direcnrot2 AS DIREC,totcuotas
               FROM tutores ORDER BY TutorFac

 


y lo llamas desde tu programa algo asi...

Code: Select all  Expand view

"SELECT * FROM vista_tutores WHERE FacAfipT1=" +Str( nFiltro,1,0 )+" AND "+ "FacAfipT2=" +Str( nFiltro,1,0 )
 


la verdad es solo un tip...que te puede ayudar

saludos

Re: O.T. xBrowse con MySQL

PostPosted: Sat Apr 09, 2016 12:17 pm
by MarioG
Armando; muchas gracias por contestar
Lo voy a estudiar con cuidado y te comento

Re: O.T. xBrowse con MySQL

PostPosted: Mon Apr 11, 2016 10:02 pm
by MarioG
Armando;
muchisimas gracias!
Evidentemente aún me queda mucho por leer y aprender de MariaDB/MySQL
De lo que estoy seguro es que cada día amo mas a MariaDB/MySQL :D

Re: O.T. xBrowse con MySQL [SOLUCIONADO]

PostPosted: Mon Apr 11, 2016 10:07 pm
by armando.lagunas
mario:

me alegro de que hayas solucionado tu problema, cualquier cosa estaré al pendiente.

saludos