Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Estrazione di un valore in seguito ad una query SQL

    Ciao a tutti, mi potete aiutare nella correzione di una parte di codice JSCRIPT inserito in un file ASP?
    Il mio codice, nella parte che a mio avviso non funziona, si presenta così:
    Ho aperto la connessione al mio database (composto da una tabella denominata "Anagrafe" che contiene i seguenti campi "id", ..., "email", "password" e "livello") nel seguente modo:
    codice:
     
    connection = new ActiveXObject("ADODB.Connection");
    connection.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb"));
    Quindi ho preparato la stringa SQL:
    codice:
    sql = "SELECT * FROM Anagrafe WHERE email='X' AND PASSWORD='Y'"
    Ho eseguito la query SQL:
    codice:
    recordset = connection.execute( sql );
    Poi, avendo la necessità di estrarre il valore del campo "livello" del record ottenuto tramite la precedente esecuzione della query SQL e di assegnare tale valore ad una variabile, ho scritto la seguente istruzione:
    codice:
    liv = recordset("livello");
    Questa istruzione mi serve in seguito, nel codice, in quanto in base al valore della variabile "liv" effettuo un controllo tramite un SWITCH di questo tipo:
    codice:
    switch (liv)
    	{
    	 case 0 : response.redirect("dati.asp")
    	 break;
    	 case 1 : response.redirect("dati1.asp")
    	 break;
    	 default : response.redirect("errore.asp")
    	}
    Però, anche se la query SQL estrae dalla tabella "Anagrafe" un record contenente, nel campo "livello", il valore "0" o il valore "1" viene sempre eseguita l'istruzione di "default" (vengo reindirizzato alla pagina "errore.asp").
    Dove sbaglio, nell'assegnazione del valore alla variabile "liv"?
    Grazie per la collaborazione.

  2. #2
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    accertati che liv sia di tipo numerico con cint(liv)

  3. #3
    Scusa, ma non sono capace di utilizzare cint.
    Se scrivo:
    codice:
    cint(liv);
    ottengo il seguente errore:
    Errore di run-time di Microsoft JScript (0x800A138F)
    Previsto oggetto

    Però nel database (Access) il campo "livello" è impostato come numerico.
    Grazie, ciao.

  4. #4
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da lucasottili
    Scusa, ma non sono capace di utilizzare cint.
    Se scrivo:
    codice:
    cint(liv);
    ottengo il seguente errore:
    Errore di run-time di Microsoft JScript (0x800A138F)
    Previsto oggetto

    Però nel database (Access) il campo "livello" è impostato come numerico.
    Grazie, ciao.


    scusa ma distrattamente ti ho dato un istruzione per vbscript


    il jscript non lo mastico tanto pero' potresti fare una cosa per vedere se il problema è il tipo... metti gli apici nei numeri e dimmi se funziona.

  5. #5
    Ad ogni modo grazie per l'interessamento.

    Ho provato ad inserire i numeri sia tra singoli che tra doppi apici però il switch esegue sempre l'istruzione di default.
    Grazie, ciao.

  6. #6
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da lucasottili
    Ad ogni modo grazie per l'interessamento.

    Ho provato ad inserire i numeri sia tra singoli che tra doppi apici però il switch esegue sempre l'istruzione di default.
    Grazie, ciao.

    ma figurati è un allenamento continuo il forum


    vediamo un po...


    hai gia provato a vedere liv cosa contiene come valore ?

    supponiamo che abbia 1 (numerico)... potresti provare ad usare ToString per renderlo stringa (ovviamente continui a tenere i doppi apici nei numeri)


    prova un po questo (se non hai gia risolto)



  7. #7
    "ToString" mi restituisce lo stesso errore di "cint".
    Poi ho provato con:
    codice:
        
    liv = recordset("livello");
    Response.write(liv);
    ed ottengo il valore (1: però non so se è numerico o di testo) del campo livello del recordset estratto.
    Ciao.

  8. #8
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da lucasottili
    "ToString" mi restituisce lo stesso errore di "cint".
    Poi ho provato con:
    codice:
        
    liv = recordset("livello");
    Response.write(liv);
    ed ottengo il valore (1: però non so se è numerico o di testo) del campo livello del recordset estratto.
    Ciao.

    liv.ToString() non va ?


    non so se in jscript si usa pero' hai provato Convert.ToInt32(liv)?


    per curiosità (leviamoci il dubbio) se metti switch (1) al posto del nome della var funziona ?

  9. #9
    codice:
    liv.ToString();
    Mi restituisce questo errore: "proprietà o metodo no supportati dall'oggetto".
    codice:
    Convert.ToInt32(liv);
    Mi restituisce questo errore: " 'Convert' non è definito ".

    Quindi ho provato ad assegnare a "liv" un valore (liv = 1 ed il "switch" ha finalmente eseguito l'istruzione giusta.
    Forse il problema è nel codice (che non ho riportato nella richiesta iniziale) inserito tra la variabile "liv" e l'esecuzione del "switch".
    Mi spiego: ho copiato il codice per la creazione di una pagina di login da questo sito, poi ho tentato di modificarlo in base alla mia necessità (che è pura didattica ad uso esclusivamente personale: per passione).
    Probabilmente se avessi allegato l'intero file nel mio primo messaggio ti avrei fatto risparmiare tutto questo tempo.
    Ho deciso: abbandono (per il momento) la pagina di login e tenterò di "studiare" altro codice per realizzare pagine diverse (sicuramente romperò di nuovo le scatole per chiedere aiuto).
    Grazie per la pazienza, ciao.

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    ciao, per convertire una stringa in numero intero con jscript devi usare la funzione parseInt(stringa)
    dunque la tua conversione la devi fare cosi:
    liv = parseInt(recordset("livello"));
    Jupy

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.