Grazie ti farò sapere, Buon Natale!![]()
Grazie ti farò sapere, Buon Natale!![]()
... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
"Ai posteri l'ardua sentenza..."
Tante grazie
Saluti
Luis 33
il problema risiede nel fatto che se succede il primo IF può essere tranquillamente che si verifichi anche il secondo/terzo/quarto/quinto nello stesso tempo, in quanto la condizione STrVal1< strval2 non vincola il fatto che strval1<0.1 e strval2<0.2.....ad esempio se strval1=0.05 e strval2=0.1 sia la prima condizione che la seconda condizione si verificano, e quindi ti aggiounge due volte lo stesso record
pensa attentamente quali sono le condizioni e come renderle mutuamente escludenti altrimenti è un cavolo e tutt'uno
a te buon natale
(ultimo suggerimento: dormici su e vedrai che domani ti sarà tutto più chiaro)
![]()
Ciao a tutti e buon Natale.
Mi sembra che il problema di Luis sia su due livelli:
- logico
- pratico
Il primo è certamente fondamentale, e, risolvendolo, automaticamente dovrebbe scomparire il secondo.
Tuttavia a volte ci basta trovare un "trucchetto" per far funzionare uno script, senza bisogno di farne un'applicazione completa e coerente, che funzionerà sempre senza eccezioni.
Tutto dipende da cosa stiamo facendo, e questo lo sappiamo.
Bene, dopo un po' di filosofia, passiamo alla fattispecie:
- piano pratico: su questo, non potresti semplicemente lasciare tutto com'è, e controllare, prima di ogni inserimento, se il record esiste già? Questo eviterebbe la duplicazione di records.
Un esempio (a ruota libera):
- piano logico: dovresti farti una tabella degli intervalli entro i quali le grandezze possono variare, e, in base a questa, strutturare il tuo (o i tuoi) IF, oppure SELECT ... CASE, oppure una combinazione di questi, tale da comprendere tutti i casi possibili e determinare il comportamento dello script in ogni caso.codice:if ...condizione... then set rs = server.createobject("ADODB.recordset") sql = "select * from tabella where campoID = '"&identificativo&"'"" rs.open sql, conn, 3, 3 if rs.eof then rs.addnew ...... ...... ...... else 'questo nel caso voglia modificare 'il record in base alle nuove condizioni... sql2 = "update tabella set campo_condiz = 'B' where campoID = '"&identificativo&"'"" conn.execute(sql2) end if rs.close set rs = nothing end if
Questo è un lavoro importante e delicato, che va fatto lontano dal monitor, magari con l'aiuto di un manuale di logica o di algebra booleana .... sempre che ne valga la pena.
Buon divertimento e ancora buone feste.
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
Ciao e buone feste.
Ringrazio il mitico Teo, il cui suggerimento non posso provare subito (anch'io sono in vacanza), ma che ha avuto un'ispirazione speriamo finalmente risolutiva (mi riferisco al piano pratico, del piano logico non ho capito, onestamente, un granchè).
Terrò informato il forum sullo sviluppo delle cose.
Grazie ancora!![]()
... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
"Ai posteri l'ardua sentenza..."
Tante grazie
Saluti
Luis 33
OK Teo eccomi di nuovo a lavoro...![]()
dunque intanto quelle che sono le esigenze dello script:
-etichettare un record secondo la condizione rispettata;
-etichettare solo una volta il record;
-per etichettare una sola volta il record devo controllare che i campi "stato" e "condizione" non siano vuoti e lo faccio così:in questo caso però mi vengono registrati solo una parte di records 72 su 341... dove sbaglio?codice:If ... then sql = "select * from tabella where condizione IS NULL or stato IS NULL" else SQL = "INSERT INTO tabella.... set rs2 = Conn.execute(sql) end if
... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
"Ai posteri l'ardua sentenza..."
Tante grazie
Saluti
Luis 33
Hola Luisito.
Non credo di avere capito.
If...then è una delle condizioni di cui si parlava, che possono anche coesistere, vero?
Se un record è già stato etichettato in base a una condizione, non deve più essere etichettato o deve essere modificato?
Condizione = null e stato = null dipendono dal fatto che un record sia già stato etichettato o no?
"Etichettare" significa prendere i record da un database e marcarli in qualche modo, oppure semplicemente inserirli in un'altra tabella........insomma, spiegati di più per favore.
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
Rispondo in rosso:Originariamente inviato da teorema55
Hola Luisito.
Ben trovato TEO!
If...then è una delle condizioni di cui si parlava, che possono anche coesistere, vero?
In alcuni records, per come è impostato lo script in questo momento, le condizioni possono essere verificate più volte, invece per ogni record equivale solo una condizione.
Se un record è già stato etichettato in base a una condizione, non deve più essere etichettato o deve essere modificato?
Non deve essere più etichettato
Condizione = null e stato = null dipendono dal fatto che un record sia già stato etichettato o no?
Esatto, quando un record è etichettato i due campi condizione e stato vengono riempiti.
"Etichettare" significa prendere i record da un database e marcarli in qualche modo, oppure semplicemente inserirli in un'altra tabella........insomma, spiegati di più per favore.
Significa prendere i record dalla tabella A, inserirli nella tabella B e nella tabella vengono etichettati nei campi condizione e stato.
Grazie!!!
... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
"Ai posteri l'ardua sentenza..."
Tante grazie
Saluti
Luis 33
Quindi i campi condizione e stato sono solo nella tabella B oppure anche nella tabella A?
Se sono anche nella tabella A, sono sempre vuoti per i record non ancora etichettati?
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!