SOpen.Format("driver={MySQL ODBC 3.51 Driver};Server=localhost;database=asd;Option=3;");
m_pConnection->Open(_bstr_t(SOpen),"","",adModeUnknown);///连接数据库非DSN,连接不上,是否字串错误??我一直不明白“database=”后面填写数据库名称,它上那儿去找我的这个数据库呢?如果我电脑上有n多个MySQL数据库它全部找一遍?请高手解释一下!如果使用DSN,那我在软件发布到服务器上后是不是也要把这个DSN带到服务器上??实在想不通啊~

解决方案 »

  1.   

    SOpen.Format("{MySQL ODBC 3.51 Driver};Server=localhost;Database=asd; User=myUsername;Password=myPassword;Option=3;"); Server=localhost  改成你mySQL所在主机名,如果是本也则使用localhost
    Database=asd   改成你的数据库名。odbce会到刚才那个主机名指定的mySQL服务器上找这个数据库实例。
    User=myUsername  改成你的登录用户名
    Password=myPassword  改成你登录用户的密码
      

  2.   


    如果是做文件DSN,则必须带到服务器上,否则你的服务器怎么会知道DSN的内容?
      

  3.   

    是ADO+ODBC连接吗, 必须再加上一层
    'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="driver={MySQL ODBC 3.51 Driver};Server=localhost;database=asd;Option=3";connect timeout=3'做文件DSN,还要在客户端添加,是落后的方法,这个工作是服务器做的,你别操心。
      

  4.   


    用这个字串open总是报错啊??
      

  5.   

    楼主 我下面的是用 ADO 进行连接Oracle,只要你使用正确DSN都可以使用来连接MySQL。
    windows 平台的接口都是一样的, 仅供参考。
            var    conn = new ActiveXObject("ADODB.Connection");
            conn.open("DSN=ora9i;UID=test;PWD=123456");
            var rs = new ActiveXObject("ADODB.Recordset");
            var sql = "select * from tb_client where name = 'aaa'"; 
            rs.open(sql,conn,1,1);
            var showpage = "<textarea>"+rs(0)+"||"+rs(1)+"||"+rs(2)+"</textarea>";
            //alert(rs(0)+"||"+rs(1)+"||"+rs(2));
            //alert(rs(0)+"||"+rs(1)+"||"+rs(2));
            var page = document.getElementById("showpage")
            page.innerHTML = showpage;
            rs.close(); 
      

  6.   

    可能不同的语言包装不一样,但最里面那一层ODBC的字符串是没错的。
    请参考你语言的文档