Foros del Web » Programando para Internet » PHP »

Leer .mdb con PHP

Estas en el tema de Leer .mdb con PHP en el foro de PHP en Foros del Web. Buenas, El problema que tengo no es tanto la lectura del archivo, eso ya lo solucioné. El tema es conseguir la manera de hacer algo ...
  #1 (permalink)  
Antiguo 26/08/2010, 10:52
 
Fecha de Ingreso: julio-2010
Mensajes: 50
Antigüedad: 8 años, 5 meses
Puntos: 1
Leer .mdb con PHP

Buenas,

El problema que tengo no es tanto la lectura del archivo, eso ya lo solucioné.
El tema es conseguir la manera de hacer algo como un "show tables" para mysql, pero para access y a través de php.

O sea, construir un script el cual me traiga los nombres de las tablas que existen en la bd contenida en el mdb y de esa manera irlas consultando cada una, para poder pasar la data a mysql.

Lo q conseguí navegando en internet fue esto:

$rs = $conn->Execute("SELECT
Table_Name = Name,
Row_Count = DCount(\"*\",[MSysObjects].[Name])
FROM
MSysObjects
WHERE
(Left([Name],1)<>\"~\")
AND (Left([Name],4) <> \"MSys\")
AND ([Type] In (1, 4, 6))
ORDER BY
Name");


que según decía en el sitio donde lo encontré, es el equivalente a "show tables" o tendría que devolverme los nombres de las tablas de la bd.

El error que me da es este:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft OLE DB Provider for ODBC Drivers<br/><b>Description:</b> [Microsoft][Controlador ODBC Microsoft Access] No se puede leer ningún registro; no tiene permiso para READ en 'MSysObjects'.' in C:\xampp\htdocs\pruebas\odbc\importar.php:16 Stack trace: #0 C:\xampp\htdocs\pruebas\odbc\importar.php(16): com->Execute('SELECT???????? ...') #1 {main} thrown in C:\xampp\htdocs\pruebas\odbc\importar.php on line 16

Mi código en importar.php es este:

Código PHP:
$mdb $_FILES['mdb'];
$conn = new COM("ADODB.Connection");
$dsn "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" realpath("bd_prueba.mdb");
$conn->Open($dsn);
$rs $conn->Execute("SELECT
                            Table_Name = Name,
                            Row_Count = DCount(\"*\",[MSysObjects].[Name])
                        FROM
                            MSysObjects
                        WHERE
                            (Left([Name],1)<>\"~\")
                            AND (Left([Name],4) <> \"MSys\")
                            AND ([Type] In (1, 4, 6))
                        ORDER BY
                            Name"
); 
El error que me da no termino de entenderlo, dado que mi conocimiento es bastante limitado en lo que se refiere a access...

Alguien tiene idea de un "show tables" pero para access y en php o que significa y como solucionaría el error que me está dando?

Saludos!
  #2 (permalink)  
Antiguo 26/08/2010, 11:35
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 15 años, 4 meses
Puntos: 105
Respuesta: Leer .mdb con PHP

Holas, esas consultas de access son parecidas a estas:

http://databases.aspfaq.com/schema-t...-database.html

Justo estaba en uno como eso, para trabajar con un MDB pero solo en linux, y me ayudo mucho el mdb-tools.

Saludos
Gildus
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 26/08/2010, 13:30
 
Fecha de Ingreso: julio-2010
Mensajes: 50
Antigüedad: 8 años, 5 meses
Puntos: 1
Respuesta: Leer .mdb con PHP

Si, es verdad, es el mismo tipo de consulta que no termino de entender.
Pero más allá de eso, lo que necesito hacer no es sólo pasar el mbd a un archivo para mysql o importar el contenido del archivo de access para mysql.

Sino, una "aplicación" en php que sea capaz de realizar dicha adaptación y el problema que estoy enfrentando en si, es que no hay un "show tables" para access.

Mi duda en si es esa... alguien puede ayudarme???

Gracias, saludos!

Etiquetas: access, mysql, phpodbc, show, tables
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 02:15.