Página 1 de 1

Fichero como si fuera Base de datos

NotaPublicado: 2009-10-05 16:52 @744
por danimera
Bueno, quiero saber si hay algún módulo usado por alguno de ustedes para manipular ficheros como si fueran bases de datos con sus consultas SQL y todo eso...

Es que quiero hacer una aplicación con CGI::App y no quiero usar MySQL, quiero usar ficheros, pero la idea es poder usar el módulo DBI con ese fichero.

Re: File como si fuera BD

NotaPublicado: 2009-10-05 17:09 @756
por explorer
SQLite, definitivamente.

Otra cosa es usar ficheros de texto. En ese caso, con tie() puedes pensar en una base de datos cuyos registros son líneas.

Seguro que hay más formas.

Re: File como si fuera BD

NotaPublicado: 2009-10-05 17:17 @761
por danimera
Bien, SQLlite. Miré por ahí DBI:CSV; no sé si pueda ser para lo que necesite también. La idea es poder usar SQL normalmente como si fuera cualquier BD.

Ahora es, ¿cómo podría trabajar con SQLite? ¿Se puede usar en cualquier hosting que utilice Perl? La idea es un CMS sencillo donde no quiero ponerme a crear tablas MySQL ni nada, para usarlo en unos pequeños sites...

Re: Fichero como si fuera Base de datos

NotaPublicado: 2009-10-05 17:46 @782
por explorer
Hay módulos como el DBD::AnyData que permite usar distintos tipos de ficheros, de forma transparente.

En cuanto a lo del SQLite, pues si consigues instalar el módulo en el alojamiento, no tienes más problemas. La librería necesita un compilador en la arquitectura destino. O lo compilas tu en el tuyo y luego subes todos los ficheros que componen el módulo.

Si las bases de datos son sencillas, pues con ficheros de texto sencillos los puedes resolver.

¿Alguien tiene más ideas?

Re: Fichero como si fuera Base de datos

NotaPublicado: 2009-10-05 20:42 @904
por danimera
Gracias. Logré solucionar mi problema con el módulo DBD::CSV - DBI driver for CSV files.

Dentro de un directorio me creo archivos csv sin extensión y cada archivo es una tabla y de ahí manipulo normalmente con DBI y SQL.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use DBI;
  2.     $dbh = DBI->connect("DBI:CSV:f_dir=/home/joe/directoriocsvdb")
  3.         or die "Cannot connect: " . $DBI::errstr;
  4.     $sth = $dbh->prepare("CREATE TABLE nametable (id INTEGER, name CHAR(10))")
  5.         or die "Cannot prepare: " . $dbh->errstr();
  6.     $sth->execute() or die "Cannot execute: " . $sth->errstr();
  7.     $sth->finish();
  8.     $dbh->disconnect();
  9.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Fichero como si fuera Base de datos

NotaPublicado: 2009-10-06 20:20 @889
por creating021
En el core de Perl hay módulosy funciones interesantes.

También es posible hacer una mini base de datos con tie y tablas simples... también se puede usar XML.