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

    Problemi con INSERT INTO

    ciao a tutti

    io ho questa query perfettamente funzionante:

    risultato_query = objDatabase.ExecuteNonQuery("INSERT INTO Mailing (Nominativo,Città,Via,Civico,Cap,Tel,Nick,Pwd,Emai l,Nazione) VALUES ('"& objDatabase.Controlla_Stringa(Nome.Text +" "+ Cognome.Text) &"', '"& objDatabase.Controlla_Stringa(Città.Text) &"', '"& objDatabase.Controlla_Stringa(Indirizzo.Text) &"', "& objDatabase.Controlla_Stringa(Civico.Text) &", "& objDatabase.Controlla_Stringa(Cap.Text) &", '"& objDatabase.Controlla_Stringa(Telefono.Text) &"', '"& objDatabase.Controlla_Stringa(UserName.Text) &"', '"& objDatabase.Controlla_Stringa(Password.Text) &"', '"& objDatabase.Controlla_Stringa(Email.Text) &"', '"& objDatabase.Controlla_Stringa(Stato.Text) &"')")

    il problema nasce quando vengono lasciati dei campi vuoti. Questo succede perchè non tutti i campi di registrazione sono obbligatori. Il database è Access e nelle proprietà dei vari campi ho messo come proprietà di quei campi non obbligatori:
    Consenti lunghezza zero = Si
    Richiesto = No

    come mai non me li fa inserire? eppure questa stessa query in ASP non creava problemi.

  2. #2
    non va perchè :
    "& objDatabase.Controlla_Stringa(Civico.Text) &",
    "& objDatabase.Controlla_Stringa(Cap.Text) &"

    non accettano un valore vuoto. A meno che non riescaa capire cosa metter nel campo come valore predefinito.

    Se metto uno 0 funziona, però a me servirebbe non mettere nulla e per adesso ho trasformato questi campi da tipi numerici a testo.


    se avete suggerimenti ditemeli.

  3. #3
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696
    forse perchè sono dei campi numerici e non di testo, quindi non ci vogliono le virgolette ' ' quando li passi nella query?

    ah, no, le virgolette non ce le hai messe effettivamente...

    PAZZIA PAZZIA
    PORTAMI VIA!

  4. #4
    ripeto il problema dipende dal valore predefinito ceh si setta nel campo.

    Se il campo è di tipo numerico l'unico valore predefinito è 0 mentre se è di tipo Testo allora si può mettere "".


    Visto che a me servirebbe avere i campi numerici "" non potendolo fare li ho cambiati facendoli essere di tipo Testo. Ora funziona tutto anche se non mi piace una cosa del genere.

  5. #5
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696
    Il fatto è che per non mettere un valore in un campo testo basta ' ', mentre se si vuole lasciare vuoto un campo numerico bisogna usare null.

    Se vuoi lasciare il tipo di dato numerico, dovresti crearti dei controlli che settano la stringa SQL con il
    null

    sul campo numerico lasciato vuoto invece del valore

    objDatabase.Controlla_Stringa(Civico.Text)



    credo
    PAZZIA PAZZIA
    PORTAMI VIA!

  6. #6
    è vero non ci avevo pensato a questa soluzione, lo farò immediatamente.


    grazie

  7. #7
    il fatto è ceh ho quella funzione dentro ad una classe e se metto

    campo = Null non me lo prende, mi dice che non va bene.

  8. #8
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696
    Originariamente inviato da Daniele80
    il fatto è ceh ho quella funzione dentro ad una classe e se metto

    campo = Null non me lo prende, mi dice che non va bene.
    cioè non piace la query al DB o l'espressione all'applicazione?
    PAZZIA PAZZIA
    PORTAMI VIA!

  9. #9
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696
    dovrebbe venire una cosa del genere:

    risultato_query = objDatabase.ExecuteNonQuery("INSERT INTO Mailing (Nominativo,Città,Via,Civico,Cap,Tel,Nic
    k,Pwd,Email,Nazione) VALUES ('"& objDatabase.Controlla_Stringa(Nome.Text +" "+ Cognome.Text) &"', '"& objDatabase.Controlla_Stringa(Città.Text) &"', '"& objDatabase.Controlla_Stringa(Indirizzo.Text) &"', null, null, '"& objDatabase.Controlla_Stringa(Telefono.Text) &"', '"& objDatabase.Controlla_Stringa(UserName.Text) &"', '"& objDatabase.Controlla_Stringa(Password.Text) &"', '"& objDatabase.Controlla_Stringa(Email.Text) &"', '"& objDatabase.Controlla_Stringa(Stato.Text) &"')")
    PAZZIA PAZZIA
    PORTAMI VIA!

  10. #10
    non riesco a farmi restituire NULL dalla funzione

    codice:
    Public Function Controlla_Stringa(ByVal Campo As String) As String
        If Campo <> "" Then
               Campo = Replace(Campo, "?>", "")
               Campo = Replace(Campo, "|", "")
               Campo = Replace(Campo, "\", "")
               Campo = Replace(Campo, "\n", "")
               Campo = Replace(Campo, "<", "&lt;")
               Campo = Replace(Campo, ">", "&gt;")
               Campo = Replace(Campo, "'", "''")
    
               Dim Carattere, AsciiValue As String
    
               Carattere = Right(Campo, 1)
               AsciiValue = Asc(Carattere)
               If (AsciiValue <= 32 Or AsciiValue >= 161) Then
                   '// se il codice ascii del carattere inserito è >=192 
                   '//elimino il carattere inserito 
                   Campo = Replace(Campo, Carattere, "")
                End If
        else
              return Null 
        End If
        Return Campo
    End Function
    la parte in neretto non me l'accetta

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.