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

Compartir tablas en Access y mysql

Estas en el tema de Compartir tablas en Access y mysql en el foro de Bases de Datos General en Foros del Web. Hola amigos. Espero que me podais ayudar con esto. Tengo la intención de hacer un bd en access, para poder acceder a ella desde varios ...
  #1 (permalink)  
Antiguo 17/09/2009, 11:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Compartir tablas en Access y mysql

Hola amigos. Espero que me podais ayudar con esto.

Tengo la intención de hacer un bd en access, para poder acceder a ella desde varios equipos en una misma oficina.

Ahora bien, como tambien habrá partes de esta bd que tendran que manipular personas que esten fuera de la oficina, para lo cual crearé una especie de web para manipular los datos, pero para esto necesito tener una bd en un servidor tipo mysql.

Esto lo podría solucionar sin ningun problema, vinculando las tablas de access en mysql.

Pero la cosa esta en que en Access, si vinculas las tablas a donde sea, ya no las puede relacionar.

Teniendo en cuenta que una condiciones esencial de la bd a crear a relacionar entre si bastantes tablas que va a tener y de las cuales ya tengo el diseño, necesito tener las tablas y que se puedan manipular sus datos, tanto desde access, como desde la web.

He probado con las funciones que tiene php sobre obdc, pero claro, estoy en las mismas, el obdc solo funciones para el equipo donde esta, o como mucho, para los equipos de una misma red, pero no para un servidor tipo mysql.

Espero que me capteis la idea sobre mi problema y a ver si me podeis dar alguna soluciones.

Gracias por leer el post. Un saludo.
  #2 (permalink)  
Antiguo 18/09/2009, 01:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

Yo no intentaria mezclar un sistema de bases de datos serio con uno que no lo es...

Por tanto o todo en Mysql o todo en access.

Puedes hacer que los usuarios internos usen mysql con lo que tendrás que crear una aplicación web que corra en la intranet de la empresa y que use el mismo servidor mysql que la web externa... tema solucionado todo en mysql, cosa seria.


Puedes poner la base access en el servidor web y usar access como si fuera un gestor de bases de datos... tema solucionado... o no...

Yo te recomendaria la primera solución pero te dejo un link para la segunda, tu mismo (Ejemplo de conexión con base de datos Access en PHP)

Quim
  #3 (permalink)  
Antiguo 18/09/2009, 01:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Hola. Gracias por tu respuesta.

Con respecto a la primera opcion, esto sería lo normal, tener las tablas en mysql, y despues acceder a ellas a gusto, ya sea por access, por una aplicacion web, etc. El problema de esta opcion es que a la hora de relacionar las tablas, en mysql me parece bastante mas complicado que en accees, es decir, en si fueran dos tablas no pasa nada, pero van a ser sobre unas 50, por eso prefería tenerlo en Access.

Con respecto a la segunda opcion, que es por lo que preguntaba, conseguí conectar la bd de access con una aplicacion web, pero en un servidor local, es decir, en un mismo equipo. El problema es que cuando el servidor no sea local y se vaya a acceder desde cualquier ordenador que este donde esté, el obdc no funcionará.... o si, quiero decir, esta es mi pregunta, hay alguna forma de conectar una bd en access con php por medio de obdc, pero que el obdc funcione no solo en un equipo o no solo en una red de equipos, si no que funcione en un servidor web al que se puede acceer desde cualquier parte?.
  #4 (permalink)  
Antiguo 18/09/2009, 02:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

Hay herramientas graficas para mysql que hacen tan fàcil relacionar tablas como en access pero son de pago. Yo uso las gui tools de Mysql no son tan amables como las gràficas de pago pero son gratis. Con el MySQL Administrator se pueden definir las tablas y relacionarlas con bastante ayuda gràfica....

En cuanto a conectar Access con php te he pasado un link...

Creo que tienes una confusion... la conexión odbc se produce entre access y php en el servidor, los clientes acceden via servidor web no tienen que preocuparse de que esta pasando dentro del servidor.... si conecta en el localhost luego conecta desde otra maquina al acceder al localhost via ip... no se si me he explicado, la conexion se produce dentro de localhost con el odbc que tiene definido en localhost...

Tu problema puede ser encontrar un servidor comercial que te ofrezca Access...

Quim
  #5 (permalink)  
Antiguo 18/09/2009, 02:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Hola. Te comento.

En cuanto a las herramientas graficas, conozco las que me has pasado y algunas mas, son interesantes y supongo que me tendré que acostumbrar a ellas, aunque de momento con lo que mejor me va es con Access.

En cuanto a conectar Access con Php, el link que me pasaste ya lo conocía, ademas esa web es muy recomendable por mi parte para el que quiera visitarla.

Ahora bien, discrepo contigo en cuanto a la conexión obdc, pero es cierto que aqui es donde tengo la duda, con lo que no estoy seguro, me explico.

Hasta donde yo llego, cuando crear una conexion con odbc, te pide que introduzcas simplemente donde esta la base de datos con la que quieres conectar y que le des un nombre a la conexion.

Despues, cuando usas la funcion odbc_connect, te pide que le introducas como parametros el nombre de la dsn, el usuario y la contraseña. Segun esto, yo entiendo que como pide el nombre de la dsn, y al crear esta solo introdujiste donde esta la bd en el pc, en ningun momento lo estas diciendo ninguna direccion de servidor, etc.

Dicho esto, que creo que es cierto, aunque no estoy seguro, la duda es si hay otra forma de crear la dsn, o lo que sea, para que se pueda conectar una bd access a una aplicacion web por medio de odbc.

Espero no marearte.
  #6 (permalink)  
Antiguo 18/09/2009, 03:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

No.

Estas confundido, la conexión se hace dentro de una sola maquina entre el servidor web+php y el servidor de bbdd sea cual sea ... el servidor web corre en una maquina y en esta están definidos los dns para conectar... un dns puede conectar una base de la propia maquina o de otra maquina....

En cualquier caso todo eso no tiene nada que ver con el cliente vía web como ya te dije... para el cliente la conexión a la bbdd es transparente....

El cliente hace peticiones al servidor web y este se encarga de gestionar las peticiones al servidor de base de datos, este ultimo puede estar en la misma maquina o en otra, sea vía odbc o no.

PHP o los similares (.asp, .jsp...) son lenguajes del lado servidor eso quiere decir que se ejecutan en el servidor, luego las conexiones que necesitan se hacen con direcciones relativas a la maquina que alberga el servidor... luego esas direcciones son las mismas te conectes des de la propia maquina (localhost o su ip), des la maquina del al lado o desde la Patagonia...

Lo siento pero estoy muy seguro de lo que digo....


Cita:
Despues, cuando usas la funcion odbc_connect, te pide que le introducas como parametros el nombre de la dsn, el usuario y la contraseña. Segun esto, yo entiendo que como pide el nombre de la dsn, y al crear esta solo introdujiste donde esta la bd en el pc, en ningun momento lo estas diciendo ninguna direccion de servidor, etc.
Esos datos los tienes en un script en el servidor y siempre son los mismos.... cuando creas el dns puedes elegir una bbdd del propio pc o de cualquier maquina accesible y sobre la cual tengas privilegios para conectar....


Quim

Última edición por quimfv; 18/09/2009 a las 03:36
  #7 (permalink)  
Antiguo 18/09/2009, 05:17
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Hola.

Ya que es evidente que no estaba en lo cierto, a ver si me he enterado ahora entonces.

Yo instalo, por ejemplo, Easyphp en el ordenador que va a hacer de servidor y donde ademas hay una bd en access, configuro el servidor para poder acceder a el en remoto, pongo un dominio por ejemplo de no-ip, coloco los archivos de la aplicacion en la carpeta www y ya puedo acceder a la aplicacion desde cualquier ordenador en cualquier punto del mundo, mediante http//Dominio.com

Hasta aqui todo correcto porque esto ya lo he hecho en otras ocasiones.

Ahora, si yo tengo una bd en mysql, puedo acceder a ella creado un script de acceso a la misma.

Hasta aqui todo sigue correcto porque esto tambien lo hecho.

Ahora, quiero acceder desde cualquier punto del mundo, a la bd de access que tengo en el ordenador que hace de servidor.

Llegados a este punto, me puedes explicar como lo harías tu para que funcionase.

Gracias por todo y perdona la insistencia.
  #8 (permalink)  
Antiguo 18/09/2009, 06:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

Creas el script php que acceda al acces y puedes acceder desde culquier parte del mundo.

En el script para conectar a una bbdd mysql debes poner la dirección al servidor de mysql (que puede ser localhost si es la misma maquina donde corre el servidor web), luego la base de datos, el usuario y su password.

En el script para conectar via odbc tienes que decir ...
Cita:
cuando usas la funcion odbc_connect, te pide que le introducas como parametros el nombre de la dsn, el usuario y la contraseña.

La funcion odbc_connect se ejecuta en el servidor por tanto si le pasas un nombre de dns lo va a buscar en el servidor luego funcionara ya que lo va a encontrar aun que la peticion venga de Nueva Celanda.


Es lo mismo, si no lo ves, pregunta de nuevo sin problemas que intentare explicarlo de otra forma o mejor...

Tenemos solo dos roles o papeles o lados el cliente y el servidor, pero tenemos mas actores

Papel
Cliente
Servidor

Actores
Usuario (navegador de internet, IE, FireFox...):::::::USU
Servidor Web (IIS, Apache....) +php*:::::::::::::::::::SWEB
Servidor bbdd (MySql, Oracle, Access...)::::::::::::::::Sbbdd

Código sql:
Ver original
  1. USU                SWEB            Sbbdd
  2. Cliente------->Servidor                         Petición
  3.                       Cliente<----->Servidor   Calculos            
  4. Cliente<-------Servidor                         Respuesta

Tu como usuario solo tienes que saber la dirección del servidor web, http//Dominio.com, este hace las consultas al servidor de bbdd, usando el scrip de conexion que tiene guardado y donde estan los parametros de conexión, actuando en este momento como cliente, y finalmente otra vez como servidor "sirve" la respuesta al Usuario.

Esta arquitectura es independiente de que sofware estes usando... claro que los parametros que vas a usar en una caso o en otro si dependent del software, en el caso particular de usar odbc debes tener creado un dns en el servidor que acceda al servidor de bbdd. Pero esto nos modifica la forma de conectar entre SWeb y Sbbdd no entre USU y SWeb...


Quim

*Nose si php corre con IIS...

Última edición por quimfv; 18/09/2009 a las 06:34
  #9 (permalink)  
Antiguo 18/09/2009, 06:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

HOla:

Mira, para conectar con una bd en mysql, uso esto

//Declaro las variables para la conexion
$bd_host = "localhost";
$bd_usuario = "hola";
$bd_password = "1111";
$bd_base = "foro";

//Me conecto a la bd y eligo la base de datos
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);

Para conectar a bd con odbc uso esto

//Creo las variables para conectar con la base de datos
$dsn = "basenueva";
$usuario = "";
$clave = "";

$conexion = odbc_connect($dsn,$usuario,$clave) or die ("No se pudo conectar con la base de datos");

Sigo sin ver donde se le indica al dsn el servidor al que tiene que conectarse.

Perdoname, pero debo de estar un poco torpe, porque no lo veo.
  #10 (permalink)  
Antiguo 18/09/2009, 06:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

El dns ya lo sabe!!!! Cuando creas el dns estas diciendo donde esta la bbdd, luego ya esta.... Los parametros de creación del dns son, el driver correspondiente a la bbdd, el host o maquina donde esta la bbdd y finalmente el nombre de la bbdd.

Si lo que haces es conectar una bbdd del mismo pc no te piede ningun nombre de maquina pero si la bbdd estuviera en otra maquina tendrias que decirle el nombre o la direcció depende de como te conectes a ella... pero al dns no al script de conexión.


Código sql:
Ver original
  1. mysql                                                    odbc
  2. $bd_host = "localhost"; / $bd_base = "foro";     $dsn = "basenueva";
  3. $bd_usuario = "hola";                            $usuario = "";
  4. $bd_password = "1111";                           $clave = "";

Tampoco le estas diciendo el nombre de la bbdd, ya que el dns ya lo sabe.... no?


Quim

Última edición por quimfv; 18/09/2009 a las 06:55
  #11 (permalink)  
Antiguo 18/09/2009, 08:19
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Vale, hasta aqui estamos de acuerdo. Ahora bien, cuando hablamos de crear el dns, estamos hablando de ir a panel de control, herramientas administrativas, origenes de datos odbc, agregar dns de sistema, elegir el driver de microsoft Access, pulsamos finalizar, se abre otra pantalla, pulsamos seleccionar para elegir la bd. y apartir de aqui, solo puede elegir una bd del equipo, o una bd de la red local. O al menos eso creo yo.

A partir de esta parte es cuando me pierdo.

Que te parece?.

Última edición por AitorLopez; 19/09/2009 a las 14:47
  #12 (permalink)  
Antiguo 19/09/2009, 10:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Compartir tablas en Access y mysql

Eso... Donde lo haces? En la maquina que tiene el servidor, no en la maquina cliente. Luego si repasas mis post lo entenderas....


Código sql:
Ver original
  1. USU                SWEB            Sbbdd
  2. Cliente------->Servidor                         Petición
  3.                       Cliente<----->Servidor   Calculos            
  4. Cliente<-------Servidor                         Respuesta


El cliente hace una petición php al sevidor web este la ejecuta*, si implica una consulta a la base de datos le pide al servidor de bases de datos que la resulva, recibe los datos da formato a la respuesta y la pasa al cliente.

* La petición se ejecuta en "local", pero este "local" es dentro del servidor donde antes tu has definido el dns.


Luego el cliente solo tiene que conocer la dirección del servidor web + php para mandar las peticiones, el servidor hace las consultas que haga falta al servidor de bbdd. En el caso de odbc via el dns que tiene creado y en el caso de un verdadero servidor de bbdd via su dirección (que puede ser localhost si los dos servidores residen en la misma maquina).

Cuando tu montas todo esto en tu PC en realidad los tres actores de la pelicula estan en la misma maquina pero pasa lo mismo...

El navegador, digamos FireFox, hace la petición al servidor web, digamos apache+php, usando la dirección http://localhost/loquesea.php. El servidor web+php hace las consultas a access via el dns que tiene creado y formatea la respuesta para pasarla al navegador.

Ahora imagina que no estamos en una sola maquina, lo unico que tienes que cambiar és la dirección
http://??????/loquesea.php, y claro haber configurado el servidor.....


Quim

Última edición por quimfv; 22/09/2009 a las 00:37
  #13 (permalink)  
Antiguo 19/09/2009, 14:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Hola.

Bueno, gracias a tu respuesta, creo que ya lo he entendido, aunque, sinceramente, no pensaba que funcionara de esta forma.

Mi pensamiento original era que cada maquina tendria que tener el dns configurado, lo cual era inviable, claro esta.

Bueno, pues segun esto que hemos comentado en los hilos, voy a hacer en estos dias las pruebas pertinentes, primero en local y despues en remoto. En local las haré mas o menos rapido, pero las que mas me interesan, en remoto, tardaré mas, ya que tendré que encontrar a alguien para que se conecte a la pagina, pero vamos, que en cuanto sepa algo te lo comento.

Bueno, solamente darte las gracias por tus explicaciones y por tu insistencia.

Un saludo.
  #14 (permalink)  
Antiguo 21/09/2009, 05:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Compartir tablas en Access y mysql

Hola.

Bueno, pues ya he podido probarlo, tanto en local como en remoto, y efectivamente, tenias toda la razón del mundo, funciona tal y como tu comentabas. Por mi parte esta todo aclarado..

Gracias de nuevo.

Un saludo.
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 08:24.