Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-06-2003, 22: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, 02: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, 16: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, 16: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, 17: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, 17: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, 18: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, 18: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, 15: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, 16: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, 16: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, 16: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, 16: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, 17: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, 18: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, 18: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


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Microlino, simbolo italiano della mobili...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
Verso la fine della TV tradizionale? I g...
Cassa JBL a 39€, portatili, smartphone, ...
Cometa interstellare 3I/ATLAS: la sonda ...
Jensen Huang e Bill Dally di NVIDIA prem...
Il futuro della birra è green: H...
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: 18:05.


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