+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

Errore di sintassi in Insert into.

  1. #1
    L'avatar di Louis
    Louis non è in linea Scribacchino
    Post
    994
    Like Inviati  
    0
    Like Ricevuti  
    0
    La seguente istruzione Insert Into mi dà errore di sintassi; francamente non riesco a capire il perchè, nonostante abbia provato in tutti i modi, controllato e ricontrollato, c'è qualcosa che non và ma non la rilevo ...
    ' La Terapia del Cliente NON è presente nel DB viene inserita:
            If RSTt1.EOF = True And RSTt1.BOF = True Then
                Dim sList1 As String
                Dim sList2 As String
                Dim i As Integer
                Dim j As Integer
                sList1 = ""
                sList2 = ""
                
                For i = 0 To (FrmInfoTerap.List1.ListCount - 1)
                    If i = (FrmInfoTerap.List1.ListCount - 1) Then
                        sList1 = sList1 & FrmInfoTerap.List1.List(i)
                        Else: sList1 = sList1 & FrmInfoTerap.List1.List(i) & "|"
                    End If
                Next i
                
                For j = 0 To (FrmInfoTerap.List2.ListCount - 1)
                    If j = (FrmInfoTerap.List2.ListCount - 1) Then
                        sList2 = sList2 & FrmInfoTerap.List2.List(j)
                        Else: sList2 = sList2 & FrmInfoTerap.List2.List(j) & "|"
                    End If
                Next j
                
                OggT1.ActiveConnection = CnsT1
                OggT1.CommandType = adCmdText
                
                OggT1.CommandText = "insert into TblTerapie(Titolo, Nome, Cognome, CodFisc, NomeDott, Note, TerapiaDisp, TerapiaAppl)" _
                    & "values ('" & Replace(FrmInfoTerap.TxtCt0x.Text, "'", "''") & "', '" & Replace(FrmInfoTerap.TxtCt1x.Text, "'", "''") & "', '" & Replace(FrmInfoTerap.TxtCt2x.ToolTipText, "'", "''") _
                    & "', '" & Replace(FrmInfoTerap.TxtCt3x.Text, "'", "''") & "', '" & Replace(FrmInfoTerap.TxtCt4x.Text, "'", "''") & "', '" & Replace(FrmInfoTerap.TxtCt5x.Text, "'", "''") & "', '" & (sList1) & "', '" & (sList2) & "');"
                OggT1.Execute
            End If
    
    (sList1) e (sList2) sono stringhe che carico con i valori inseriti in due ListBox, come potete rilevare dai cicli sopra esposti.
    Grazie per l'aiuto.
    ℹ️ Leggi di più su Louis ...

  2. #2
    L'avatar di TheTruster
    TheTruster ora è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,246
    Blogs
    3
    Like Inviati  
    20
    Like Ricevuti  
    13
    non so se l'hai già fatto questo riscontro, ma sarebbe utile inserire la query in una variabile di tipo String, e poi utilizzare il debug per analizzarne il contenuto:

    s = "insert into TblTerapie(Titolo, Nome, Cognome, CodFisc .... "
    Debug.Print s
    
    una volta ottenuto l'output sulla finestra immediata, posta qui il risultato così possiamo analizzare la query completa.

    un utile sistema per risolvere questi problemi, comunque, è l'uso di parametri, che rendono sicuramente meno confusionaria la gestione della stringa contenente la query.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    L'avatar di Louis
    Louis non è in linea Scribacchino
    Post
    994
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao TT,
    ho fatto come hai detto, che peraltro in modo diverso avevo già eseguito, a me sembra tutto a posto, ma l'errore continua:
    insert into TblTerapie(Titolo, Nome, Cognome, CodFisc, NomeDott, Note, TerapiaDisp, TerapiaAppl)values ('Signor', 'Giovanni', 'Rossi', 'GVNNRSSG01F206H501', 'Dott. Enzo Ricordi', 'Prova inserimento dati.', 'Elettrostimolazione|Laser|Magnetoterapia|Tecar|Tens|Ultrasuono|Altro da inserire|Massoterapia|Rieducazione funzionale|Linfodrenaggio manuale|Ginnastica respiratoria|Ginnastica posturale|Altro da inserire', 'Diadinamic|Infrarosso|Ionoforesi');
    
    Nel frattempo ho corretto il seguente errore Replace(FrmInfoTerap.TxtCt2x.ToolTipText che mi era prima sfuggito.
    Ultima modifica di Louis; 15-04-2007 19:28  Motivo: integrazione
    ℹ️ Leggi di più su Louis ...

  4. #4
    L'avatar di TheTruster
    TheTruster ora è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,246
    Blogs
    3
    Like Inviati  
    20
    Like Ricevuti  
    13
    il problema è dovuto all'uso di una parola riservata come nome di campo:

    Note

    prova a cambiare il nome del campo, magari in "Annotazioni", oppure racchiudilo tra parentesi quadre, quindi:

    insert into TblTerapie(Titolo, Nome, Cognome, CodFisc, NomeDott, [Note], TerapiaDisp ...
    
    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  5. #5
    L'avatar di Louis
    Louis non è in linea Scribacchino
    Post
    994
    Like Inviati  
    0
    Like Ricevuti  
    0
    Grazie TT, è andata ..., ho perso tanto di quel tempo, da non dire ...
    ℹ️ Leggi di più su Louis ...

  6. #6
    L'avatar di Cteniza
    Cteniza non è in linea Amanuense
    Post
    4,378
    Blogs
    36
    Like Inviati  
    0
    Like Ricevuti  
    0
    Un consiglio, piuttosto di fare acrobazie con le stringhe inizia anche tu ad utilizzare i parametri.
    La tua insert diventa:

    OggT1.CommandText = "INSERT INTO TblTerapie(Titolo, Nome, Cognome, CodFisc, NomeDott, Note, TerapiaDisp, TerapiaAppl)" _
    & " VALUES(?,?,?,?,?,?,?,?)"
    A seguire i parametri da appendere con l'ordine di comparizione ripetuto per ciascun parametro
    prm = new ADODB.Parameter
    prm. ... 'data type, ecc
    prm.Value = frmINfoTerap.TxtCt0x.Text 'senza replace o conversioni di sorta!
    Ogg1.Parameters.Append(prm)
    ℹ️ Leggi di più su Cteniza ...

  7. #7
    L'avatar di TheTruster
    TheTruster ora è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,246
    Blogs
    3
    Like Inviati  
    20
    Like Ricevuti  
    13
    Quote Originariamente inviato da Cteniza Visualizza il messaggio
    Un consiglio, piuttosto di fare acrobazie con le stringhe inizia anche tu ad utilizzare i parametri.
    sono pienamente d'accordo... lo avevo consigliato anche io un paio di post fa

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  8. #8
    L'avatar di Louis
    Louis non è in linea Scribacchino
    Post
    994
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ma sì avete ragione, è una questione di abitudine (cattiva a quanto pare), però questa volta le acrobazie non centrano, dato che si trattava di una frase riservata.
    La cosa l'avevo intuita, ma non riuscivo a trovare il paragone.
    Per finire, con una buona intenzione, dove posso trovare un tutorial su come impostare i parametri ?
    Grazie a tutti, in particolare a TT.
    ℹ️ Leggi di più su Louis ...

  9. #9
    L'avatar di gibra
    gibra ora è in linea Very Important Person
    Post
    6,240
    Like Inviati  
    21
    Like Ricevuti  
    11

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Errore di sintassi
    Da genespos nel forum PHP
    Risposte: 5
    Ultimo Post: 04-07-2014, 11:28
  2. errore di sintassi nell'istruzione INSERT INTO
    Da Sid233 nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 10-03-2011, 21:08
  3. errore di sintassi
    Da bordelloweb nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 13-06-2009, 23:32
  4. [VB6] Errore di sintassi
    Da dolcissimo nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 05-06-2007, 16:18
  5. Errore di sintassi
    Da Kovacevic83 nel forum Microsoft Word
    Risposte: 4
    Ultimo Post: 13-04-2005, 10:54