Manejo Vistas en Mysql
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Manejo Vistas en Mysql
Saludos al forum
Alguine del forum ha manejado vistas en sus proyectos, segun veo en la documentacion tiene muchas ventajas al manejarlas.
Me gustaria ver sus comentarios en sus esperiencias.
Gracias
Alguine del forum ha manejado vistas en sus proyectos, segun veo en la documentacion tiene muchas ventajas al manejarlas.
Me gustaria ver sus comentarios en sus esperiencias.
Gracias
- armando.lagunas
- Posts: 340
- Joined: Mon Oct 05, 2009 3:35 pm
- Location: Curico-Chile
- Contact:
Re: Manejo Vistas en Mysql
Hola Ruben:
checa este enlace para que te orientes un poco mas.
http://forums.fivetechsupport.com/viewt ... =6&t=32245
//---- Editado ----
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 http://www.mysql.com ..comunity, y es gratis) y se puede hacer lo mismo de forma sencilla.
te muestro unas imagenes...
este es el resultado de esa vista
y asi lo llamo desde el programa
la clausula where hago el filtro para hacer mas pequeña la consulta
viendo tu código lo sería algo asi
y lo llamas desde tu programa algo asi...
la verdad es solo un tip...que te puede ayudar
saludos
checa este enlace para que te orientes un poco mas.
http://forums.fivetechsupport.com/viewt ... =6&t=32245
//---- Editado ----
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 http://www.mysql.com ..comunity, y es gratis) y se puede hacer lo mismo de forma sencilla.
te muestro unas imagenes...
este es el resultado de esa vista
y asi lo llamo desde el programa
Code: Select all
oDbf := oApp:oConnect:Query("SELECT * FROM V_PALLET_SIN_INSPECCION_DETALLE WHERE GRUPO='"+cGrupo+"' AND ESPECIE='"+cEspecie+"' AND FOL_INTERNO='"+cFolio+"' ")
viendo tu código lo sería algo asi
Code: Select all
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
Code: Select all
"SELECT * FROM vista_tutores WHERE FacAfipT1=" +Str( nFiltro,1,0 )+" AND "+ "FacAfipT2=" +Str( nFiltro,1,0 )
saludos
Re: Manejo Vistas en Mysql
Estimados;
En relación aeste tema de Vistas; a ver si pueden ayudarme.
He creado una Vista que funciona correctamente
En mi PC y mediante HeidiSQL la elimino y, luego al ejecutar la App, se genera nuevamente.
El problema, es que en la PC de mi cliente, y desde algun momento, el ejecutar la App me sale el siguiente mensaje de error.
Le doy Ok. ingresa al programa, y no da ningun error (la vista es de consulta permamente en un xBrowse).
Tambien si en la pc del cliente la borro, al ejecutar la app, no se regenera la Vista y entonces si la app sale con error al ingresar al xBrowse que lo muestra
Reitero, pruebo en mi PC y en otra, y no se reproduce tal error... alguna idea de donde puede estar el error?
En relación aeste tema de Vistas; a ver si pueden ayudarme.
He creado una Vista que funciona correctamente
En mi PC y mediante HeidiSQL la elimino y, luego al ejecutar la App, se genera nuevamente.
El problema, es que en la PC de mi cliente, y desde algun momento, el ejecutar la App me sale el siguiente mensaje de error.
Le doy Ok. ingresa al programa, y no da ningun error (la vista es de consulta permamente en un xBrowse).
Tambien si en la pc del cliente la borro, al ejecutar la app, no se regenera la Vista y entonces si la app sale con error al ingresar al xBrowse que lo muestra
Reitero, pruebo en mi PC y en otra, y no se reproduce tal error... alguna idea de donde puede estar el error?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
Re: Manejo Vistas en Mysql
MarioG
En tu PC atacas a una DB Mysql instalada en un Pc con Windows y donde tu cliente una BD MYSQL instalada en algun servidor Linux ?
Si es asi, los problemas van por el lado del nombre de las variables o campos de las tablas, revisa bien si estan en Mayusculas/minisculas.
En windows 'CODIGO' y 'codigo' son lo mismo... en Linux obviamente NO
Ojala sea eso.
Saludos
Desde Chile
Adolfo
En tu PC atacas a una DB Mysql instalada en un Pc con Windows y donde tu cliente una BD MYSQL instalada en algun servidor Linux ?
Si es asi, los problemas van por el lado del nombre de las variables o campos de las tablas, revisa bien si estan en Mayusculas/minisculas.
En windows 'CODIGO' y 'codigo' son lo mismo... en Linux obviamente NO
Ojala sea eso.
Saludos
Desde Chile
Adolfo
Ji,ji,ji... buena la cosa... "all you need is code"
http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
Re: Manejo Vistas en Mysql
Adolfo
gracias por responder
El ambiente es mas sencillo aún.
Tanto en mi PC, como en la de mi cliente, tengo instalado MariaDb bajo Windows y se usa acceso a Localhost, ya que por ahora mi cliente accede desde una PC
gracias por responder
El ambiente es mas sencillo aún.
Tanto en mi PC, como en la de mi cliente, tengo instalado MariaDb bajo Windows y se usa acceso a Localhost, ya que por ahora mi cliente accede desde una PC
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
Re: Manejo Vistas en Mysql
Mario:
Has verificado los permisos que tiene el usuario en la PC de tu cliente? Tal vez sea un tema de privilegios.
Has verificado los permisos que tiene el usuario en la PC de tu cliente? Tal vez sea un tema de privilegios.
Re: Manejo Vistas en Mysql
Puedes poner el código de creación de la vista?
Por cierto, si has comprobado los permisos y demás... puede que la versión del cliente MariaDB sea diferente?
Haz una búsqueda del fichero "LibMySQLd.dll" por si hubiera más de una ocurrencia en el ordenador de tu cliente...
Por cierto, si has comprobado los permisos y demás... puede que la versión del cliente MariaDB sea diferente?
Haz una búsqueda del fichero "LibMySQLd.dll" por si hubiera más de una ocurrencia en el ordenador de tu cliente...
______________________________________________________________________________
Sevilla - Andalucía
Sevilla - Andalucía
Re: Manejo Vistas en Mysql
CM
Gracias por responder
He instalado MariaDB, en la PC del cliente, sin alterar nada en tal proceso. Luego, con el programa creo Usuarios con estos privilegios:
No obstante cuando borro la vista desde HeidiSQL, tanto si ingreso como un usuario, como si lo hago como root, no crea la vista (no recuerdo el mensaje de error ahora).
O sea para crearla nuevamente recurro a un backup que hice desde mi PC pero, al ejecutar la app, muestra el dialog de error que mostré en el primer post.
Manu, gracias, esta es la sentencia:
Para entender la vista. Se toma de la tabla de Tutores. Esta tiene los datos de un Tutor1 (generalmente el padre), Tutor2 (la madre), y si procede una Razon Social (Esta tabla, tiene bastante datos, pero la transcribo por si ayuda). De manera que mediante un campo TINYINT(1), se define a nombre de quien se genera la factura, que se selecciona de un xBrowse de tal VISTA.
Gracias por responder
He instalado MariaDB, en la PC del cliente, sin alterar nada en tal proceso. Luego, con el programa creo Usuarios con estos privilegios:
Code: Select all
CREATE,INSERT,UPDATE,DELETE,SELECT,CREATE VIEW,SHOW VIEW
O sea para crearla nuevamente recurro a un backup que hice desde mi PC pero, al ejecutar la app, muestra el dialog de error que mostré en el primer post.
Manu, gracias, esta es la sentencia:
Code: Select all
aEstructura[_VTUTORES ]:= "CREATE VIEW IF NOT EXISTS vista_tutores AS " + ;
"SELECT id_tutor,tutor1 AS TUTORFAC,dniT1 AS DCTO,doctipoT1 AS DOCTIPO,direcnroT1 AS DIREC,locprovT1 AS LOCALI," + ;
"pisoT1 AS PISO,dptoT1 AS DPTO,manzanaT1 AS MANZA,parcelaT1 AS PARC,chacraT1 AS CHACRA,barrioT1 AS BARRIO,totcuotas " + ;
"FROM tutores WHERE FacAfipT1=1 " + ;
"UNION SELECT id_tutor,tutor2 AS TUTORFAC,dniT2 AS DCTO,doctipoT2 AS DOCTIPO,direcnroT2 AS DIREC,locprovT2 AS LOCALI," + ;
"pisoT2 AS PISO,dptoT2 AS DPTO,manzanaT2 AS MANZA,parcelaT2 AS PARC,chacraT2 AS CHACRA,barrioT2 AS BARRIO,totcuotas " + ;
"FROM tutores WHERE FacAfipT2=1 " + ;
"UNION SELECT id_tutor,razsocial AS TUTORFAC,cuit AS DCTO,doctipoRS AS DOCTIPO,direcnroRS AS DIREC,locprovRS AS LOCALI," + ;
"pisoRS AS PISO,dptoRS AS DPTO, '' ,'' ,'' ,'' ,totcuotas " + ;
"FROM tutores WHERE FacAfipRS=1 " + ;
"ORDER BY TUTORFAC,DCTO"
Code: Select all
aEstructura[_TUTORES ]:= "CREATE TABLE IF NOT EXISTS tutores (" + ;
"id_tutor INT(7) UNSIGNED ZEROFILL AUTO_INCREMENT PRIMARY KEY," + ;
"DeBaja TINYINT(1) DEFAULT 0," + ; // 0 Alta - 1 Baja
"TotCuotas FLOAT(10,2) DEFAULT 0," + ;
; // Padre
"FacAfipT1 TINYINT(1) DEFAULT 0," + ; // 1 USA p/Facturar
"Tutor1 VARCHAR(50) DEFAULT ''," + ;
"DNIT1 VARCHAR(9) DEFAULT ''," + ;
"DocTipoT1 INT(2) DEFAULT 96," + ; // 96=FE_DNI segun
"DirecNroT1 VARCHAR(70) DEFAULT ''," + ;
"PisoT1 CHAR(2) DEFAULT ''," + ;
"DptoT1 CHAR(4) DEFAULT ''," + ;
"ManzanaT1 CHAR(3) DEFAULT ''," + ;
"ParcelaT1 CHAR(3) DEFAULT ''," + ;
"ChacraT1 CHAR(3) DEFAULT ''," + ;
"CircunsT1 CHAR(3) DEFAULT ''," + ;
"BarrioT1 VARCHAR(40) DEFAULT ''," + ;
"CodPosT1 CHAR(8) DEFAULT ''," + ;
"LocProvT1 VARCHAR(40) DEFAULT ''," + ;
; // Madre
"FacAfipT2 TINYINT(1) DEFAULT 0," + ; // 1 USA p/Facturar
"Tutor2 VARCHAR(50) DEFAULT ''," + ;
"DNIT2 VARCHAR(9) DEFAULT ''," + ;
"DocTipoT2 INT(2) DEFAULT 96," + ; // 96=FE_DNI segun
"DirecNroT2 VARCHAR(70) DEFAULT ''," + ;
"PisoT2 CHAR(2) DEFAULT ''," + ;
"DptoT2 CHAR(4) DEFAULT ''," + ;
"ManzanaT2 CHAR(3) DEFAULT ''," + ;
"ParcelaT2 CHAR(3) DEFAULT ''," + ;
"ChacraT2 CHAR(3) DEFAULT ''," + ;
"CircunsT2 CHAR(3) DEFAULT ''," + ;
"BarrioT2 VARCHAR(40) DEFAULT ''," + ;
"CodPosT2 CHAR(8) DEFAULT ''," + ;
"LocProvT2 VARCHAR(40) DEFAULT ''," + ;
; // Empresa
"FacAfipRS TINYINT(1) DEFAULT 0," + ; // 1 USA p/Facturar
"CUIT CHAR(11) DEFAULT ''," + ;
"DocTipoRS INT(2) DEFAULT 80," + ; // 80=FE_cuit segun
"CondIVA INT(2) DEFAULT 1," + ; // 1=FE_RespInscri
"RazSocial VARCHAR(50) DEFAULT ''," + ;
"DirecNroRS VARCHAR(70) DEFAULT ''," + ;
"PisoRS CHAR(2) DEFAULT ''," + ;
"DptoRS CHAR(4) DEFAULT ''," + ;
"CodPosRS CHAR(8) DEFAULT ''," + ;
"LocProvRS VARCHAR(40) DEFAULT ''," + ;
; // Contactos
"MovilT1 VARCHAR(30) DEFAULT ''," + ;
"LaboralT1 VARCHAR(30) DEFAULT ''," + ;
"Correo_eT1 VARCHAR(100) DEFAULT ''," + ;
;
"MovilT2 VARCHAR(30) DEFAULT ''," + ;
"LaboralT2 VARCHAR(30) DEFAULT ''," + ;
"Correo_eT2 VARCHAR(100) DEFAULT ''," + ;
; // Otros
"Contacto VARCHAR(30) DEFAULT ''," + ;
"MovilX VARCHAR(30) DEFAULT ''," + ;
"FijoX VARCHAR(30) DEFAULT ''," + ;
"Observa TINYTEXT," + ;
; // Indices
"INDEX id_tutor (id_tutor)," + ;
"INDEX tutor_1 (tutor1(20))," + ;
"INDEX dni_1 (DNIT1)," + ;
"INDEX tutor_2 (tutor2(20))," + ;
"INDEX dni_2 (DNIT2) )" + ;
"COMMENT= 'Tabla de Tutores'" + ;
"ENGINE= INNODB," + ;
"DEFAULT CHARSET=utf8," + ;
"COLLATE=utf8_spanish_ci;"
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
Re: Manejo Vistas en Mysql
Lo has solucionado?
Porqué no pruebas a destruir la vista antes y luego a crearla sin condiciones?
Se me ocurre que internamente MariaDB piense que existe y por eso no la cree...
Porqué no pruebas a destruir la vista antes y luego a crearla sin condiciones?
Code: Select all
DROP VIEW IF EXISTS vista_tutores;
// Y luego
CREATE VIEW vista_tutores AS ...
______________________________________________________________________________
Sevilla - Andalucía
Sevilla - Andalucía
Re: Manejo Vistas en Mysql
Manu;
El problema sigue... pero como solo muestra el aviso, y no da error, no se quejan
Voy a probar tu sugerencia...
gracias
El problema sigue... pero como solo muestra el aviso, y no da error, no se quejan
Voy a probar tu sugerencia...
gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina