7 messaggi dal 10 febbraio 2005
Ciao a tutti,
ho un programma che estrae dati da un db e esegue diverse operazioni matematiche.I record dei db vengono aggiornati settimanalmente.
Il programma è che puo succedere che un dato non venga inserito,e il programma mi va in overflow perche trova una divisione per 0,come posso fare per ovviare questo problema?
La risposta piu ovvia sarebbe fare una IF ,il fatto che i dati su cui effettuare fare operazioni sono tanti,e volevo evitare di fare 300 if dat= 0 or dato = "" then...., e anche se fosse cosa posso mettere ,if dato = 0 then dato = 1 ???
Grazie
Ciao

Simo
Se i numeri sono quelli (300) non mi preoccuperei di fare degli "if..." se fossero 300.000 allora sì!
Quanto a cosa fare in caso il divisore sia zero... dipende da te, o meglio: da cosa stai calcolando; è un classico esempio di "regola di business" e solo tu puoi sapere qual'è il risultato desiderato, caso per caso.

Matteo Casati
GURU4.net
529 messaggi dal 06 marzo 2001
www.wallweb.it
Oppure prima di andare a fare questi conti potresti andare ad eseguire una query di update che setta al valore che ti interssa (1 ??) tutti i record che hanno quel campo a 0 o a null, forse è un po' più rapido.

Mirko Rizzo

**********************************************
WALLWEB
-Domini
-Hosting
-WebDesign
-E-commerce
http://www.wallweb.it
********************
3.122 messaggi dal 16 maggio 2002
try catch per intercettare l'eventuale errore

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
In classic ASP "try...catch" c'è solo in JScript e, in più, non puoi intercettare errori specifici, come "DivideByZeroException".
Ma anche se fosse .NET è normalmente sconsigliabile sollevare eccezioni by design.

Matteo Casati
GURU4.net
7 messaggi dal 10 febbraio 2005
try catch non era di java??boh..vabe..

il discorso è che faccio una select e io non so di preciso il valore che cerco,lo studio mentre scorro il recordset.
Cosa importnate,moltisime sono SELECT COUNT(*),quindi una volta controllato che il risultato sia 0 o null come posso settare il campo in modo che non mi restituisca l'errore?anche che restituisse 0 andrebbe bene...
grazie
ciao
Lo statement "try...catch..." esiste in quasi tutti i linguaggi c-like (Java, JavaScript, JScript, C#, ecc.) e anche in alcuni altri (dove è stato aggiunto per rendere un minimo utilizzabile il controllo delle eccezioni, come in VB.NET)

Quanto al problema dei valori restituiti dalle select count: non capisco dov'è... il problema! Metti il campo del recordset in una variabile e poi, se la variabile è null, la reimposti ad un valore ce ti vada bene (0, 1, ecc)
Se non ne esci... prova a postare 2 righe di codice.

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.