Página 1 de 1

Base de datos ODBC para Access en Ubuntu

NotaPublicado: 2015-11-06 11:19 @513
por edwardmorfa
Hola, compañeros. Estoy creando este script para crear una base datos con Perl usando Linux pero cuando lo corro me sale este error:

DBI connect('driver=Microsoft Access Driver (*.mdb);dbq=new.mdb','root',...) failed: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002) at createdb.pl line 18.

Este es el script:

#u!/usr/bin/perl
#use strict;
use warnings;
use v5.10; # Para el uso de la función sy()
use DBI;


say "Script para crear base de datos Acces";

# Configuración de la base de datos

my $datasource ="driver=Microsoft Access Driver (*.mdb);dbq=new.mdb";
my $username = "root";
my $password = 'mysql';

# Conectarse a la base de datos

my $dbh = DBI->connect("dbi:ODBC:$datasource", $username, $password)
|| die "Error connecting: $!";

# Creando la tabla

my $table1= "CREATE TABLE table1 (pike varchar2(200),
CodigoEmp varchar2(200),
NomEmp varchar2(200),
Apellido varchar2(200),
NombrePc varchar2(200),
DireccionIp varchar2(15),
email varchar2(200),
posicion varchar2(200),
recinto varchar2(200),
logu varchar2(200),
Logs varchar2(100)
)";


my @table2 = (
"CREATE TABLE table2 (
EstoEmp varchar2 (200),
EstaEmpleado varchar(200),
GrupoUs varchar(200),
Aplicacines varchar(200)
);"
);

# Ejecutando los statements

my $sth = $dbh->prepare($table1);

$sth->execute;

say "Todas las tablas se han creado correctamente!";

# Desconectarse de la base de datos
$dbh->disconnect();

Saludos,

Re: Base de datos ODBC para Access en Ubuntu

NotaPublicado: 2015-11-06 15:50 @701
por explorer
El error dice que DBI ha intentado conectarse a la base de datos utilizando ODBC, pero que no encuentra la base de datos 'new.mdb'.

Que yo recuerde... había que abrir el administrador de fuentes de datos ODBC y definir una conexión ODBC para la base de datos en Access. A partir de ese momento, desde nuestro programa en Perl podíamos hacer consultas usando DBD::ODBC, que se conecta a unixODBC, y este a su vez al servidor donde está escuchando el ODBC unido al Access. O algo así.

Hay un esquema en el primer tutorial del DBD::ODBC:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Perl script using DBI methods
            |
            v
           API
            |
            v
           DBI
            |
            v
        DBD::ODBC
            |
            v
    ODBC Driver Manager (e.g. unixODBC)
            |
            v
        ODBC Driver
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4