我在用VB访问MySQL的时候,    Set MySqlDB = New ADODB.Connection
    Dim Sdb As String
    Sdb = "DRIVER={MySQL ODBC 3.51 Driver};" & "SERVER=10.20.5.25;" & "DATABASE=fudanproject_new;" & "UID=root;PWD=123;OPTION=3;PORT=3306"
    MySqlDB.Open Sdb
    Dim strsql As String
    strsql = "select * from users"
    Dim rdSet As New ADODB.Recordset
    Set rdSet = New Recordset
    rdSet.Open strsql, MySqlDB, 1, 1
    Dim i As Integer    
    If Not rdSet Then
        cmbUser.Clear
        With rdSet
            For i = 0 To .RecordCount - 1
                cmbUser.AddItem (Trim(.Fields!taskID))
                .MoveNext
            Next i
        End With
    End If这时,rdSet.RecordCount为-1,这是怎么回事呢?

解决方案 »

  1.   

    在rdSet.open前执行
    rdSet.CursorLocation = adUseClient
      

  2.   

    还有一个问题,运行程序的机器,也必须配置ODBC的DSN吗?我写程序的时候,不配置DSN,好像就无法连接?
      

  3.   

    可你的连接字符串里并没有用DSN名称啊,应该只装上mysql的odbc驱动就可以了吧?你可以把配置好的DSN删掉看看,应该还可以访问。
      

  4.   

    可以不用配置DSN的
    楼主可以用ADO控件的connectiongstring属性生成连接字符串
    有几种方式:DSN的,文件DSN的,还有就是直接连SQL的
      

  5.   

    看你的连接字符串中有:DRIVER={MySQL ODBC 3.51 Driver};那么你应该装了mysql-odbc-3.51了,没有必要配置DSN 了吧.
      

  6.   

    使用DSN 是不是比较安全呢?
      

  7.   

    使用DSN 是不是比较安全呢?
    怎么说呢,毕竟是ms的东西吧
    但是配置麻烦
    你要每个客户机都配置一次
      

  8.   

    大侠们:
    是不是运行程序的每一台机器上,都要安装mysql-odbc-3.51呢?这也比较麻烦吧?
      

  9.   

    免安装怎么处理呢?还要包含mysql-odbc-3.51