Errore di sintassi
massimo74rn
massimo74rn non è online. Ultima attività: 20/04/2009 19.27.39massimo74rn
il 14 ottobre 2008 alle 00.15
83 messaggi dal 26 luglio 2008
Mi da errore di sintassi nell'espressione INSERT INTO, a me pare sia tutto giusto, ma mi pare di aver capito che il problema è nella variabile 'nx', ma non capisco il perchè, difatti se la elimini tutto funziona correttamente!


              
Dim tx As String = CType(dl.Rows(x).FindControl("Giorni"), TextBox).Text, c As Integer = 0
                
Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text

With dst.Tables("an").Rows(0)
                    
                   sql = "INSERT INTO IndennitàCOL " & _
                   "(IDNominativo,IDGrado,IDGruppo,IDMese,IDAnno,Giorni," & _
                   "Note,DataInvioLOCAL,Autorizza) " & _
                   "VALUES (" & .Item("IDAnagrafica") & "," & _
                        "" & .Item("IDGrado") & "," & _
                        "" & .Item("IDGruppo") & "," & _
                        "" & IDMese & "," & _
                        "" & Anno & "," & _
                        "" & tx & ",'" & _
                        "" & nx & "','" & _
                        "" & "111120082338" & "'," & _
                        "" & False & ")"
  
              End With

www.rimini-incontri.com
RE: Errore di sintassi
Cradle
Cradle non è online. Ultima attività: 05/07/2009 13.27.12Cradle
il 14 ottobre 2008 alle 00.54
Usa il debugger e verifica l'sql effettivamente generato.

Ciao
RE: Errore di sintassi
davidedm70
davidedm70 non è online. Ultima attività: 21/06/2009 7.38.09davidedm70
il 14 ottobre 2008 alle 09.23
10 messaggi dal 20 giugno 2006
Quasi sicuramente hai un apostrofo di troppo... Se ad esempio il valore di nx è nx = "l'abbiamo fatto" questo deve diventare "l''abbiamo fatto" altrimenti non può funzionare insert
RE: Errore di sintassi
m.casati
m.casati non è online. Ultima attività: 03/07/2009 17.23.59m.casati Top Poster
il 14 ottobre 2008 alle 09.28
Contributi | www.guru4.net | Blog | 2.493 messaggi dal 13 giugno 2001
Al consiglio di Cradle aggiungo una considerazione: perché non usi i parametri?
La tua query potrebbe dare un errore per la presenza di un banalissimo apice digitato nella textbox o - peggio - potrebbe generare gravi danni al database (distruzione totale compresa!) se un utente malintenzionato iniettasse codice sql malevolo (tipo "'; DROP TABLE ...; --")
Guardati gli articoli dello speciale sulla sicurezza, in particolare questo: http://www.aspitalia.com/articoli/asp.net2/aspnet-security-2.aspx
HTH

Matteo Casati
GURU4.net
RE: Errore di sintassi
massimo74rn
massimo74rn non è online. Ultima attività: 20/04/2009 19.27.39massimo74rn
il 14 ottobre 2008 alle 13.30
83 messaggi dal 26 luglio 2008
Ho inserito la funzione per l'apostrofo come qui sotto riportato, ma non ho risolto nulla, ho lanciato la stringa sql risultante con un msgbox e mi sembra perfetta.
Purtroppo non so usare i parametri, e per ora ho urgenza di finire questo progetto, poi sicuramente li studierò perchè li usavo con VB6 e erano utilisssimi. Ma secondo voi l'errore potrebbe essere nella dichiarazione:

Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text




Dim tx As String = CType(dl.Rows(x).FindControl("Giorni"), TextBox).Text, c As Integer = 0

Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text

sql = "INSERT INTO IndennitàCOL " & _
                        "(IDNominativo,IDGrado,IDGruppo,IDMese,IDAnno,Giorni," & _
                        "Note,DataInvioLOCAL,Autorizza) " & _
                        "VALUES (" & .Item("IDAnagrafica") & "," & _
                        "" & .Item("IDGrado") & "," & _
                        "" & .Item("IDGruppo") & "," & _
                        "" & IDMese & "," & _
                        "" & Anno & "," & _
                        "" & tx & ",'" & _
                        "" & fApici(nx) & "','" & _
                        "" & "111120082338" & "'," & _
                        "" & False & ")"



    Function fApici(ByVal stringa)
        fApici = replace(stringa, "'", "''")
    End Function

www.rimini-incontri.com
RE: Errore di sintassi
m.casati
m.casati non è online. Ultima attività: 03/07/2009 17.23.59m.casati Top Poster
il 14 ottobre 2008 alle 14.11
Contributi | www.guru4.net | Blog | 2.493 messaggi dal 13 giugno 2001
massimo74rn ha scritto:
ho lanciato la stringa sql risultante con un msgbox e mi sembra perfetta.

Possiamo vederla? I tipi (stringhe, nuemrici, ecc.) sono rispettati tra istruzione e dichiarazione dei campi nel db?

Matteo Casati
GURU4.net
RE: Errore di sintassi
massimo74rn
massimo74rn non è online. Ultima attività: 20/04/2009 19.27.39massimo74rn
il 14 ottobre 2008 alle 14.23
83 messaggi dal 26 luglio 2008
Ragazzi, volevo dirvi che dopo 2 giorni di rompicapo ho risolto il problema.
Penso che 'Note' sia una parola riservata del db access, infatti è stato sufficente scriverla tra parentesi quadre. Grazie mille a tutti.

www.rimini-incontri.com

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9