Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: problemino

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69

    problemino

    ciao a tutti

    vorrei sapere se è possibile gestire l' errore:

    Microsoft JET Database Engine error '80004005'

    L'apporto modifiche non è riuscito perché si è cercato di duplicare i valori nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati, rimuovere l'indice o ridefinire l'indice per consentire l'inserimento di voci duplicate, quindi ritentare l'operazione.

    mi succede quando , in uno script di inserimento nuovo utente da form nel database, viene rilevato il codice fiscale uguale(dichiarato nel DB come indicizzato con duplicati non ammessi). Ho provato con un if, facendo leggere con una query tutti i record della tabella utenti e confrontando il campo codice con il campo inserito da form, ma mi da sempre pagina bianca con l' errore sopracitato (io vorrei un redirect alla stessa pagina con messaggio d' errore in stringa). Come potrei fare?

    Posto la porzione di codice relativa alla gestione degli errori nello script:

    -------------------------------------------------------------------------------------

    ' controllo e gestione errori nel form di inserimento dati.



    elseif nome="" or riferimento="" or sedelegale="" or partitaiva="" or codice="" or ncivico="" or cap="" or citta="" or provincia="" or email="" or telefono="" or nomeutente="" or chiaveaccesso="" or ripetichiaveaccesso="" then
    response.redirect("../erroreregistrazione.asp?msg=Tutti i campi sono OBBLIGATORI")
    elseif ripetichiaveaccesso<>chiaveaccesso then
    response.redirect("../erroreregistrazione.asp?msg=Le password non coincidono")
    elseif accetto<>"on" then
    response.redirect("../erroreregistrazione.asp?msg=Devi accettare le condizioni di vendita")
    elseif letto<>"on" then
    response.redirect("../erroreregistrazione.asp?msg=Devi acconsentire al trattamento dei dati personali")


    -------------------------------------------------------------------------------------

    Grazie a tutti aspetto risposte

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Evidentemente non entra nella porzione di codice di errore corrispondente.
    Prima di fare l'inserimento (che evidentemente avviene ancora, visto l'errore) devi fare una query e verificare che quel codice fiscale non sia già presente.

    Roby

  3. #3
    oppure potresti trappare l'errore, consulta questo howto.

    http://www.aspdev.org/articles/asp-error-handling/
    ...NO ONE IS INNOCENT ANYMORE...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336
    il messaggio di errore è il seguente:
    ADODB.Field error '80020009'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.




    per rotteninside: non funge il link

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336

    ho toppato!!!!!

    chiedo scusa .... MESSAGGIO INVIATO ERRONEAMENTE ....
    scusate ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69
    ciao a tutti, ho risolto la gestione errori

    grazie per le info datemi....adesso gestisco bene gli errori in qualsiasi casistica, sorge però un ultimo problema: non fa l' inserimento nel database della nuova registrazione , cioe non funziona. gestisce gli errori benissimo, ma se non ci sono errori e quindi tutte le condizioni sono state soddisfatte non va avanti e mi blocca ()

    vi posto l' intero codice della pagina

    aspetto vostre risposte, per favore aiutatemi

    grazie mille a tutti


    -------------------------------------------------------------------------------------------------------
    inizio codice

    <%
    'connesione
    Set connessione=Server.CreateObject("ADODB.Connection" )
    Connessione.Provider="Microsoft.Jet.oledb.4.0; data Source=" & Server.MapPath("../dbs/DbShop.mdb")
    Connessione.Open




    tipoutente=session("tipoutente")
    datacorrente=date()



    'lettura valori da form
    nome=request.form("nome")
    riferimento=request.form("riferimento")
    codice=request.form("Codfis")
    partitaIVA=request.form("partitaIVA")
    sedelegale=request.form("sedelegale")
    ncivico=request.form("Ncivico")
    cap=request.form("CAP")
    citta=request.form("Citta")
    provincia=request.form("Provincia")
    email=request.form("Email")
    telefono=request.form("telefono")
    nomeutente=request.form("Nomeutente")
    chiaveaccesso=request.form("Chiaveaccesso")
    ripetichiaveaccesso=request.form("Ripetichiaveacce sso")
    accetto=request.form("accettocgv")
    letto=request.form("lettoprivacy")




    'query di controllo su esistenza dati nel database

    SqlControlla="SELECT * FROM TblUtenti WHERE Codicefiscale='"&codice&"' OR PartitaIVA='"&partitaiva&"' OR NomeUtente='"&nomeutente&"' OR Email='"&email&"'"
    SET RsControlla=server.createobject("ADODB.recordset")
    RsControlla.open SqlControlla, connessione
    codiceletto=RsControlla.fields("CodiceFiscale")
    partitaivaletta=RsControlla.fields("PartitaIva")
    Emailletta=RsControlla.fields("email")
    nomeutenteletto=RsControlla.fields("NomeUtente")



    ' eseguo controllo di conformità del form verificando che i campi del form non siano vuoti e che le pass conicidano

    if ripetichiaveaccesso=chiaveaccesso and chiaveaccesso<>"" and ripetichiaveaccesso<>"" and accetto="on" and letto="on" and nome<>"" and riferimento<>"" and sedelegale<>"" and partitaiva<>"" and codice<>"" and ncivico<>"" and cap<>"" and citta<>"" and provincia<>"" and email<>"" and telefono<>"" and nomeutente<>"" and nomeutente<>nomeutenteletto and email<>emailletta and codice<>codiceletto and partitaiva<>partitaivaletta then



    'query inserimento nuovo utente aziendale

    SqlNuovoUtenteAzienda="INSERT INTO TblUtenti (TipoUtente, Nome, Riferimento, Codicefiscale, PartitaIVA, SedeLegale, Numerocivico, CAP, Citta, Provincia, Email, Telefono, Nomeutente, Chiaveaccesso, DataInserimento) values ('"&tipoutente&"', '"&nome&"', '"&riferimento&"', '"&codice&"', '"&partitaIVA&"', '"&sedelegale&"', '"&ncivico&"', '"&cap&"', '"&citta&"', '"&provincia&"', '"&email&"', '"&telefono&"', '"&nomeutente&"', '"&chiaveaccesso&"', #"&datacorrente&"#)"
    SET RsNuovoUtenteAzienda=server.createobject("ADODB.Re cordset")
    RsNuovoUtenteAzienda.open SqlNuovoUtenteAzienda, connessione




    ' Invio mail di riepilogo all' utente

    mail=replace((email),"@","_")
    'definisco l oggetto mail
    SET mailregAzienda=server.createobject("CDO.Message")
    'lettura mail del mittente dal form
    mailregAzienda.from=mail
    'assegnazione mail del destinatario
    mailregAzienda.to=mail
    'tipologia oggetto della mail letto da form
    mailregAzienda.subject="Registrazione "&nome&" in data "&datacorrente&""
    SITOWEB="<html><head></head><body>"
    SITOWEB=SITOWEB&"<font color=red size=6 face=tahoma>Grazie per esserti registrato </font>

    "
    SITOWEB=SITOWEB&"<font face=tahoma size=3 color=blue>Ecco il riepilogo della tua registrazione</font>

    "
    SITOWEB=SITOWEB&"<table border=0 width=400>"
    SITOWEB=SITOWEB&"<tr><td width=200>Ragione Sociale</td><td width=200>"&nome&"</td></tr><tr><td width=200>Sede Legale</td><td width=200>"&sedelegale&"</td></tr><tr><td width=200>N. Civico</td><td width=200>"&ncivico&"</td></tr><tr><td width=200>CAP</td><td width=200>"&CAP&"</td></tr><tr><td width=200>Citta'</td><td width=200>"&citta&"</td></tr><tr><td width=200>Provincia</td><td width=200>"&provincia&"</td></tr><tr><td width=200>Partita IVA</td><td width=200>"&partitaIVA&"</td></tr><tr><td width=200>Codice Fiscale</td><td width=200>"&codice&"</td></tr><tr><td width=200>Telefono</td><td width=200>"&telefono&"</td></tr><tr><td width=200>Email</td><td width=200>"&mail&"</td></tr><tr><td width=200>Persona di riferimento</td><td width=200>"&riferimento&"</td></tr><tr><td width=200>NomeUtente</td><td width=200>"&nomeutente&"</td></tr><tr><td width=200>Password:</td><td width=200>"&chiaveaccesso&"</td></tr></table>


    "
    SITOWEB=SITOWEB&"<font face=tahoma size=4 color=purple>Gentile "&nome&",
    Accedi al nostro sito di vendita online di qualsiasi tipo. Inserisci le credenziali di accesso
    negli appositi spazi in alto a sinistra oppure clicca <a href=http://localhost/negoziocomputer/default.asp>QUI</a> per andare all' homepage del sito. Buona navigazione!!!</font>"
    SITOWEB=SITOWEB&"</body></html>"
    mailregAzienda.HTMLBODY=SITOWEB
    'invio mail
    mailregAzienda.send
    SET mailregAzienda=nothing



    'Invio mail di riepilogo all' Admin

    mail=replace((email),"@","_")
    'definisco l oggetto mail
    SET mailregAdmin=server.createobject("CDO.Message")
    'lettura mail del mittente dal form
    mailregAdmin.from=mail
    'assegnazione mail del destinatario
    mailregAdmin.to="einvolk@virgilio.it"
    'tipologia oggetto della mail letto da form
    mailregAdmin.subject="Registrazione "&nome&" in data "&datacorrente&""
    'assegnazione alla variabile SITOWEB di una vera e propria pagina in html, con stampa a video dei valori inseriti dal form
    SITOWEB="<html><head></head><body>"
    SITOWEB=SITOWEB&"<font color=red size=6 face=tahoma>Un nuovo utente si è registrato sul sito</font>

    "
    SITOWEB=SITOWEB&"<font face=tahoma size=3 color=blue>Ecco il riepilogo della registrazione</font>

    "
    SITOWEB=SITOWEB&"<table border=0 width=400>"
    SITOWEB=SITOWEB&"<tr><td width=200>Ragione Sociale</td><td width=200>"&nome&"</td></tr><tr><td width=200>Sede Legale</td><td width=200>"&sedelegale&"</td></tr><tr><td width=200>N. Civico</td><td width=200>"&ncivico&"</td></tr><tr><td width=200>CAP</td><td width=200>"&CAP&"</td></tr><tr><td width=200>Citta'</td><td width=200>"&citta&"</td></tr><tr><td width=200>Provincia</td><td width=200>"&provincia&"</td></tr><tr><td width=200>Partita IVA</td><td width=200>"&partitaIVA&"</td></tr><tr><td width=200>Codice Fiscale</td><td width=200>"&codice&"</td></tr><tr><td width=200>Telefono</td><td width=200>"&telefono&"</td></tr><tr><td width=200>Email</td><td width=200>"&mail&"</td></tr><tr><td width=200>Persona di riferimento</td><td width=200>"&riferimento&"</td></tr><tr><td width=200>NomeUtente</td><td width=200>"&nomeutente&"</td></tr><tr><td width=200>Password:</td><td width=200>"&chiaveaccesso&"</td></tr></table>


    "
    SITOWEB=SITOWEB&"</body></html>"
    mailregAdmin.HTMLBODY=SITOWEB
    'invio mail
    mailregAdmin.send
    SET mailregAdmin=nothing
    response.redirect("../regcorretta.asp")
    session.abandon

    ' controllo e gestione errori su campi obbligatorie e su password non corrette
    elseif nome="" or riferimento="" or sedelegale="" or partitaiva="" or codice="" or ncivico="" or cap="" or citta="" or provincia="" or email="" or telefono="" or nomeutente="" or chiaveaccesso="" or ripetichiaveaccesso="" then
    response.redirect("../erroreregistrazione.asp?msg=Tutti i campi sono OBBLIGATORI")
    elseif ripetichiaveaccesso<>chiaveaccesso then
    response.redirect("../erroreregistrazione.asp?msg=Le password non coincidono")
    elseif accetto<>"on" then
    response.redirect("../erroreregistrazione.asp?msg=Devi accettare le condizioni di vendita")
    elseif letto<>"on" then
    response.redirect("../erroreregistrazione.asp?msg=Devi acconsentire al trattamento dei dati personali")
    'controllo errori di valori duplicati
    elseif codice=codiceletto then
    response.redirect("../erroreregistrazione.asp?msg=Codice fiscale gia' presente in archivio")
    elseif partitaiva=partitaivaletta then
    response.redirect("../erroreregistrazione.asp?msg=Partita IVA gia' presente in archivio")
    elseif email=emailletta then
    response.redirect("../erroreregistrazione.asp?msg=Email gia' presente in archivio")
    elseif nomeutente=nomeutenteletto then
    response.redirect("../erroreregistrazione.asp?msg=Username gia' presente in archivio")


    else
    response.redirect("../regcorretta.asp")
    end if

    %>

    ----------------------------------------------------------------------------------------------

    fine codice

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Apri il recordset inutilmente invece di eseguire la query:

    codice:
    connessione.Execute(SqlNuovoUtenteAzienda)
    Roby

  8. #8
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Se l'inserimento non avviene è perchè il DB vede il dato già presente e per via della chiave univoca non te lo lascia inserire.

    Per fare un test inserisci momentaneamente una chiave non univoca, in modo che accetti i duplicati e riprova.

    In ogni caso la soluzione è quella suggerita da Roby...

    Originariamente inviato da Roby_72
    Evidentemente non entra nella porzione di codice di errore corrispondente.
    Prima di fare l'inserimento (che evidentemente avviene ancora, visto l'errore) devi fare una query e verificare che quel codice fiscale non sia già presente.

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69

    problema

    ciao a tutti

    conessione.execute(sqlnuovoutenteaziendale) cosa è? come devo metterlo e in quale punto del codice?

    Grazie

  10. #10
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    quando le query sono delle insert, delle delete o delle update non devi creare il recorset in quanto non ottieni in dietro un ser di dati.

    In questi casi sono query che ESEGUI senza dover raccogliere il risultato, come invece accade nelle select

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.