mysql - 某些机器上的 E_FAIL 状态,其他机器上没有

标签 mysql excel vba odbc

我在 Excel 中有一个非常简单的 VBA 代码,它使用 ADO 查询 MariaDB 数据库,然后将该记录集复制到 Excel 中。问题是当代码在某些机器上运行时,它运行良好,而在其他机器上它返回“数据提供者或其他服务返回了 E_FAIL 状态”。

Dim sConn As String
Set adConn = New ADODB.Connection

If adConn.State = adStateClosed Then
    sConn = "Driver=MariaDB ODBC 3.0 Driver;" & _
        "Server=server;" & _
        "Database=database;" & _
        "User=user;" & _
        "Password=password;" & _
        "Option=3"
    adConn.ConnectionString = sConn
    adConn.Open
End If

Dim adRs As ADODB.Recordset
Set adRs = New ADODB.Recordset
    adRs.CursorLocation = adUseClient

Dim SQLQuery as String
SQLQuery = "SELECT * FROM table;"

adRs.Open SQLQuery, adConn, adOpenStatic, adLockPessimistic
    Worksheets("Sheet1").Range("A1").CopyFromRecordset adRs

鉴于它适用于某些机器而不适用于其他机器,我想它可能与计算机本身的配置或驱动程序有关,而不是 Excel、VBA 或 SQL。我应该在哪里看?所有的机器都是64位的,驱动是64位的驱动。代码有问题吗?在连接字符串中?

最佳答案

我将 DATE 字段转换为 CHAR,错误消失了。我仍然不知道为什么某些运行相同版本的 Windows、Excel 和 ODBC 驱动程序的机器的行为与其他机器不同。

关于mysql - 某些机器上的 E_FAIL 状态,其他机器上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229017/

相关文章:

mysql - 标记博客文章时我真的应该使用关系表吗?

php - 从两个不同的产品中选择 *

javascript - 使用 php 打开一个弹出窗口

excel - 如何在Excel中特定列的每个单元格中添加撇号而不丢失前导零

excel - 如何在 VBA 中格式化特定的邮件值

c# - mso 数据放置 :same-cell not working

excel - 两个包含文本但一个包含多个定界符的单元格之间的字符串比较

php - 为什么查询成功后我会从 mysqli_result::free 收到 fatal error ?

excel - 如何使用 VBA 从 Excel 用户窗体中读取复选框的值

vba - 将 Label BackColor 更改为默认值