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

Discussione: Condizioni in asp

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103

    Condizioni in asp

    Ciao a tutti, sto tentando di adattare uno script asp ma non essendo un mago (ma neanche una mezza cippa) ho bisogno del vostro aiuto. Questo script che allego riceve e manda dati a flash per rimuovere record da database access. Se però in flash inserisco un record che è inesistente, la risposta da parte dello script è ugualmente di successo! Vorrei fare in modo che se il record non esiste lo script lo dica a flash. In tal senso, come posso modificare lo script che allego qui sotto?
    Grazie mille a tutti anticipatamente!
    Giasti

    Script:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    on error resume next
    username = request("username")
    password = request("password")
    realname = request("realname")
    Set RS = Server.CreateObject("ADODB.Recordset")
    sqlString = "DELETE *FROM Users where username ='"&username&"'"
    objConn.Execute sqlString
    if err.Number then
    Response.write "risposta="&err.description
    else
    Response.write "risposta=ok"
    end if
    %>

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    è giusto così, perchè tu fai una query con una WHERE, la WHERE non trova nessun record. punto. non è un errore.

    fai un controllo ad hoc tu.
    prima di fare la delete fai una select con la stessa where
    a questo punto:

    if NOT rs.EOF then
    - fai la delete
    else
    - messaggio d'errore
    end if
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103
    Grazie per la risposta, ho capito la tua spiegazione. Ma non ho capito come faccio a implementare le righe seguenti che mi metti nel resto dello script. Prima di postare ho provato un sacco di volte con altri esempi, ma con asp (soprattuitto se non o conosci) ho notato che basta che sbagli un apice per non far funzionare nulla...

    Pensavo ad una cosa così, correggimi se sbaglio:

    Script:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    on error resume next
    username = request("username")
    password = request("password")
    realname = request("realname")
    Set RS = Server.CreateObject("ADODB.Recordset")
    sqlString = "DELETE *FROM Users where username ='"&username&"'"
    objConn.Execute sqlString
    if NOT rs.EOF then
    Response.write "risposta=ok"
    else
    Response.write "risposta=no"
    end if
    %>
    Grazie...

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    codice:
    sql1 = "SELECT * FROM Users WHERE username ='"&username&"'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql1, conn, 1, 3
    
    if not rs.EOF then
    sql2 = "DELETE * FROM Users WHERE username ='"&username&"'" 
    ObjConn.Execute sql2
    else
    Response.Write "record not found"
    end if
    
    rs.Close
    set rs = Nothing
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103
    OK!!! Adesso provo, poi ti dico
    Grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103
    Sì funziona Grazie mille! Però per l'interfaccia che ho in flash si comporta al contrario. Mi spiego meglio. Come da script orginario, flash riceveva la variabile ok nel caso di buon fine, con il tuo ricevo invece la variabile di not found. Si potrebbe invertire la cosa? Dimmi se è corretta una sintassi del genere:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    on error resume next
    username = request("username")
    sql1 = "SELECT * FROM Users WHERE username ='"&username&"'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql1, conn, 1, 3

    if not rs.EOF then
    sql2 = "DELETE * FROM Users WHERE username ='"&username&"'"
    ObjConn.Execute sql2
    else
    Response.Write "record not found"
    else
    Response.Write "ok"
    end if

    rs.Close
    set rs = Nothing
    %>

    Grazie

  7. #7
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    codice:
     
    <% 
    on error resume next 
    username = request("username") 
    sql1 = "SELECT * FROM Users WHERE username ='"&username&"'" 
    Set rs = Server.CreateObject("ADODB.Recordset") 
    rs.Open sql1, conn, 1, 3 
    
    if not rs.EOF then 
    sql2 = "DELETE * FROM Users WHERE username ='"&username&"'" 
    ObjConn.Execute sql2 
    Response.Write "ok" 
    else 
    Response.Write "record not found" 
    end if 
    
    rs.Close 
    set rs = Nothing 
    %>

    c'era un else di troppo nel tuo codice
    adesso esegue la DELETE e stampa ok
    altrimenti stampa record not found

    NB: non ci sono variabili passate, sono semplici scritte a video
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103
    Adesso c'é qualcosa che si è corrotto, non capisco...
    Abuso ancora un pò della tua pazienza, ti posto il codice flash e lo script asp per confrontare insieme, anche se non capisco sinceramente cosa non vada...

    Script ASP
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    on error resume next
    username = request("username")
    sql1 = "SELECT * FROM Users WHERE username ='"&username&"'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql1, conn, 1, 3

    if not rs.EOF then
    sql2 = "DELETE * FROM Users WHERE username ='"&username&"'"
    ObjConn.Execute sql2
    Response.Write "risposta=ok"
    else
    Response.Write "risposta=no"
    end if

    rs.Close
    set rs = Nothing
    %>

    Script Flash
    campog = new LoadVars();
    campog.username = _root.username_txt.text;
    _root.statusbar_txt.text = "Attendere prego...";
    }
    campog.onLoad = function(success) {
    if (success) {
    if (this.risposta == "ok") {
    _root.statusbar_txt.text = "Cancellazione effettuata con successo!";
    _root.username_txt.text = "";
    Selection.setFocus(username_txt);
    } else if (this.risposta == "no") {
    _root.statusbar_txt.text = "Nessun utente con questo nome!";
    _root.username_txt.text = "";
    Selection.setFocus(username_txt);
    }
    } else {
    _root.statusbar_txt.text = "Problemi di collegamento al database!";
    _root.username_txt.text = "";
    Selection.setFocus(username_txt);
    }
    };
    campog.sendAndLoad("script.asp", campog, "POST");

    Le due condizioni risposta=ok e risposta=no mi sembra che siano rispettate. Ma siamo tornati al vecchio problema, comunica la cancellazione di dati non inseriti come certa. Per favore dedicami ancora qualche minuto...
    Grazie

  9. #9
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    ma te l'avevo detto anche prima

    quando nel codice che ti ho postato io fai

    Response.Write "risposta=ok"
    e
    Response.Write "risposta=no"

    NON SETTI ALCUNA VARIABILE
    semplicemente scrivi a video quello che c'è tra gli apici

    quindi poi non ha alcun senso fare
    if (this.risposta == "no")
    e
    if (this.risposta == "ok"
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    103
    Beh.. però nel mio script iniziale del primo post c'era già una cosa del genere.
    Esisteva una riga con:

    Response.write "risposta=ok"

    e in flash esisteva già una riga di comando come:
    if (this.risposta == "ok")

    E questo funzionava, semplicemente avrei voluto che in caso di non esistenza di user così come il sistema mi diceva "cancellazione effettuata!" avrei voluto in caso contrario che dicesse "user non esistente"!
    Non ho creato da zero questo sistema, c'era già e funzionava...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.