_ConnectionPtr m_con;
m_con 的连接字符串为:
slqstr="DRIVER=MYSQL;UID=root;PWD=;DATABASE=student;SERVER=LOCALHOST";
try{
   m_con->Open(_bstr_t(sqlstr),L"",L"",-1L);
}
catch(_com_error e)
{
   AfxMessageBox((CHAR*)e.Description());
}
使用这个连接字符串时,执行后错误为:
[Microsoft][ODBC 驱动程序 管理器]未发现数据源名称并且未指定默认驱动程序。
注:在我重装系统之前,同样是上面的程序,没有任何问题。
我现在使用的MYSQL的版本为:MYSQL 3.23.54;   MYSQL ODBC 3.51;
mysql服务已启动
换用连接字符串:
sqlstr="Prividor=MYSQL ODBC 3.51;Persist Security Info=False;User ID=root;Initial Catalog=ep023system;Data Source=LOCALHOST";
出现的错误为:没找到提供者
 ~~~~头都大了~~~~~~~~~~
先谢过各位大哥的帮忙~~~~

解决方案 »

  1.   

    Why not try another method: See my method using C language:
    #include <stdio.h>
    #include <mysql.h>
    int main() {        int i,j;
            LoanItem *loanitems;
            chdir(LOG_DIR);        /* create a new MYSQL object */
            conn = mysql_init(NULL);        /* connect to database */
            if(mysql_real_connect(conn,"freetool","lxxx","xxx","onlinelib",0,NULL,0)==NULL){
                    fprintf(stderr, "%s (%u) : %s\n", \
                                    "faile in connecting to DB", \
                                    mysql_errno(conn), \
                                    mysql_error(conn));
                    exit(-2);
            }        sprintf(querystring, " SELECT a.TransID, a.BookID, b.BookName, a.HRID, c.EnglishName as USER, c.EmailAddress, a.Las
    tUpdateTime, c.handle, b.Category , a.CurrentStatus
            from Transaction a, BOOK b, User c
            WHERE a.BookID=b.BookID and a.HRID=c.HRID
            and (b.Status='BORROWED' or b.Status='RESERVED_B')
            and b.SendMAIL='YES'
            and
            (
            (a.CurrentStatus='BORROWED' and  UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(
    a.LastUpdateTime)>%u)
            or
            (a.CurrentStatus='RENEWED' and UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(a.
    LastUpdateTime)>%u)
            )
            order by a.HRID
            ",BMAXDUR, RNMAXDUR );        if(mysql_real_query(conn, querystring, strlen(querystring)) != 0) {
                    fprintf(stderr, "Failed in SELECT query : %s\n", querystring);.......
      

  2.   

    MyICQ就是用MySQL的,有源码,不妨参考一下。
      

  3.   

    我的机器上没有mysql.h文件。mysql.h好象不是VC++自带的东西。
      

  4.   

    mysql.h在你的MYSQL安装包的INCLUDE目录下。
      

  5.   

    这个原因是因为你的ODBC驱动没有安装,请到www.mysql.com上面去下载WINDOWS版本的MYODBC驱动。安装驱动之后,应该能解决问题。问题不出在VC上面。
      

  6.   

    说错了,你可以看一下你的MYSQL安装目录,其中include 目录下面有你要的文件。
    另外,可以参考一下他提供的samples目录下的例子文件,是一个C++程序,应该对你有帮助。
    注意,运行的时候,需要把MYSQL的运行库文件拷贝到你的目录。我安装的是mysql4.0.11gama版本。应该差不多。
      

  7.   

    问题的原因还是没找到,不过,用楼上的那位大侠的方法试了一下,MYSQL自带的那个TEST
    能够正确执行。不过,重装系统以前的程序要是全改的话,还真要命呀`~~
      

  8.   

    我记得以前用的MYSQL好象是3.0以下版本的,而且还没装MYODBC,程序跑的很欢呀~~~~
    时代不同了~~~~晕呀~~~已经在这个问题上耗了两天了