sql >> Databasteknik >  >> RDS >> Mysql

Indexerat MySQL-fält sparar inte värde när man skapar/redigerar post via ADO

Jag kunde återskapa ditt problem med 64-bitarsversionen av MySQL ODBC 5.3 Unicode Driver (5.03.04.00). Det verkar vara ett problem med ADO Recordset-uppdateringar när den sista kolumnen i tabellen är av typen TEXT . Jag hade inte ens ett index på userid och jag fick samma resultat.

En möjlig lösning skulle vara att använda en ADODB.Command med parametrar för att utföra infogningen med kod som liknar denna:

Dim oConn As ADODB.Connection
Dim cmd As ADODB.Command

Set oConn = New ADODB.Connection
oConn.Open _
        "Driver=MySQL ODBC 5.3 Unicode Driver;" & _
        "SERVER=localhost;" & _
        "UID=root;" & _
        "PWD=whatever;" & _
        "DATABASE=mydb;" & _
        "PORT=3306;" & _
        "DFLT_BIGINT_BIND_STR=1"

Set cmd = New ADODB.Command
cmd.ActiveConnection = oConn
cmd.CommandText = _
        "INSERT INTO phplist_user_user_history " & _
        "(`userid`, `ip`, `date`, `Summary`, `Detail`, `systeminfo`) " & _
        "VALUES (?,?,?,?,?,?)"
cmd.Parameters.Append cmd.CreateParameter("?", adInteger, adParamInput, , 456)
cmd.Parameters.Append cmd.CreateParameter("?", adVarWChar, adParamInput, 255, "")
cmd.Parameters.Append cmd.CreateParameter("?", adDBTimeStamp, adParamInput, 255, Now)
cmd.Parameters.Append cmd.CreateParameter("?", adVarWChar, adParamInput, 255, "cHistory.Subject")
cmd.Parameters.Append cmd.CreateParameter("?", adLongVarWChar, adParamInput, 2147483647, "cHistory.Body")
cmd.Parameters.Append cmd.CreateParameter("?", adLongVarWChar, adParamInput, 2147483647, "Automated syncronization process.")
cmd.Execute

Set cmd = Nothing
oConn.Close
Set oConn = Nothing

Jag testade det från en Access 2010-databas och det fungerade bra för mig.



  1. Zebra Stripe PHP MYSQL-bord

  2. Mysql:latin1-> utf8. Konvertera tecken till deras multibyte-ekvivalenter

  3. Hur hittar man saknade rader (datum) i en mysql-tabell?

  4. Call lagrad procedur som innehåller insamling av poster med callproc i python