Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda con vistas en Mysql

Estas en el tema de Ayuda con vistas en Mysql en el foro de Mysql en Foros del Web. Hola, necesito ayuda con la administración de vistas en Mysql. Estoy construyendo un página que se alimenta de la BD de la empresa, para ello ...
  #1 (permalink)  
Antiguo 15/12/2008, 02:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Ayuda con vistas en Mysql

Hola, necesito ayuda con la administración de vistas en Mysql.

Estoy construyendo un página que se alimenta de la BD de la empresa, para ello el ingeniero me ha enviado un código para poder acceder a los datos de esta BD.

La cuestion es que no sé qué hacer con él; como se darán cuenta no tengo experiencia con administracion de bases de datos.

Lo que necesito es extraer esos datos (acá es dodne necesito la ayuda) y luego mostrarlos por medio de php (es parte ya la se hacer).

Cualquier ayuda la agradezco montones.

El código que me envió el ingeniero de la empresa es el siguiente:

Código:
USE [ALSAN]
GO
/****** Objeto:  View [dbo].[GP_LISTAPRODUCTOS]    Fecha de la secuencia de comandos: 12/05/2008 15:37:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[GP_LISTAPRODUCTOS]
AS
SELECT     dbo.IV00101.ITEMNMBR, dbo.IV00101.ITEMDESC, dbo.IV00108.UOMPRICE, dbo.IV00103.VENDORID
FROM         dbo.IV00101 INNER JOIN
                      dbo.IV00108 ON dbo.IV00101.ITEMNMBR = dbo.IV00108.ITEMNMBR INNER JOIN
                      dbo.IV00103 ON dbo.IV00101.ITEMNMBR = dbo.IV00103.ITEMNMBR
WHERE     (dbo.IV00101.ITEMTYPE IN (1, 2))
  #2 (permalink)  
Antiguo 15/12/2008, 09:37
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Ayuda con vistas en Mysql

Hola
Pues simplemente córrelo tu script en la tu DB par que se cree la Vista, luego desde php lo puedes consultar como si fuera una tabla normal

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 15/12/2008, 23:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Ok, lo quepasa es que uso MyAdmin para administrar la base de datos y cuando intento correr el código dice:

Código:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[ALSAN]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW ' at line 1
He intentado acceder al manual para encontrar el problema pero no me queda muy claro
  #4 (permalink)  
Antiguo 16/12/2008, 07:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con vistas en Mysql

El código que te ha enviado es de Microsoft SQL Server, no de MySQL. Eso se nota porque las sentencias están sin terminar (les falta el ";") y porque GO no es cláusula ni sentencia de MySQL.

Una de dos: O accedes a los datos desde PHP al servidor de SQL Server, para lo cual deberás usar los conectores apropiados, o bien migras la base a MySQL y reescribes el script.

En MySQL el código de creación sería mas o menos este:
Código sql:
Ver original
  1. USE ALSAN;
  2.  
  3. CREATE OR REPLACE VIEW ALSAN.GP_LISTAPRODUCTOS
  4. AS
  5. SELECT
  6.    ALSAN.IV00101.ITEMNMBR,
  7.    ALSAN.IV00101.ITEMDESC,
  8.    ALSAN.IV00108.UOMPRICE,
  9.    ALSAN.IV00103.VENDORID
  10. FROM ALSAN.IV00101 INNER JOIN
  11.           ALSAN.IV00108 ON ALSAN.IV00101.ITEMNMBR = ALSAN.IV00108.ITEMNMBR
  12.           INNER JOIN ALSAN.IV00103 ON ALSAN.IV00101.ITEMNMBR = ALSAN.IV00103.ITEMNMBR
  13. WHERE     ALSAN.IV00101.ITEMTYPE IN (1, 2);

Estoy suponiendo:
1. ALSAN es el nombre de la base de datos.
2. Ya tienes una conexión ODBC que identifique esa base.
3. Las tablas invocadas están en esa base de datos.
4. El motor donde se encuentran es MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/12/2008, 13:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Gracias por tu ayuda, supones bien ALSAN es la base de datos pero no se si tenga la conexión ODBC, cómo me cercioro de ello??

De nuevo gracias por tu paciencia
  #6 (permalink)  
Antiguo 16/12/2008, 14:54
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Ayuda con vistas en Mysql

Ya que estas usando no necesitas conectarte a traves del ODBC, solo tienes que habilitar la extensión dentro del php.ini correspondiente al Sql Server y ya lo puedes usar.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #7 (permalink)  
Antiguo 17/12/2008, 08:06
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Gracias por tu aporte, lo inetnté con el script que me diste y ya no genera errores de sintaxis, ahora el problema es que me dice que no soy un usuario válido para la base de datos ALSAN, no sé si esté haciendo algo mal, ALSAN es la base de datos del servidor interno de la Empresa para la que estoy haciendo la página web.

La idea es acceder a esta base de datos desde mi servidor de internet para crear una vista de aquella base de datos y poder mostrar la información en la página que estoy haciendo.

El código que me dieron sirve para eso?

de ser así, qué es lo que estoy haciendo mal?

Tengo en mi servidor de internet otra base de datos a la que llamé ALSAN, en donde quiero crear esta vista para acceder a esos datos.

Agradezco nuevamente la paciencia que me tienen.
  #8 (permalink)  
Antiguo 17/12/2008, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ayuda con vistas en Mysql

Mmmm a ver si entiendo, con la vista quieres entrar a la base de datos local, desde la base de datos de internet?
  #9 (permalink)  
Antiguo 17/12/2008, 11:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Sí,la base de datos con los datos está en un servidor local de la empresa, la idea es ue ellos me iban a generar una vista para yo tener acceso a esa información y mostrarla en la página.

Ese código sí hace eso??

Porque me parece que lo que hace es generar la vista en la BD de ellos y que, una vez generada, sí me la deberían enviar.

Es eso cierto??
  #10 (permalink)  
Antiguo 18/12/2008, 04:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con vistas en Mysql

El script del ingeniero crea la vista en la base corporativa MS SqlServer una vista es como una tabla virtual. Si corres el script adaptado en mysql lo que hara será crear la vista en mysql (si tiene todas las tablas) pero esa vista tendrá los datos que tenga mysql.

Tienes dos opciones

- buscar la forma de vincular los dos servidores para poder ver los objetos de uno desde el otro, esto en el sentido MySql->SQLserver (que se vean los objetos de MySql en el SQLserver se haria via ODBC en este hilo se habla del tema), en el sentido contrario que se vean los objetos de SQLserver en MySql no lo tengo claro, en ese hilo se habla de un DTS para replicar los datos (no se como funciona). Si solucionas esto es tan facil como que el ingeniero cree la vista en su base de datos y tu la puedas ver des de la tuya.

- la segunda opción, para mi la mejor, seria acceder directamente a la vista original es cuestión de conectar con php a la base de datos SQLserver. Otra vez hace falta que se cree la vista en el SQLserver...

Quim

Última edición por quimfv; 18/12/2008 a las 07:29
  #11 (permalink)  
Antiguo 18/12/2008, 07:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Gracias, quim

Voy a hablar con el ingeniero a ver cuál será la mejor opción, en cuanto llo haya solucionado les avisaré.

Muchas gracias
  #12 (permalink)  
Antiguo 19/12/2008, 08:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con vistas en Mysql

Hola de nuevo

Ya logré solucionar con la gente de la empresa, al fín voy a acceder directamente al servidor de la empresa como lo recomendó Quim.

Les agradezco muchísimo su ayuda muchachos.
  #13 (permalink)  
Antiguo 12/11/2010, 09:43
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Ayuda con vistas en Mysql

tengo un problema con al crear una vista. la sentencia que estoy usando es la siguiente:

create view 4-144401A as SELECT descripcion,qty,customer_num,country_origin,codigo _barras,letra FROM country2,rel_country,suplier,revision,relacion, rel_pa_et, identifier, qty, letra, item_no, grupo, digit, descripcion, country_origin, customer_name, custom_num, code, codigobarras, rel_etiquetas, papel, etiqueta WHERE codigobarras.id_codigo_barras = rel_etiquetas.id_codigo_barras and code.id_code = rel_etiquetas.id_code and custom_num.id_customer_num = rel_etiquetas.id_customer_num and customer_name.id_customer_name = rel_etiquetas.id_customer_name and descripcion.id_descripcion = rel_etiquetas.id_descripcion and digit.id_digit = rel_etiquetas.id_digit and grupo.id_group = rel_etiquetas.id_grupo and identifier.id_identifier = rel_etiquetas.id_identifier and item_no.id_item = rel_etiquetas.id_item and letra.id_letra = rel_etiquetas.id_letra and qty.id_qty = rel_etiquetas.id_qty and rel_pa_et.id_rel_pa_et = rel_etiquetas.id_rel_pa_et and relacion.id_relacion = rel_etiquetas.id_relacion and revision.id_revision = rel_etiquetas.id_revision and suplier.id_suplier = rel_etiquetas.id_suplier and country2.id_country2=rel_country.id_country2 and country_origin.id_country=rel_country.id_country and rel_country.id_rel_country= rel_etiquetas.id_rel_country and papel.id_papel=rel_pa_et.id_papel and etiqueta.id_etiqueta=rel_pa_et.id_etiqueta and papel.papel='4-144401A'

el problema esta en que al darle el nombre de 4-144401A me arroja este error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4-144401A as SELECT descripcion,qty,customer_num,country_origin,codigo _barras,' at line 1


verifico la sentencia en el EMS SQL Manager 2007 que es una interfas grafica para hacer bases de datos en mysql como si fuera acces o alguna otra aplicacion para mysql, (no digo q acces sea una aplicacion para mysql), lo mas cercano a una explicacion q puedo concluir es que lo toma como si fuera codigo de color la parte que tiene -144401 ya que con una serie parecida que tenga 14a4401 hace lo mismo

la pregunta es como puedo hacer para que me acepte ese valor como nombre de la vista yq q es asi como necesito que se llame mi vista creada

si alguien me puede ayudar de antemano gracias
  #14 (permalink)  
Antiguo 12/11/2010, 10:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con vistas en Mysql

Dos consejos:
1) Tu problema es que no puedes iniciar el nombre de un objeto de bases de datos con números. Es una política general de los DBMS para evitar confusiones. Lo que se debe hacer es encerrar el nombre entre acentos inversos (`), de modo que el parser lo tome como está.

2) No cuelgues una pregunta de un post ajeno, especialmente si no está relacionada con lo que el autor del post está preguntando o con lo que se está tratando. No es cortés. Es como si alguien se metiera en una conversación ajena... ¿Te gustaría que te lo hagan? Evidentemente no. Bueno, las reglas de cortesía en los foros exigen eso.
Además, ten en cuenta que los que leemos los posts lo hacemos no por lo que dice el último, sino por lo que pregunta el autor, y muchas veces, cuando vemos que son muy viejos simplemente lo descartamos, porque sabemos que están resucitando un tema ya perimido.

Siempre es mejor abrir un tema nuevo.

Saludos y nos vemos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 12/11/2010, 10:43
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Ayuda con vistas en Mysql

gracias x la ayuda gnzsoloyo y disculpa por le descortesia lo q pasa sq soy nuevo en esto y no se como crear nuevos temas

sorry
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.