Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
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


Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Pazzesco Black Friday Amazon: TV Hisense...
GoPro HERO13 Black: la versione completa...
L'Europa fa retromarcia sugli obblighi p...
Amazon Black Friday: 2 portatili gaming ...
50 idee regalo sotto i 50€, con gli scon...
Ecco un robot Lefant con mappatura laser...
Sundar Pichai (Google): il 'vibe coding'...
Lenovo Legion 7i, con una NVIDIA GeForce...
Sconti fino al 40% sui robot Roborock: l...
Stampante HP quasi regalata per il Black...
POCO lancia due nuovi tablet: ecco Pad X...
Leonardo ha svelato Michelangelo Dome, i...
iPhone Air non convince e i produttori c...
Prime Video supera Netflix in Italia? So...
Qualcomm Snapdragon 8 Elite Gen 6 avr&ag...
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: 10:00.


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