Newsgroup: it.comp.lang.perl
Titolo: aiuto per DBMS;-)

Salve a tutti,
 nonostante abbia letto le pagine del manuale mi si pone
con urgenza la risoluzione di un problema relativo al DB(postgres)MS con
perl
ed il modulo Pg.
 Ieri avevo gia' risolto la situazione, ma oggi il problema
si e' fatto piu' specifico, passo ad illustrarlo a chi volesse darmi una
mano:
1) punto di partenza e' una pagina web con una form da riempire
   per la ricerca di articoli
   inerenti depositati su un db postgres del server (nome di un singolo
   form text, ad es., Argomento);
2) il db e' cosi' strutturato:
ARTICOLI:
   -----------------------------------------------
     codice  | titolo  |  Argomento   |   testo
   -----------------------------------------------
     01       Qualsiasi    cronaca         abc...
3) i dati provenienti dalla form (in coppie <nome>=<valore>) vengono
   decodificati da un'apposita libreria in perl che io "requiro"
   sistematicamente all'inizio di ogni script, in quanto essa deposita
   i dati delle form in un hash (%DATI) che, in seguito alla compilazione
   delle form con i dati di cui sopra avrebbe il seguente aspetto
                                          %DATI (Codice=>01,
                                                       titolo=>'Qualsiasi',
Argomento=>'cronaca',).
4) in seguito dichiaro un array:
   @nomi = keys (%DATI), in pratica, secondo l'esempio di cui sopra,
   @nomi = ('Codice', 'titolo', 'Argomento');
   il rispettivo valore di $nome[2]='Argomento' sara' dato dalla
   variabile: $DATI{$nome[2]}.
I QUESITO: connettendomi corretamente al database con Pg, che formula
           deve avere $PGquery?
           NB:io ho provato:
     $PGquery = "select * from Articoli where codice = $DATI{$nome[0]}
                                                            and titolo   =
$DATI{$nome[1]}
                                                      and Argomento=
$DATI{$nome[2]}";
II QUESITO: che formula devo usare per "outputare" il campo testo??
            usando la formula:
            print "Ci sono ".$res->ntuples." risultati!\n";
 Il risultato che mi visualizza e':
        "Ci sono 0 risultati".
Un grazie anticipato a chi mi vorra' aiutare.

         "Ci sono 0 risultati".
Select sbagliata -> zero risultati.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

         "Ci sono 0 risultati".
Perché la query non ha risultati. Quando ti succedono queste cose
fatti stampare la query e eseguila manualmente per vedere se l'errore
č lě.
Ciao,
Valerio

 - una query SQL finisce con il punto e virgola
Questo vale se fai la query direttamente. Se usi delle funzioni, puo' non
essere necessario o essere sbagliato.


 "Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)
grazie, fabio.

 Ho utilizzato l'array slice...come mi hai suggerito tu....e fatto stampare
la query....
l'errore e' li evidentemente poiche', al di la dell'uguale, in fase di
output, non da niente:-((
se hai altri suggerimentio li accetto volentieri
grazie per l'aiuto, fabio.

 se hai altri suggerimentio li accetto volentieri
Mah, la query stampata è quella che volevi eseguire? Si?
E allora il problema non è del perl ma del tuo database.
Con tutta la buona volontà non posso aiutarti non conoscendo
il tuo database e oltretutto siamo OT.
Ciao,
Valerio

 essere necessario o essere sbagliato.
Con Pg mi sembra di ricordare che ci voglia sempre.
Valerio

 Valerio...finalmente il comando print "$PGquery"; da il risultato
desiderato...
Quindi sono portato a presumenre che il codice in perl vada bene...
pero' utilizzando come mi hai suggerito tu:
print "Ci sono ".$res->ntuples." risultati!\n";
continua a visualizzare lo stesso risultato:0.
Che ci sia qualcosa che non vada nel database???
grazie, fabio

 Che ci sia qualcosa che non vada nel database???
Come ti dicevo, ho la sfera di cristallo in assistenza...
Penso di si, esegui la query manualmente e lo saprai.
Comunque non sembra un problema del perl.
Valerio