22 messaggi dal 01 giugno 2006
faccio la mia select

SQL = "SELECT * FROM TABELLA WHERE id="&cod&" "

fin qui ok, se metto la condizione

If (Record("MIORECORD")) = VARIABILE then

"non fai niente"

Else

"fai un insert"

End if

MIORECORD inizialmente è vuoto, quindi quando si esegue quello di cui parlo sopra ricevo questo errore:

error '80020009'

dettaglio.asp, line 43

dove alla linea 43 c'è appunto If (Record("MIORECORD")) = VARIABILE then

se invece metto il valore io su access e quindi il campo non risulta vuoto, il controllo funziona.

in pratica inizialmente MIORECORD non esiste quindi mi da errore.

qualcuno sa aiutarmi?

grazie mattalex
308 messaggi dal 13 luglio 2005
Ciao mattalex,
non è ben chiaro cosa vuoi fare con l'istruzione:

If (Record("MIORECORD")) = VARIABILE then

...comunque come regola generale, qualunque cosa tu debba fare, è buona norma verificare se il recordset sia vuoto o no. Supponendo che il tuo recordset si chiami rsMioRecordset dovresti scrivere:

If NOT rsMioRecordset.EOF then
' qualunque azione se il recorset non è vuoto
End If

Se tu vuoi verificare se un valore (quello che tu chiami VARIABILE) è già presente nel database e, in caso di mancanza, inserirlo, il tuo codice lo riscriverei in maniera diversa ...

Fammi sapere.

Ciao

Umb
22 messaggi dal 01 giugno 2006
devo fare il controllo su una pagina che conta i click su una foto impedendo di incrementare continuamente il numero di click se l'indirizzo IP dell'utente è sempre lo stesso.

If (Rec3("IPUSER")) = strVisitor then

'non fai niente

else

'incrementi il click

end if
--------------------
la variabile strVisitor = request.servervariables("REMOTE_ADDR")

la condizione non funziona nel caso che il record IPUSER sia vuoto, e ovviamente per un utente appena registrato è vuoto.

più chiaro adesso?

grazie mattalex

308 messaggi dal 13 luglio 2005
Ciao mattalex,
... più o meno è quello che pensavo...
Secondo me dovresti prima cercare sul db se quell'indirizzo esiste, ovvero:

strVisitor = request.servervariables("REMOTE_ADDR")

Set rsMioRecordset = Server.CreateObject("ADODB.Recordset")
...
rsMioRecordset.Source = "SELECT * FROM TABELLA WHERE IPUSER = '" & strVisitor & "'"
...

e quindi:

If NOT rsMioRecordset.EOF Then
' non fai niente
Else
' incrementa il click
End If

... anche se così (se mi permetti un parere...) tu non fai un conteggio per sessione (che sarebbe più corretto...), ma per utente. Cioè, mi spiego meglio, secondo me non si deve contare il click se un utente, nella stessa sessione, clicca più volte sulla stessa foto, ma, se questo ipotetico utente, in giorni diversi (o in sessioni differenti) clicca sulla foto, bisognerebbe contare il click...

Fammi sapere se va ...

Ciao.

Umb
22 messaggi dal 01 giugno 2006
con il tuo metodo non funziona perchè se strVisitor è vuoto non fa niente, altrimenti inserisce.

la prima volta che vado su un utente nuovo, è vuoto per forza quindo non farà mai niente....

grazie mattalez
308 messaggi dal 13 luglio 2005
Ciao mattalex,
... è il contrario!
La condizione:

If NOT rsMioRecordset.EOF Then
' non fai niente

significa che se il recordset NON è vuoto (ovvero se quell'indirizzo IP è già presente), allora non fare niente, altrimenti ...:

Else
' incrementa il click

incrementa il click (ovvero inserisci il nuovo indirizzo IP).

Riprova e fammi sapere

Ciao.

Umb

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.