Re: [pgsql-ayuda] Ayuda con modulo DBI

From: "Ing(dot) Roberto Andrade Fonseca" <randrade(at)abl(dot)com(dot)mx>
To: Postgres <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx>
Subject: Re: [pgsql-ayuda] Ayuda con modulo DBI
Date: 2000-09-06 02:55:14
Message-ID: Pine.LNX.4.10.10009052141400.18108-100000@inter.interservice.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Estrella:

On Tue, 5 Sep 2000, Estrella Dominguez wrote:

> #!/usr/bin/perl
>
> use DBI;
>
> $dbh=DBI->connect('dbi:Pg:dbname=activos','postgres','perron',{RaiseError=>1,AutoCommit=>0});
>
> $sth = $dbh->prepare("select * from activo");
> $sth->execute;
> while ( @row = $sth->fetchrow()) {
> print "$row[0], $row[1]\n";
> }
> $sth->finish;
> $dbh->disconnect;
>
> Funciona sin problemas pero si cambio la linea que
> dice:
>
> $sth = $dbh->prepare("select * from activo");
> por esta:
> $sth = $dbh->prepare(\'z');
>
> ya no funciona. Me pueden decir que debi hacer aqui
> para hacer funcionar esto?
No fucniona debido a que el comando '\z' NO es un comando SQL, el cual analiza el prepare de DBI.

\z es un comando interno del monitor de postgresql: psql.

Si buscas en los fuentes de pgsql, seguramente encontrar� las sentencia SQL que preguna a las tablas del sistema
sobre los permisos de acceso que te reporta \z,

O, mejor, usando la opcion -E al levantar psql activos, psql te mostrar�la sentencia SQL que realmente est�mandando al motor, en tu caso, \z es equivalente a:

********* QUERY *********
SELECT relname as "Relation",
relacl as "Access permissions"
FROM pg_class
WHERE ( relkind = 'r' OR relkind = 'S') AND
relname !~ '^pg_'
ORDER BY relname
************************

Usa esta sentenia ane tu prepare y nos platicas.

>
> y abusando de su confianza :) (Como doy lata, pero de
> que otra forma aprendo)
> Como le hago para que esto me funcione:
>
> $sth = $dbh->prepare("create user prueba with password
> 'testa'");
> $sth->execute;
> $dbh->commit;
> $dbh->disconnect;

El script debe decir:

#!/usr/bin/perl -w

use DBI;

$dbh=DBI->connect('dbi:Pg:dbname=activos','postgres','perron',{RaiseError=>1});

$sth = $dbh->do('create user prueba with password \'testa\'');
$dbh->disconnect;

Es decir, sin AutoCommit y, mejor, con do.

Sugererencia adiconal:

usa siempre:

#!/usr/bin/perl -w

^
con -w

Saludos,

Roberto Andrade Fonseca
randrade(at)abl(dot)com(dot)mx

--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : unsubscribe pgsql-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jesus Aneiros 2000-09-06 03:01:16 Re: [pgsql-ayuda] Ayuda con modulo DBI
Previous Message Estrella Dominguez 2000-09-05 21:46:53 [pgsql-ayuda] Ayuda con modulo DBI