मैं MySQL ODBC 5.3 यूनिकोड ड्राइवर (5.03.04.00) के 64-बिट संस्करण के साथ आपकी समस्या को फिर से बनाने में सक्षम था। यह एडीओ रिकॉर्डसेट अपडेट के साथ एक समस्या प्रतीत होती है जब तालिका में अंतिम कॉलम 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
मैंने एक्सेस 2010 डेटाबेस से इसका परीक्षण किया और इसने मेरे लिए ठीक काम किया।