请问怎样用Cdatabase类的OPenEX()函数打开SQLserver数据库
假设数据库名DB1,表为table1

解决方案 »

  1.   

    db.OpenEx(_T("DSN=DB1;UID=***;PSW=***"),CDatabase::noOdbcDialog);//先打开数据库
      

  2.   

    先在控制面班建立ODBC数据源,再用上面的语句打开也就是连接到数据库,然后用CRecordset 建立一个记录集,在记录集里打开你的表
    CDatabase db;
    CResordset m_set(&db);
    m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT * FROM [table1]");
    //在SQL Server数据库的SQL语句里要把关键字如表名、字段名加上[]符号
      

  3.   

    关于ODBC方式编程的你可以找一些别人的例子、文章看看
    http://dev.csdn.net/develop/article/27/27337.shtm
      

  4.   

    错误提示对象名table1无效!
    是怎么回事呀
      

  5.   

    可以啊,
    方法一:
    用函数SQLConfigDatasource
    http://dev.csdn.net/develop/article/27/27338.shtm
    方法二:
    写注册表:
    http://dev.csdn.net/develop/article/25/25607.shtm
      

  6.   

    给你一个SQLConfigDatasource函数的例子:
    CString sPath;
    GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
    sPath.ReleaseBuffer ();
    int nPos;
    nPos=sPath.ReverseFind ('\\');
    sPath=sPath.Left (nPos);
    nPos=sPath.ReverseFind('\\');
        sPath=sPath.Left (nPos);
    CString lpszFile = sPath + "\\lhwy.mdb";

       
        char* szDesc;
    int mlen;
    szDesc=new char[256];
    sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","lhwy",lpszFile,sPath); mlen = strlen(szDesc);
        for (int i=0; i<mlen; i++)
    {
    if (szDesc[i] == '?')
     szDesc[i] = '\0';
    }  if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))
      AfxMessageBox("SQLConfigDataSource Failed");