VBA / ADODB错误地将数据库视为只读

时间:2018-09-21 18:13:26

标签: mysql excel vba adodb

I asked a similar question here.

第二个代码块之前运行良好。但是现在由于某种原因,我收到了只读错误。我在下面再次粘贴了它。

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

Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
    "SERVER=server;" & _
    "DATABASE=database;" & _
    "USER=user;" & _
    "PASSWORD=password;" & _
    "Option=3"


Set cmd = New ADODB.Command
cmd.ActiveConnection = oConn

cmd.CommandText = strSQL
cmd.Execute

oConn.Close
MsgBox ("Query Successful")

我尝试浏览文档,但没有发现任何帮助。我还主要在数据库上进行了插入操作,但仍然可以正常运行,因此数据库不是只读的。

怎么了?有没有办法强制读/写属性?

2 个答案:

答案 0 :(得分:2)

好吧,我基本上只是创建了一个新的端点,该端点是我的旧服务器的副本,将server =设置为其他名称,并且可以正常工作。两台服务器都具有相同的权限,所以我不确定为什么要这样做,但是这是将来遇到此问题的人的解决方案。

答案 1 :(得分:0)

MySQL的ODBC 5.1驱动程序存在很多问题(默认情况下提供)。与您相同的情况,工作正常,一天,没有任何修改就出现了许多问题...但是通过更新最新版本的MySQL连接器8.0解决了该问题。

您可以从“开始”菜单进入“ ODBC数据源管理器”,如果有最后一个,请进入“驱动程序”面板。如果没有,您可以在MySQL的官方网站here上下载它。     然后将EXPORT CalculateDistance :=FUNCTION(Matrix1, Matrix2) // Your DNA magic(basic matrix calculation) for Matrix1&Matrix2 RETURN something; END; result01:= CalculateDistance(A,B); result02:= CalculateDistance(A,C); result03:= CalculateDistance(A,D); result04:= CalculateDistance(B,A); result05:= CalculateDistance(B,C); result06:= CalculateDistance(B,D); result07:= CalculateDistance(C,A); result08:= CalculateDistance(C,B); result09:= CalculateDistance(C,D); result10:= CalculateDistance(D,A); result11:= CalculateDistance(D,B); result12:= CalculateDistance(D,C); executeCalculates := PARALLEL( result01, result02, result03, result04, result05, result06, result07, result08, result09, result10, result11, result12 ); executeCalculates; 替换为DRIVER={MySQL ODBC 5.1 Driver}

希望可以帮助您解决问题。