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
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 |