Puedo exportar de Access a SQLite? (Se precisan conocimientos de PHP y tener experiencia en publicación de páginas PHP.) Sí. Basta conocer las técnicas de ODBC. Existe un ODBC para SQlite: sqliteodbc.exe para Windows Que debe instalarse. http://www.patthoyts.tk/sqlite3odbc.html Una vez instalado la técnica es la siguiente. Partamos de una base de datos de Access (biblioteca.mdb) con varias tablas depuradas y un sitio creado en nuestro servidor local (BiblioSQLite), donde trabajaremos con Dreamweaver, FrontPage 2003, NVU, Kompozer o cuaquier otro editor de php. Es importante fijarse en los tipos de datos de las tablas: Los enteros que sean enteros no dobles, las fechas que tengan el formato apropiado (mejor pasarlas a texto), etc para evitar desbordamientos y problemas de trasvase de información del ODBC Pensando en consultas elementales que podamos hacer a un fichero de biblioteca como Preparemos una tabla en la base de datos de ACCESS que denominaremos UNIVERSAL y que contenga la información requerida en el formulario anterior. Dicha tabla será la que nos sirva de ejemplo para pasar a SQLite. 1. Creamos la base de datos SQLite bibliosqlite.db en nuestro sitio BiblioSQlite con la página: 01_crearbasededatos.php <html> <title>creación de bases de datos sqlite</title> <? // creamos una conexión la base de datos(le introducimos el nombre del archivo donde se almacena) $db = sqlite_open("bibliosqlite.db"); // se cierra la conexión a la base de datos sqlite_close($db);
<body> Creada la base de datos especificada hecho Si vamos a nuestro sitio veremos que existe un fichero vacío con el nombre: bibiosqlite.db. 2. Creamos el DSN de usuario apropiado Desde Herramientas Administrativas/Orígenes de Datos ODBC Observarás, si has ejecutado correctamente el sqliteodbc.exe, que tendrás tres controladores relacionados con SQLite (los tres últimos). Agreguemos un nuevo DSN de usuario basado en el controlador SQLite ODBC driver con el nombre que deseemos y enlazándola con la base de datos que queramos: bibliosqlite.db Para ello fijémonos en el formulario de configuración del DSN de ODBC de SQLite.
3. Exportemos de Access a SQLite Abramos Access, busquemos las tabla que queramos exportar: UNIVERSAL. Con el ratón encima del nombre de la tabla pulsemos el menú contextual (botón derecho) y elijamos exportar. Se nos pedirá el tipo de archivo. Elegimos: Base de datos ODBC() (la última opción) Continuamos aceptando hasta que lleguemos a Seleccionar el origen de datos. En Origen de datos del Equipo elegimos el DSN que construimos en el apartado anterior y al aceptar Access enviará la tabla al ODBC que a su vez la pasará a SQLite. 4. Comprobemos la estructura de nuestra base de datos exportada. 02_Estrutura.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <title>información de estructura</title> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> <style type="text/css"> * { font-family: monospace </style>
<body> <h1>información de estructura</h1> <?php try { // Intentamos la apertura con el API orientada a objetos $bddlibros = new SQLiteDatabase('bibliosqlite.db'); // si llegamos aquí es que no se ha producido una excepción // y por tanto se ha abierto sin problemas echo '<p>apertura con <b>sqlitedatabase</b> satisfactoria</p>'; catch(exception $e) { // capturar la posible excepción echo "<p>fallo en la apertura con <b>sqlitedatabase</b> $e</p>"; exit; // Obtenemos de la tabla de sistema la lista // de nombres de tablas existentes en la base // de datos $Tablas = $bddlibros->arrayquery( "SELECT name FROM SQLITE_MASTER WHERE ". "type='table'"); // Por cada tabla foreach($tablas as $Tabla) { // mostramos su nombre echo "<h3>tabla : ${Tabla['name']</h3>"; // Recuperamos la matriz con los nombres y // tipos de columnas $Tipos = $bddlibros->fetchcolumntypes( $Tabla['name']); // mostrando esa información foreach($tipos as $Nombre => $Tipo) echo "Columna <b>$nombre</b> es de tipo ". "<b>$tipo</b><br />"; 4. Veamos nuestra tabla exportada como ha quedado. 03_mostrartabla.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>ejemplo de utilización de funciones sqlite</title> <?
// creamos una conexión la base de datos(le introducimos el nombre del archive donde se almacena) $db = sqlite_open("bibliosqlite.db"); // ejecución de consulta de selección $result = sqlite_query($db, "SELECT * FROM UNIVERSAL "); // muestra de los resultados con un bucle while ($row = sqlite_fetch_array($result)) { // echo "ID --> ".$row["id"]." Nombre --> ". $row["nombre"]."<br>"; print_r($row);echo "<br><br>"; // se sierra la conexión a la base de datos sqlite_close($db); <body>