Newsgroup: it.comp.lang.perl
Titolo: Postgres + Perl

Ho da poco iniziato ad utilizzare Posgres, e vorrei adesso imparare a
scrivere script in Perl per interagire con tale database. Prima di
mettermi a studiare cose che magari mi saranno inutili o, almeno, poco
utili, volevo chiedervi se, per utilizzare il Perl con Postgres mi basta
il modulo Pg.pm o mi serve altro; ho guardato i moduli DBD::* e DBI::*,
ma mi sembra che siano tutti abbastanza "generici", e che solo Pg.pm sia
"postgres oriented". Mi sbaglio??
Un'ultima cosa: sapete dove trovare in rete qualche guida (anche in
inglese, non ci sono problemi!) che spieghi come utilizzare il Perl ed i
rispettivi moduli per l'accesso e l'interazione con i DB?
Grazie!
M.

 rispettivi moduli per l'accesso e l'interazione con i DB?
Mi pare che la documentazione e le FAQ distribuite con il modulo DBI siano
piuttosto complete. Ad ogni modo, il sito di riferimento per tutto ciò che
riguarda DBI è:
 
http://www.symbolstone.org/technology/perl/DBI/
Max

 Suggerimento: non usare Pg.pm (è obsoleto), usa DBI + DBD::Pg.
Ma mi chiedo ... perchè utilizzare un driver generico quando ho DBD::Pg
che è specifico per il db che intendo utilizzare?
Forse DBD::Pg manca di alcune funzioni di DBI?
In fondo, dando un'occhiata (alquanto svelta) a DBD::Pg ho visto che
bene o male le funzioni che mi servono ci sono ... cos'ha di differente
DBI?
Grazie!
M.

Forse DBD::Pg manca di alcune funzioni di DBI?
DBD::Pg non funziona senza DBI. ;) DBI.pm e` il modulo che ti permette
di comunicare con i database, i DBD::xxxx sono i driver specifici
per il database, che DBI usa per connettersi ad essi.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
==> Visita il sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 Forse DBD::Pg manca di alcune funzioni di DBI?
Mi hai frainteso. Io consigliavo di usare DBI + DBD::Pg. DBD::Pg senza DBI
è inutilizzabile, essendo infatti un driver specifico destinato ad essere
impiegato con DBI. (Sconsigliavo invece di usare Pg.pm che è un modulo
ormai obsoleto che non ha niente a che vedere con DBI/DBD; ma ora capisco
che tu ti riferivi sin dall'inizio a DBD::Pg e la mia affermazione ha
generato solo confusione).
Max


Si, in effetti non ci si era capiti piů do tanto! Ho scoperto solo dopo
che:
use DBI;
$db = DBI->connect ("dbi:Pg:dbname=prova_db");
Quel "dbi:Pg" vuol dire "Carissimo DBI, devi lavorare con un Postgres,
quindi vatti a caricare Pg"!!
:-))
O sbaglio??
M.


Infatti!! Adesso ho anche scoperto come funzionano in generale i moduli
per i DB! DBI la fa da padrone, ma per riuscire a lavorare con un
determinato db ha bisogno del suo driver specifico, che nel mio caso è
DBD::Pg.
E adesso, via a studiare i moduli!
Visto che ci sono, faccio un'altra domandina ad esntrambi (anche a Max e
a chiunque sia un ascolto, ovviamente!)
Supponiamo che io abbia un db in remoto che riceve i dati da un form:
dovendo inserire tali dati, ed essendo molto plausibile che ci siano
utenze simultanee, mi chiedevo se, anche per i db bisognasse utilizzare
flock(). Immagino di si, onde evitare pastoni mostruosi, ma ... chiedo
troppo se vi chiedo un esempietto veloce veloce su come si "flokka" un
database?
Grazie ancora!
M.