Mysql
 sql >> база данни >  >> RDS >> Mysql

Индексираното MySQL поле не запазва стойност при създаване/редактиране на запис чрез ADO

Успях да пресъздам вашия проблем с 64-битовата версия на MySQL ODBC 5.3 Unicode драйвер (5.03.04.00). Изглежда, че има проблем с актуализациите на ADO Recordset, когато последната колона в таблицата е от тип TEXT . Дори нямах индекс на userid и получих същите резултати.

Едно възможно заобиколно решение би било използването на ADODB.Command с параметри за извършване на вмъкването с помощта на код, подобен на този:

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

Тествах го от база данни на Access 2010 и работи добре за мен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли да актуализирам току-що добавения ред, използвайки MySQL тригери

  2. Сравняване на низове в PHP по същия начин, както прави MySQL

  3. Присъединете се с три маси

  4. Mysql български езици, набор от символи

  5. Как да съпоставим един знак в MySQL на мястото на %?