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

Discussione: chiarimenti su Null

  1. #1
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812

    chiarimenti su Null

    DB Access

    quando un campo può essere "Null" ?

    spiego (ci provo )

    ho una colonna da cui non vengono letti i dati, almeno in apparenza;
    contiene il nome di file immagine, il campo è settato come memo.
    su tutte le altre colonne non da problemi.

    poi magari posto un po' di codice....

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E null cosa c'entra con il problema proposto?

    Roby

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    c'entra perché ho un controllo che mi fa un replace se il campo è vuoto:

    codice:
     If IsNull(ThisRecord) or ThisRecord = "" Then
    	ThisRecord = " "
    	end if
    se il campo è memo non legge, ma solo se visualizzo i dati,
    se li chiamo per modificarli li vedo.

    se il campo è testo li vedo normalmente...

  4. #4
    il campo memo dà qualche problema quindi in genere il valore (qualunque esso sia) lo devi mettere in una variabile e poi testare la variabile.. per testare il fatto che sia "piena" puoi usare la pluripremiata:

    codice:
    if trim("[]" & variabile) == "[]" then
    response.write "variabile vuota"
    else
    response.write("variabile piena")
    end if
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Originariamente inviato da Santino83_02
    il campo memo dà qualche problema quindi in genere il valore (qualunque esso sia) lo devi mettere in una variabile e poi testare la variabile.. per testare il fatto che sia "piena" puoi usare la pluripremiata:

    codice:
    if trim("[]" & variabile) == "[]" then
    response.write "variabile vuota"
    else
    response.write("variabile piena")
    end if
    Scusate se mi intrometto, non ho capito il tuo esempio, non si potrebbe utilizzare un semplice controllo sulla lunghezza della variabile con una funzione Len ?

    codice:
    <%
    if Len(Trim(strVariabile)) > 0 then
    response.Write("variabile piena")
    else
    response.Write("variabile vuota")
    end if 
    %>

  6. #6
    aggiungi sempre qualcosa a strVariabile, perché se fosse Null potrebbe riportarti un errore. poi len o il confronto con "[]", secondo me, è ininfluente

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Originariamente inviato da Santino83_02
    il campo memo dà qualche problema quindi in genere il valore (qualunque esso sia) lo devi mettere in una variabile e poi testare la variabile.. per testare il fatto che sia "piena" puoi usare la pluripremiata:
    1) ok... e ho notato che a volte lo script di scrittura si inchioda senza apparente motivo,
    ne deduco possa essere questa la causa. confermi?

    2) visto che il campo testo ha un limite di 255 caratteri e l'alternativa è memo...
    come risolvo, genericamente, i "problemi" del campo memo?
    (nel caso specifico si tratta di nomi di file che a 255 non ci arrivano...
    ma altri campi potrebbero: vedi un paragrafo descrittivo)

    3) qui il controllo lo uso solo per riempire la caselle con uno "spazio" per semplici problemi di formattazione: il controllo in se non mi serve ad altro (se non a scoprire i misteri di memo )

    4) quindi il problema non sta in un caso di Null ma solo sul tipo campo, giusto?

  8. #8
    Originariamente inviato da Vincent.Zeno
    1) ok... e ho notato che a volte lo script di scrittura si inchioda senza apparente motivo,
    ne deduco possa essere questa la causa. confermi?
    se togli il campo memo i problemi scompaiono d'incanto? non credo...

    Originariamente inviato da Vincent.Zeno
    2) visto che il campo testo ha un limite di 255 caratteri e l'alternativa è memo...
    come risolvo, genericamente, i "problemi" del campo memo?
    (nel caso specifico si tratta di nomi di file che a 255 non ci arrivano...
    ma altri campi potrebbero: vedi un paragrafo descrittivo)
    usa memo con accortezza.

    Originariamente inviato da Vincent.Zeno
    3) qui il controllo lo uso solo per riempire la caselle con uno "spazio" per semplici problemi di formattazione: il controllo in se non mi serve ad altro (se non a scoprire i misteri di memo )
    non ho capito

    Originariamente inviato da Vincent.Zeno
    4) quindi il problema non sta in un caso di Null ma solo sul tipo campo, giusto?
    no, sì, ni, so. depende.

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Originariamente inviato da optime
    se togli il campo memo i problemi scompaiono d'incanto? non credo...
    nella colonna incriminata è certo!
    in scrittura (generica, tutte le colonne) sto verificando.. ma mi pare esser quello


    usa memo con accortezza.
    vorrà dire che aprirò nuovi post quando si presentano problemi...


    non ho capito
    i problema mi è nato per una coincidenza di cose...
    non ho bisogno di quel controllo per fare altro.
    ma ora che ci smanetto magari miglioro lo script

    no, sì, ni, so. depende.
    ecco... così mi rovini la giornata

  10. #10
    incollo una vecchia risposta

    ----------------------------------------------------
    nel caso specifico, la ragione sta nel fatto che il campo memo
    (in ogni db, non solo access) non rientra nelle categorie standard:
    non è una stringa, non è un numero, non è una data.
    aggiungendo & "" si forza ASP a costringerlo dentro una stringa.
    probabilmente anche CStr(campo) sarebbe andato bene.
    a volte (mi sembra di ricordare lo faccia di più con mySQL)
    questi trucchi non funzionano se hai letto il campo con
    SELECT * FROM Tabella.
    Se usi
    SELECT elenco_campi FROM tabella (cioè elenchi i campi uno per uno)
    funzia. Qui forse è un'esasperazione del concetto di cui sopra.
    In più, con sql2005/varchar(max) il campo 'memo' deve essere l'ultimo della select
    (non riesco qui a capire il perché...)
    ----------------------------------------------------


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.