许多的书上都讲述了有关vc访问数据库的内容,虽然已经知道如何利用ODBC,DAO以及ADO访问数据库,但是访问的都是access数据库,但是不晓得如何访问sql数据!
   目前项目开发需要访问sql数据库,希望各位高手多多赐教!!!!不胜感激!

解决方案 »

  1.   

    用ADO访问ACCESS和SQLSERVER差不多,就是连接字符串改一下,SQL语句可能有些不一样Provider=SQLOLEDB.1;Password=pass;Persist Security Info=True;User ID=user;Initial Catalog=pubs;Data Source=192.168.0.18
      

  2.   

    http://www.codeproject.com/database/connectionstrings.asp
    更改一下访问字符串,其它的与access相同
      

  3.   

    BOOL CDlgDBConnect::ConnectSQLServer()
    {
    if (m_strService.IsEmpty())
    {
    ::MessageBox(NULL,"·þÎñÃû²»ÄÜΪ¿Õ","Ìáʾ",MB_OK);
    return FALSE;
    }
    if (m_strDatabase.IsEmpty())
    {
    ::MessageBox(NULL,"Êý¾Ý¿â²»ÄÜΪ¿Õ","Ìáʾ",MB_OK);
    return FALSE;
    } theApp.m_pConnection.CreateInstance(__uuidof(Connection)); 
    try                 
    {
    theApp.m_strDatabase=m_strDatabase; CString strConn;
    strConn="Provider=SQLOLEDB.1;Password=";
    strConn+=m_strPassword;
    strConn+=";Persist Security Info=True;User ID=";
    strConn+=m_strUsername;
    strConn+=";Initial Catalog=";
    strConn+=m_strDatabase;
    strConn+=";Data Source=";
    strConn+=m_strService;
    theApp.m_pConnection->Open((_bstr_t)strConn,
       "",
       "",
       adModeUnknown);
    }
    catch(_com_error e)
    {
    ::MessageBox(NULL,e.Description(),"Ìáʾ",MB_OK);
    return FALSE;
    }

    ::MessageBox(NULL,"Êý¾Ý¿âÁ¬½Ó³É¹¦£¡","Ìáʾ",MB_OK);
    return TRUE;}
      

  4.   

    谢谢各位高手!但是本人比较菜,对上面这位兄台用的方法不太懂,m_pConnection是什么类型?
      

  5.   

    本人使用odbc做的,现定义了CDatabase pDB;
                     CRecordset *m_read;
    然后,初始化:m_read = NULL;
    然后在需要连接sql数据库的地方,用程序:
          if(pDB.OpenEx(_T("Driver={SQL Server};Server=LUOHONG;""Trusted_Connection=yes;"
                         "Database=GPSDataforTests;Uid=;Pwd=;"),0))
    {
    m_read = new CRecordset(&pDB); m_read->Open(CRecordset::dynaset,_T("Select distinct * from dataAnalyze28310 ORDER BY Time"));

    if(m_set->IsEOF())
    {
    AfxMessageBox("当前视图没有记录!");
    return;
    }
                      m_read->MoveFirst(); //读第一行需要的列的数据,这里是读的第一列的第一个数据
    m_read->GetFieldValue((short)0, str); pDB.Close();
    }
           else
             {
                      AfxMessageBox("你选择了取消!");
    return;
             }
    这样,也完成了vc对sql最简单的一次操作!
    再次谢谢大家的帮忙!