Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    n0nn4
    Guest

    Chiusura e set a nothing del recordset e della connessione generano errore

    salve ragazzi
    vi spiego;devo inserire dei dati in una tabella di un database ;
    dopo l'istruzione Insert into per l'inserimento metto questo codice ASP;
    ----------------------
    rsTabella.close
    Set rsTabella=Nothing
    ConnessioneDB.Close
    ---------------------
    al fine di kiudere ogni connessione e recordet ma riaprirla con la pagina successiva

    però mi viene generato questo errore:
    Tipo di errore:
    ADODB.Recordset (0x800A0E78)
    L'operazione non è consentita se l'oggetto è chiuso.
    /Esame2000(ASP)/inserimento1.asp, line 39

    quindi; se faccio l'inserimento senza mettere quelle tre righe di codice scritte prima,dopo l'istruzione di inserimento ,l'inserimento termina correttamente

    ;mentre , se dopo lìistruzione di inserimento ci metto:
    rsTabella.close
    Set rsTabella=Nothing
    ConnessioneDB.Close
    mi genera l'errore scritto in precedenza e l'inserimento non viene effettuato


  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamo tutto lo script. Dipende da COME effettui l'operazione di INSERT.

    Roby

  3. #3
    n0nn4
    Guest
    lo script è il seguente:

    <% Dim ConnessioneDB,rsTabella,sql,cod,Provincia,Dipenden ti,Offerte,Posta,Elettronica,Tel,div


    SET ConnessioneDB = Server.CreateObject("ADODB.Connection")
    ConnessioneDB.OPEN " DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Documents and Settings\Attilio\Desktop\Esame di stato del 2000\Archivio.mdb"

    Provincia=Request.Form("txtProvincia")
    Dipendenti=Request.Form("txtNDipendenti")
    Offerte=Request.Form("txtNOfferte")
    Posta=Request.Form("txtIPostale")
    Elettronica=Request.Form("txtIPElett")
    Tel=Request.Form("txtTelefono")


    Randomize()
    div=Rnd()*100

    Randomize()
    cod=Rnd()*100/div



    sql="Select * From Agenzie"
    set rsTabella=ConnessioneDB.Execute(sql)



    sql = "INSERT INTO Agenzie (cod_agenzia,Provincia,n°Dipendenti,n°Offerte,id_P ost,post_Elett,Tel) Values ('" & cod & "','" & Provincia & "','" & Dipendenti & "','" & Offerte & "','" & Posta & "','" & Elettronica & "','" & Tel & "')"
    set rsTabella=ConnessioneDB.Execute(sql)

    rsTabella.close
    Set rsTabella=Nothing
    ConnessioneDB.Close


    %>

    non considerate la funzione rnd che quella l'ho usata x creare una kiave primaria casuale e funziona bene

    ecco l'errore
    Tipo di errore:
    ADODB.Recordset (0x800A0E78)
    L'operazione non è consentita se l'oggetto è chiuso.
    /Esame2000(ASP)/inserimento1.asp, line 39

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    A cosa ti serve la SELECT e il recordset rsTabella???
    Da così:

    codice:
    sql="Select * From Agenzie" 
    set rsTabella=ConnessioneDB.Execute(sql) 
    
    sql = "INSERT INTO Agenzie (cod_agenzia,Provincia,n°Dipendenti,n°Offerte,id_Post,post_Elett,Tel) Values ('" & cod & "','" & Provincia & "','" & Dipendenti & "','" & Offerte & "','" & Posta & "','" & Elettronica & "','" & Tel & "')" 
    set rsTabella=ConnessioneDB.Execute(sql) 
    
    rsTabella.close
    Set rsTabella=Nothing
    ConnessioneDB.Close
    a così:

    codice:
    sql = "INSERT INTO Agenzie (cod_agenzia,Provincia,n°Dipendenti,n°Offerte,id_Post,post_Elett,Tel) Values ('" & cod & "','" & Provincia & "','" & Dipendenti & "','" & Offerte & "','" & Posta & "','" & Elettronica & "','" & Tel & "')" 
    ConnessioneDB.Execute(sql) 
    
    ConnessioneDB.Close
    set ConnessioneDB = nothing
    Roby

  5. #5
    n0nn4
    Guest
    lo script è il seguente:

    <% Dim ConnessioneDB,rsTabella,sql,cod,Provincia,Dipenden ti,Offerte,Posta,Elettronica,Tel,div


    SET ConnessioneDB = Server.CreateObject("ADODB.Connection")
    ConnessioneDB.OPEN " DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Documents and Settings\Attilio\Desktop\Esame di stato del 2000\Archivio.mdb"

    Provincia=Request.Form("txtProvincia")
    Dipendenti=Request.Form("txtNDipendenti")
    Offerte=Request.Form("txtNOfferte")
    Posta=Request.Form("txtIPostale")
    Elettronica=Request.Form("txtIPElett")
    Tel=Request.Form("txtTelefono")


    Randomize()
    div=Rnd()*100

    Randomize()
    cod=Rnd()*100/div



    sql="Select * From Agenzie"
    set rsTabella=ConnessioneDB.Execute(sql)



    sql = "INSERT INTO Agenzie (cod_agenzia,Provincia,n°Dipendenti,n°Offerte,id_P ost,post_Elett,Tel) Values ('" & cod & "','" & Provincia & "','" & Dipendenti & "','" & Offerte & "','" & Posta & "','" & Elettronica & "','" & Tel & "')"
    set rsTabella=ConnessioneDB.Execute(sql)

    rsTabella.close
    Set rsTabella=Nothing
    ConnessioneDB.Close


    %>

    non considerate la funzione rnd che quella l'ho usata x creare una kiave primaria casuale e funziona bene

    ecco l'errore
    Tipo di errore:
    ADODB.Recordset (0x800A0E78)
    L'operazione non è consentita se l'oggetto è chiuso.
    /Esame2000(ASP)/inserimento1.asp, line 39

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti ho già risposto!

    Roby

  7. #7
    n0nn4
    Guest
    scusa ho problemi con la linea adsl va lentissima lol

    cmq thx ho risolto !!
    xro ho un'altro dubbio

    ora che ho kiuso la connessione al database ;se voglio inserire altri dati in un'altra tabella sullos tesso db devo riaprire di nuovo la conessione cosi??

    SET ConnessioneDB = Server.CreateObject("ADODB.Connection")
    ConnessioneDB.OPEN " DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Documents and Settings\Attilio\Desktop\Esame di stato del 2000\Archivio.mdb"

    e poi procedere all'inserimento giusto?'

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se lo fai nella stessa pagina chiudi la connessione alla fine della pagina ed in mezzo inserisci
    tutto quello che vuoi.

    Roby

  9. #9
    Devi riaprire la connessione per qualsiasi operazione SQL effettui sul DB, anche una semplice SELECT.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  10. #10
    ora che ho kiuso la connessione al database ;se voglio inserire altri dati in un'altra tabella sullos tesso db devo riaprire di nuovo la conessione cosi??
    no dico... di solito passi attraverso i muri? attraversi le porte chiuse?


    ...o lasci al porta aperta (e la chiudi quando non ti serve più...) o la riapri...
    indovina dove e come perdi più tempo?
    Grazie sempre di tutto!!!
    Alberto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.