Newsgroup: it.comp.lang.perl
Titolo: Libreria Msql.pm...HELP!

Ho grossi problemi nell'utilizzo della libreria Msql.pm che "DOVREBBE"
permettere di gestire in Perl un DataBase Msql.
Il codice che non funziona e' il seguente :
######----------------------------------------------------------------------
-----------------------------------------------------------######
#!/usr/local/bin/perl5.003
use CGI;
use Msql;
$query = new CGI;
$host='100.50.30.3';    # E' un indirizzo interno alla nostra INTRANET
$database='sgs';        # E' il nome del nostro DataBase sul server $host
$dbc = Msql->connect($host,$database);   # Crea una connessione con il DB
$ris1=Msql->query("select matricola,cognome from utenti2"); # LA SELECT
print $query->header;
print $query->start_html('Prove con Msql.pm','
to...@auselda.it
','true');
print "CIAOOOOOOOOOOOOOO";
print $query->end_html;
######----------------------------------------------------------------------
-----------------------------------------------------------######

, 
to...@auselda.it
 says...

Noto che il tuo articolo e' piuttosto vecchio, spero tu abbia gia' risolto 
i tuoi problemi.
Se cosi' non e', mi permetto di darti qualche suggerimento spero utile. 
Il metodo query della libreria msql non e' un metodo di classe (come 
connect) ma un metodo di istanza dell'oggetto database handler definito mel 
modulo msql. 
Il metodo connect funziona anche come costruttore di tale oggetto, e 
restituisce quindi un database handler, a cui puoi poi applicare il metodo 
query. 
Il metodo query a sua volta restutuisce uno "statement handler" (WOW ancora 
un'altro oggetto!) a cui possono essere applicati metodi per leggere la 
risposta.
Nel tuo esempio, la riga 
$ris1=Msql->query("select matricola,cognome from utenti2"); # LA SELECT
      ^^^^
va sostituita con
$ris1=$dbc->query("select matricola,cognome from utenti2"); # LA SELECT
      ^^^^
se poi vuoi leggere il risultato della query puoi ad esempio fare cosi':
if (defined($ris1)){#query a buon fine
  if ($ris1->numrows > 0){# il risultato non e' vuoto
    for (1..$ris1->numrows){# per ogni riga del risultato
       $row = $sth->fetchhash;#leggi la linea in un vettore 
                              #associativo (colonna,valore)
       #elabora il risultato memorizzato in $row
    }
  }
}
Concludo dicendo che sebbene io sia un utilizzatore della libreria Msql non 
ne sono un'esperto. Spero che altri possano darti informazioni migliori e 
piu' aggiornate.
Tutto quello che so l'ho imparato dal file di help della libreria Msql 
(msqlperl.man, dovresti averlo anche tu se hai istallato la libreria), dove 
sono descritti tutti i metodi del modulo Msql, dell'oggetto "database 
handler" e dell'oggetto "statement handler".
Ciao e buon lavoro (e buon anno)
Maurizio
-- 
 
---------------------------------------------------------------------------
-
|            Maurizio Coppari             |      University of Bologna     
  |
| E-mail: 
cop...@remove.cirfid.unibo.it
  |          C.I.R.F.I.D.          
  |
|         please remove "remove" in reply |         via Galliera 3         
  |
| Phone:  +39-51-277214                   |         40126  Bologna         
  |
 
---------------------------------------------------------------------------
-
File reality.sys corrupted. Reboot Universe [Y/n] ?