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

    Campi vuoti su db ... perchè esce undefined?

    Ho una curiosità.

    Ho notato che alcune volte, quando faccio l'inserimento sul db tramite un form, se lascio alcuni campi vuoti nel DB il campo rimane vuoto ....... compilando un altro form e lasciando alcuni campi non compilati nel DB vengono scritti come "undefined" ... perchè?

    HO controllato le pagine e i vari DB e non ho riscontrato differenze!
    Ma allora perchè?

    my pws: cafedelsol.it


    il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.

  2. #2
    il db è lo stesso? o sono due db diversi?

    sia la request che alcuni db a volte al posto di utilizzare i booleani a 2 stati (true e false) utilizzano i tristate (true, false, undefined)

    a me per esempio è capitato utilizzando JScript.

    non chiedermi quando succede perchè non lo so
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    per evitare problemi quando salvo un campo non obbligatorio faccio così:
    if campo_non_obbligatorio <> "" then
    rs("campo") = campo_non_obbligatorio
    end if

    lo salvo solo se è divero da "" nel mio caso, è adattabile per ogni DB.

    Altrimenti se è un campo True/Flase prova a fare così:
    1) salvi in una variabile il campo com è nel DB.
    2) controlli se dopo le midifiche quel campo è diverso.
    3) se si lo salvi (è stato cambiato) altrimenti non salvi nulla!

    prova.

  4. #4
    Dunque, sono due DB differenti, entrambi in ACCESS e uso in entrambe i casi VBscript.
    my pws: cafedelsol.it


    il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.

  5. #5
    Originariamente inviato da SuperMariano81
    per evitare problemi quando salvo un campo non obbligatorio faccio così:
    if campo_non_obbligatorio <> "" then
    rs("campo") = campo_non_obbligatorio
    end if

    lo salvo solo se è divero da "" nel mio caso, è adattabile per ogni DB.

    Altrimenti se è un campo True/Flase prova a fare così:
    1) salvi in una variabile il campo com è nel DB.
    2) controlli se dopo le midifiche quel campo è diverso.
    3) se si lo salvi (è stato cambiato) altrimenti non salvi nulla!

    prova.
    Provo subito
    my pws: cafedelsol.it


    il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.

  6. #6
    Ok.
    Un altro metodo è assegnare ad un campo il valore " " spazio vuoto, così non ti da problemi di visualizzazione ma ti occupa memoria nel DB, non funziona con i campi True / False e poi non è carino come metodo.


  7. #7
    quel metodo non funziona sempre...se il valore è undefined viene memorizzato ugualmente

    il controllo va fatto sui tre valori "critici"

    vuoto: ""
    null
    undefined

    quindi:

    codice:
    if not isNull(variabile) and variabile <> "" and LCase(variabile) <> "undefined" then
    
    memorizzo
    end if

    oppure

    codice:
    if len(variabile)>0 and LCase(variabile) <> "undefined" then
    
    memorizzo
    
    end if
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  8. #8
    Originariamente inviato da Shagrat
    quel metodo non funziona sempre...se il valore è undefined viene memorizzato ugualmente

    il controllo va fatto sui tre valori "critici"

    vuoto: ""
    null
    undefined

    quindi:

    codice:
    if not isNull(variabile) and variabile <> "" and LCase(variabile) <> "undefined" then
    
    memorizzo
    end if

    oppure

    codice:
    if len(variabile)>0 and LCase(variabile) <> "undefined" then
    
    memorizzo
    
    end if
    Esatto Shagrat.
    Infatti me lo memorizza ugualmente l'undefined.

    Certo, mi sembra macchinoso dover ogni volta "ridefinire" la variabile attraverso l'if. Lo facevo solo jscript ed è anche per questo che l'ho abbandonato
    my pws: cafedelsol.it


    il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.

  9. #9
    è veramente importante controllare la consistenza delle variabili da andare a salvare sul db nel caso in cui si utilizzato tabelle relazionate.

    questo per mantenere l'integrita dei dati

    per quanto riguarda i valore "undefined" è la prima volta che sento una cosa del genere a meno che non si recuperino i dati da salvare tramite javascript andando a controllare il valore di un oggetto non presente sul form
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  10. #10
    Originariamente inviato da GudFella
    è veramente importante controllare la consistenza delle variabili da andare a salvare sul db nel caso in cui si utilizzato tabelle relazionate.

    questo per mantenere l'integrita dei dati

    per quanto riguarda i valore "undefined" è la prima volta che sento una cosa del genere a meno che non si recuperino i dati da salvare tramite javascript andando a controllare il valore di un oggetto non presente sul form
    I dati provengono da un form. poi li recupero con il solito Request.Form ed infine faccio la INSERT sul db.

    Se un campo del form non è stato compilato nel DB viene inserito "undefined".

    MI chiedevo il perchè di questo comportamento visto che in un altro db ciò non accade
    my pws: cafedelsol.it


    il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.

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.