• Publicidad

XP 2003 con SQL Server

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

XP 2003 con SQL Server

Notapor scout » 2009-11-11 18:08 @797

Hola, necesito consultarles qué módulo gratuito y recomendable puedo utilizar para conectar un script de consola con una base de datos SQL Server 2005 que tengo en otro servidor dentro de la misma LAN...
Última edición por explorer el 2009-11-11 18:44 @822, editado 2 veces en total
Razón: Ortografía
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Publicidad

Re: XP 2003 con SQL Server

Notapor explorer » 2009-11-11 18:45 @823

Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: XP 2003 con SQL Server

Notapor scout » 2009-11-11 19:22 @848

Sí, lo había visto pero como no encontré un código de ejemplo para probar conexión lo había descartado... ¿conocéis otra fuente de códigos que se pueda tomar como base que no sea CPAN al menos para encontrar un bendito ejemplo de cómo conectarme al SQL Server sin usar otra cosa que no sea Perl...? También vi el Win32::SqlServer pero el ppm no lo encuentra y me da error al instalarlo... como este...

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:\Perl\bin>perl c:\perl\activeperl-copy.pl
Installing Win32::SqlServer in C:\Perl
Copying blib\arch\auto\Win32\SqlServer\SqlServer-x86-5.008.dll to C:\Perl\site\l
ib\auto\Win32\SqlServer\SqlServer.dll
Could not copy blib\arch\auto\Win32\SqlServer\SqlServer-x86-5.008.dll: No such f
ile or directory
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: XP 2003 con SQL Server

Notapor explorer » 2009-11-12 08:59 @416

Viendo el http://cpansearch.perl.org/src/SOMMAR/W ... akefile.pl es posible que necesites tener instalado el compilador de Visual C++ para crear la librería en formato dll.

Otra opción es usar el DBD::ODBC o el Win32::ODBC, como te indica en el último mensaje del hilo enlazado. Pero necesitas también compilarles, porque la versión que hay en ActiveState es muy vieja (no lo he visto y no sé si seguirá siendo cierto).

Según este documento hay otras posibilidades, como la de DBD::ADO que usa a su vez a DBI y Win32::OLE.

Hummm... no sé decirte más... hace bastante que no sigo ese tema.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: XP 2003 con SQL Server

Notapor scout » 2009-11-12 18:15 @802

Paso a contar que salió todo bien pero saldrá mejor ¡¡¡cuando se comparta con ustedes...!!!

1: al principio instalé los módulos DBD::ADO y el DBD::ODBC desde ppm
2: creé la conexión a la base desde herramientas administrativas/Orígenes ODBC
usando DNS de usuario y controlador SQL Native Client
3: utilicé este rejunte de códigos el cual podrán mejorar, obviamente
4: soy un tipo feliz porque conecto bien con un SQL Server.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use DBI;
my $dsn = 'nombrededsn';
my $usr = 'usuariodebasesql';
my $pwd = 'contraseñabasesql';
my $dbh = DBI->connect("dbi:ADO:$dsn", $usr, $pwd, $att ) or die $DBI::errstr;

$dbh->do("use base_de_datos");

my $query = "SELECT * FROM dbo.tabla";
my $sth = $dbh->prepare ($query) or die "prepare failed\n";
$sth->execute( ) or die "unable to execute query $query error $DBI::errstr";

my $rows = $sth->rows;
print "$row rows returned by query\n";

while (@first = $sth->fetchrow_array ) {
    foreach $field (@first) {
        print "field: $field\n";
    }
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: XP 2003 con SQL Server

Notapor explorer » 2009-11-12 18:38 @818

A ver... no entiendo una cosa...

Si eres capaz de haber instalado DBD::ODBC, en teoría no necesitarías instalar ningún módulo más. Solo configurar la conexión DSN.

Y si te funciona con ADO, no veo en ninguna parte de la documentación que sea necesario usar DBD::ODBC.

A lo mejor no me he dado cuenta, pero en el módulo pone:
An ADO ConnectionString usually contains either a 'Provider' or a 'File Name' argument. If you omit these arguments, Provider defaults to MSDASQL (Microsoft OLE DB Provider for ODBC). Therefore you can pass an ODBC connection string (with DSN or DSN-less) as valid ADO connection string.

If you use the OLE DB Provider for ODBC, it may be better to omit this additional layer and use DBD::ODBC with the ODBC driver.
que, entiendo, dice
Un ADO ConnectionString normalmente contiene tanto un argumento 'Proveedor' como 'Nombre de Fichero'. Si omites estos argumentos, el Proveedor será por defecto MSDASQL (Microsoft OLE DB Provider for ODBC). Por tanto puedes pasar una cadena de conexión ODBC (con DSN o DSN-less) como una cadena de conexión ADO válida.

Si usas el Proveedor OLE DB for ODBC, podría ser mejor omitir esta capa adicional y usar DBD::ODBC con el controlador ODBC.


Por lo demás, gracias por indicarnos los pasos necesarios. Los guardaremos como oro en paño.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: XP 2003 con SQL Server

Notapor scout » 2009-11-12 19:23 @849

Sí, es cierto: con ODBC paso derecho. Bueno, error de tomar nota y probar varias cosas a la vez... la próxima estará más limpio... era más que nada para que el que venga luego no se encuentre y pierda el tiempo que perdí yo para conectar con una simple base...

Gracias por vuestras respuestas tan rápidas desde el momento cero... seguiré explorando este mundo Perl...
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados