Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Problema con la pluripremiata su campo NULL

    Ciao a tutti.

    Ho uno strano problema con questo codice ASP.
    In pratica il valore del campo chiamato `mioCampo` (decimal 8,3) è nullo mentre in ASP mi stampa zero.

    La query provata in MySQL in corrispondenza della riga estratta alla colonna `mioCampo` lo visualizza null, mentre la stessa query lanciata in ASP lo valorizza come zero.

    Ho utilizzato la pluripremiata ma sembra non funzionare.

    Potete aiutarmi?
    Grazie mille in anticipo.

    Output:
    codice:
    Il campo è pieno: VALORE >>> 0
    Codice ASP
    codice:
    <%
    
    	miaQuery= "SELECT mioCampo FROM miaTabella WHERE altroCampo = 'XXX';"
            response.write miaQuery & "
    "
    	
    	Set Rs = Server.CreateObject("ADODB.Recordset")
    	Rs.Open miaQuery, con
    	
    		if not Rs.eof then
    			IF TRIM(Rs("mioCampo") & "[]") = "[]" Then
    		           strmioCampo = ""     ''' campo vuoto
    		           Response.Write "Il campo è nullo
    "
    			ELSE
    		           strmioCampo = Rs("mioCampo")  ''' campo pieno
    		           Response.Write "Il campo è pieno: "
    		           Response.write "VALORE >>> " & strmioCampo
    			END IF
    		end if
    		        
            Rs.close()
            set Rs=nothing
            
            con.close
            set con=nothing
    %>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    hai fatto una trasformazione in stringa di un campo numerico... niente di strano che il tentativo produca una stringa "0"

    pippo = rs("miocampo")
    if isnull(pippo) then .....
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    grazie per il suggerimento ma continua a stampare zero invece che null.

    codice:
    	    If (IsNull(Rs("mioCampo"))) Then 
                   Response.Write  ""
                Else 
                   Response.write "VALORE >>> " & Rs("mioCampo") & "
    " 
                End If
    
    
    
    SELECT mioCampo FROM miaTabella WHERE altroCampo = 'XXX';
    VALORE >>> 0
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4
    molto evidentemente è zero, non null, altrimenti NON stamperebbe 0, ma NULL, non ti pare?

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Certo che mi pare... ma in MYSQL il valore restituito dalla stessa query è NULL (vedi print mysql).

    Perchè ASP stampa zero ?
    codice:
    mysql> SELECT 
            altroCampo,
            mioCampo 
    FROM 
            miaTabella 
    WHERE 
            altroCampo = 'XXX';
    +------------+----------+
    | altroCampo | mioCampo |
    +------------+----------+
    | XXX        | NULL     |
    +------------+----------+
    1 row in set
    
    mysql>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  6. #6

  7. #7
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da optime
    posta la query *reale*
    ok

    codice:
    mysql> SELECT
    	NumeroTarga AS `XXX`,
    	Punteggio AS `mioCampo`
    FROM
    	tabellaAnagrafica
    WHERE
    	NumeroTarga = '54313'
    OR NumeroTarga = '20421';
    +------------+----------+
    | XXX        | mioCampo |
    +------------+----------+
    | 20421      | 2        |
    | 54313      | NULL     |
    +------------+----------+
    2 rows in set
    
    mysql>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  8. #8
    la query in asp, pls. prova eventualmente a togliere l'alias

  9. #9
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    ok

    codice:
    SELECT NumeroTarga, Punteggio FROM tabellaAnagrafica WHERE NumeroTarga = '54313';
    Ho provato così ma dà errore:
    codice:
                If objRs("Punteggio") = NULL Then <<< riga errore
                   Response.Write  ""
                Else 
                   Response.Write objRs("Punteggio") & "
    " 
                End If
    
    Microsoft VBScript runtime error '800a000d' 
    Type mismatch 
    /prove/Default.asp, line 14
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  10. #10
    ti sei già dimenticato che devi usare IsNull()?

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.