Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-06-2003, 21:00   #1
luana.neri80
Member
 
Iscritto dal: May 2003
Messaggi: 56
problema in sql

devo selezionare il minimo tra alcune date:

select min(data_di_nascita)
form tabella_pippo
where nome='carlo' and cognome='neri'

data la presenza di condizioni in where la tabella risultato potrebbe essere vuota, come gestisco la cosa?

se nella tabella risultato ci sono almeno 1 data catturo la minima in una stringa, se invece è vuota la tabella?

aiuto!!!

luana.neri80 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 01:50   #2
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Ma a cosa vuoi applicare questa cosa?

Se ad un linguaggio tipo VB o ASP vericfichi se il nome (per esempio min(data_di_nascita) lo chiami "ciao" ->> min(data_di_nascita) as ciao):

if recorset("ciao") is null then

e via dicendo
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 15:36   #3
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Premetto che non so se ho ben capito la domanda e che non sono esperto dell'argomento, comunque in JSP dopo aver eseguito una query, scrivo sempre un costrutto di questo tipo:

Codice:
while (rs.next())
   {
   // Lettura dei risultati della query
   // Utilizzo dei valori letti
   }
Perché se la query non ritorna niente, il codice non viene eseguito.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 15:56   #4
fencer2000
Member
 
Iscritto dal: Mar 2002
Città: Udine e ogni tanto Catania
Messaggi: 27
Re: problema in sql

Quote:
Originally posted by "luana.neri80"

devo selezionare il minimo tra alcune date:

select min(data_di_nascita)
form tabella_pippo
where nome='carlo' and cognome='neri'

data la presenza di condizioni in where la tabella risultato potrebbe essere vuota, come gestisco la cosa?

se nella tabella risultato ci sono almeno 1 data catturo la minima in una stringa, se invece è vuota la tabella?

aiuto!!!

Se le tabella e' vuota, come dice lombardp il codice non viene eseguito per cui non te ne devi preoccupare. Se vuoi fare una cosa piu' elegante puoi usare la funzione mysql_affected_rows() che restituisce il numero di righe interessate dalla query; se e' maggiore di 0 allora visualizzi la minima data altrimenti un messaggio che dica che non ci sono dati restituiti per quella query.
Ricordati piuttosto di usare un alias nella query..qualcosa del tipo
"SELECT min(data_di_nascita) AS min_date
FROM tabella_pippo
WHERE nome='carlo' AND cognome='neri'" altrimenti non riesci a visualizzarlo. Buon lavoro
__________________
Mi son guardato allo specchio e mi sono accorto che non mi somigliavo
fencer2000 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 16:30   #5
luana.neri80
Member
 
Iscritto dal: May 2003
Messaggi: 56
se faccio if invece di while invece cambia qualcosa....
luana.neri80 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 16:38   #6
fencer2000
Member
 
Iscritto dal: Mar 2002
Città: Udine e ogni tanto Catania
Messaggi: 27
Quote:
Originally posted by "luana.neri80"

se faccio if invece di while invece cambia qualcosa....
Logicamente no, comunque sia nell'uno che nell'altro caso non viene eseguito il codice..pero' con l'if puoi visualizzare un'alternativa, che nel tuo caso sarebbe il messaggio che non e' stato trovato alcun record
__________________
Mi son guardato allo specchio e mi sono accorto che non mi somigliavo
fencer2000 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 17:41   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: problema in sql

Quote:
Originally posted by "fencer2000"

Se le tabella e' vuota, come dice lombardp il codice non viene eseguito per cui non te ne devi preoccupare. Se vuoi fare una cosa piu' elegante puoi usare la funzione mysql_affected_rows() che restituisce il numero di righe interessate dalla query; se e' maggiore di 0 allora visualizzi la minima data altrimenti un messaggio che dica che non ci sono dati restituiti per quella query.
Attenzione che non è PHP...e non è nemmeno detto che usi MySQL
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 17:55   #8
luana.neri80
Member
 
Iscritto dal: May 2003
Messaggi: 56
sto parlando di oracle e jsp
con l'if genera un errore se si usa min e la tabella è vuota

cmq penso di aver risolto catturando il valore con getDate, io facevo con getString...
luana.neri80 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 14:57   #9
alphacygni
Senior Member
 
L'Avatar di alphacygni
 
Iscritto dal: Mar 2002
Città: Roma - Milano - Lagos
Messaggi: 8579
il problema non e' recuperarla come stringa o come data, semplicemente inizializza la stringa a ""

String data = "";

poi fai

while (rs.next()) {
data = rs.getString("nomecampo");
}

tanto la select min() torna o un record o nessuno...
se non ne ha tornato nessuno la stringa rimane a "" perche' il blocco nel while non viene eseguito
altrimenti viene valorizzata col valore estratto....
__________________
--- --- VENDO AppleCare per Macbook Pro 15"/17" a 200E --- ---
Ho trattato con mezzo forum, per l'altra meta' mi sto attrezzando... tutto ok, tranne con quel diversamente onesto di drwebby
Perditempo di professione: signirr
alphacygni è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 15:20   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Io non ci capisco niente di JSP, ma non è che rs.next() torna comunque falso ? Se anche c'è un solo record facendo rs.next() raggiunge l'EOF e di conseguenza dovrebbe ritornare falso...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 15:29   #11
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originally posted by "cionci"

Io non ci capisco niente di JSP, ma non è che rs.next() torna comunque falso ? Se anche c'è un solo record facendo rs.next() raggiunge l'EOF e di conseguenza dovrebbe ritornare falso...
E' la stessa cosa che pensai quando vidi usare questo metodo per la prima volta. Poi leggendo il manuale (e anche non mettendolo a causa di una svista), ho scoperto che rs.next() deve essere richiamato anche prima di leggere il primo record.

In altre parole: se c'è solo un record, richiamando rs.next() ci si posiziona su di esso.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 15:35   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Un po' contorto...non trovi ?

In pratica hanno incluso un test sul EOF e l'istruzioni epr spostarsi sul record successivo nella stessa funzione...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 15:54   #13
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Quote:
Originally posted by "cionci"

Un po' contorto...non trovi ?

In pratica hanno incluso un test sul EOF e l'istruzioni epr spostarsi sul record successivo nella stessa funzione...

In effetti...è una cosa che nn ha un gran senso, se nn c'è record fai un bel while not rs.EOF , cosi nn entra nemmeno nel ciclo!!

Va be, ogni linguaggio poi la pensa a modo suo
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 16:01   #14
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originally posted by "cionci"

Un po' contorto...non trovi ?
In pratica hanno incluso un test sul EOF e l'istruzioni epr spostarsi sul record successivo nella stessa funzione...
E' vero che è contorto, ma anche molto pratico, perché puoi letteralmente risparmiarti di verificare EOF a parte. Con while (rs.next()) hai in pratica un loop su tutti i record che funziona anche nel caso di 0 record, perché in tale caso semplicemente non esegue il loop.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 17:37   #15
Duncan
Senior Member
 
L'Avatar di Duncan
 
Iscritto dal: Nov 1999
Città: Sesto Fiorentino, Firenze
Messaggi: 8444
A me non pare contorto anzi...

giustamente rende l'oggetto con cursore che punta a BOF se c'è almeno un record si sposta sul primo, altrimenti potendo spostare il cursore solo su EOF non entra nemmeno nel ciclo... (opinione personale )

probabilmente mi sbaglio, ma la funzine .next() usata in questo modo non rientra tra gli iteratori? (curiosità personale )
__________________
Nikon user
Le mie foto su Flickr
Duncan è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 17:40   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "Duncan"

A me non pare contorto anzi...
Contorto il ragionamento che ci sta dietro, ma buona dal punto di vista pratico...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Universal e ElevenLabs: una piattaforma ...
Astra mette in crisi i server di OpenAI:...
Phanteks EX5: disponibile il case a bloc...
Broadcom rimuove l'accesso a uno strumen...
Italo porta Starlink sui treni ad Alta V...
Le GPU costano sempre di più, ma ...
IBM e NASA hanno insegnato a un'IA a leg...
Desktop Remoto non funziona su Windows S...
Offerte Amazon del giorno: da AirPods 5 ...
Motorola anticipa la sua prossima mossa ...
La manovra di Picard di Star Trek funzio...
EA Sports FC 27, pubblicata su Spotify l...
NSBProject misura quanto una startup &eg...
Instagram permette ora di aggiungere all...
Zuckoff scopre gli occhiali Meta attorno...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v