Ho scritto la seguente parte di codice:

Codice PHP:
ecc... ecc... 
<%
      
           ELSE
           
              
Set objConn Server.CreateObject("ADODB.Connection")
              
objConn.Open db_path
              
              
' Verifico che l' username digitato non esista già
              Set objRs 
Server.CreateObject("ADODB.Recordset")
              
SQL "SELECT * FROM members WHERE username = '" Request.Form("user") & "'"
              
objRs.Open SQLdb_path
         
              
IF objRs.eof THEN  ' Se non esiste controllo che non esista l'indirizzo email

                 Set objRs 
Server.CreateObject("ADODB.Recordset")
                 
SQL "SELECT * FROM members WHERE email = '" Request.Form("email") & "'"
                 
objRs.Open SQLdb_path

                 
IF objRs.eof THEN ' Se non esiste neanche l' indirizzo emailaggiungo l' utente 
                  
                    ' 
Controllo che nel form non sia stato inserito codice html
                    strurl 
replace(replace(Request.Form("url"),"<","%3C"),"'","''")
                    
strtitolo replace(replace(Request.Form("titolo"),"<","%3C"),"'","''")
                    
strdescrizione replace(replace(Request.Form("descrizione"),"<","%3C"),"'","''")
                    
strurlbanner replace(replace(Request.Form("urlbanner"),"<","%3C"),"'","''")
                    
stremail replace(replace(Request.Form("email"),"<","%3C"),"'","''")
                    
struser replace(replace(Request.Form("user"),"<","%3C"),"'","''")
                    
strpass replace(replace(Request.Form("pass"),"<","%3C"),"'","''")
            
                    
' Inserisco i dati nel database
                    Set objRs = Server.CreateObject("ADODB.Recordset")
                    SQL = "INSERT INTO members (username, password, email, url, urlbanner, titolosito, descrizionesito) VALUES ('" & struser & "','" & strpass & "','" & stremail & "','" & strurl & "','" & strurlbanner & "','" & strtitolo & "','" & strdescrizione & "')"
                    objRs.Open SQL, db_path
            
                    ' 
Recuperi i dati dell' utente che si è appena iscritto
                    Set objRs = Server.CreateObject("ADODB.Recordset")
                    SQL = "SELECT * FROM members WHERE username = '" & Request.Form("
user") & "' AND password = '" & Request.Form("pass") & "'"
                    objRs.Open SQL, db_path
       
                    ' 
Crea sessione
                    Session
("granted") = "true"

                    ' Scrivi i cookie
                    response.cookies("top")("username") = Request.Form("user")
                    response.cookies("top")("password") = Request.Form("pass")
                    response.cookies("top").Expires = DateAdd("y", 1, Now)
                    response.cookies("top").Path = "/"
    
                    Response.Redirect("code.asp?idsito=" & objRs("id") & "")
                    
                 ELSE
                 %>   
                     <center><span class="msg">Indirizzo Email già presente nel database
[url="javascript:history.back(1)"]Torna Indietro e sceglilo un altro[/url]</span></center>
                 <%
                 END IF
                 
              ELSE
           %>
                <center><span class="msg">Username già in uso
[url="javascript:history.back(1)"]Torna Indietro e sceglilo un altro[/url]</span></center>

ecc.. ecc.. 

Nell' header della pagina è poi presente:

<%@ LANGUAGE="VBSCRIPT" %>
<% db_path = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/top.mdb") %>


Quello che chiedo è il seguente:

1) Nella parte di codice sopra, ad esempio, ci sono due if nidificati con le seguenti query:

Set objRs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM members WHERE username = '" & Request.Form("user") & "'"
objRs.Open SQL, db_path


Set objRs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM members WHERE email = '" & Request.Form("email") & "'"
objRs.Open SQL, db_path

Quando le faccio, ogni volta devo iniziare con
Set objRs = Server.CreateObject("ADODB.Recordset") ?

Non basta una sola volta e poi posso fare tutte le

SQL = "bla bla bla"
objRs.Open SQL, db_path

che voglio? Giusto per saperlo, in questo caso funziona ma potrebbe essere un caso.


2) Il ObjRs lo posso chiamare come mi pare? Non si dovrebbe cambiare ad ogni query successiva per non perdere l'informazione precedente ???

3) In questo caso ho aperto ObjRs e objConn.Open db_path, a fondo pagina li dovrei chiudere così :

Set objRs = Nothing
objConn.Close
set objConn = nothing

??

C'è qualcosa in più o qualcosa in meno?? Perchè mi da il seguente errore:

Microsoft VBScript runtime error '800a01a8'
Object required: 'objConn'

sulla riga objConn.Close ??? Non ci va il close ???????