Visualizzazione dei risultati da 1 a 4 su 4

Discussione: VB mySQL UPDATE

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133

    VB mySQL UPDATE

    Rieccomi a voi di nuovo con un problema di parameter

    Connessione a mySQL con ODBC

    codice:
    myDB.Esegui("UPDATE Y3Operatori SET DataUltima_Ope ='" & Date.Now().ToString("yyyy-MM-dd HH:mm:ss") & "' WHERE OperatoreID_Ope=" & Contesto.Session("OperatoreID") & ";")
    Questa funziona perfettamente, ora cerco di usare parameter

    codice:
    Dim Sql As String = "UPDATE Y3Operatori SET (DataUltima_Ope=?) WHERE OperatoreID_Ope=" & Contesto.Session("OperatoreID") & " ;"
    Dim Cmd As New Data.Odbc.OdbcCommand
    Cmd.CommandText = Sql
    Cmd.Parameters.Clear()
    Cmd.Parameters.AddWithValue("?", Data.Odbc.OdbcType.Date).Value = Date.Now
    myDB.EseguiCommand(Cmd)
    Cmd.Dispose()
    errore:
    Dettagli eccezione: System.Data.Odbc.OdbcException: ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(DataUltima_Ope='2008-01-31 18:09:42') WHERE OperatoreID_Ope=1' at line 1

    dal pezzo che si vede della query sembra scritta correttamente, non riesco a trovare l'errore
    Ho provato anche sintassi come ?DataUltima_Ope ma peggiore la situazione

    Grazie per l'ennesimo aiuto
    Tomas
    tomas

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    Problema ancora non risolto.

    Intanto ho scoperto che [] è una sintassi solo per access, per ora ho risolto nella sub che esegue le query di aggiungere replace [ "". Per fortuna che che è una sola classe che esegue l'accesso al db. Grazie Pietro per la tua sub.

    Tomas
    Ma ODBC non dovrebbe essere uno standard fra i database? Perchè non ha una sintassi unica e non fa lui le conversioni da @ a ? , elimina le [ ecc...
    tomas

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    Sul server per giunta la data non risulta formattata:

    ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(DataUltima_Ope='20080201132030') WHERE OperatoreID_Ope=1' at line 1

    Per ora sono a questa versione ma continua a non andare:
    codice:
    Cmd.CommandText = "UPDATE Y3Operatori SET (DataUltima_Ope=?) WHERE OperatoreID_Ope=1 ; "
    Cmd.Parameters.Clear()
    Cmd.Parameters.AddWithValue("DataUltima_Ope", Data.Odbc.OdbcType.DateTime).Value = Date.Now
    myDB.EseguiCommand(Cmd)

    Una query di selezione del tipo
    codice:
    Cmd.CommandText = "SELECT * FROM Y3Operatori WHERE (Userid_Ope=?) AND (Password_Ope=?); "
    Cmd.Parameters.Clear()
    Cmd.Parameters.AddWithValue("Userid_Ope", Data.Odbc.OdbcType.Text).Value = Left(UserT, 16)
    Cmd.Parameters.AddWithValue("Password_Ope", Data.Odbc.OdbcType.Text).Value = Left(PassT, 16)
    
    Dim Rs As New Data.DataTable
    Rs = myDB.EstraiTabella(Cmd)
    funziona! Perchè non va la query di update?
    Se qualcuno vede l'errore lo ringrazio

    Tomas
    tomas

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    Ci riprovo a tirarlo su.
    tomas

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.