| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2581 人关注过本帖
标题:vc怎么与SQL数据库连接?
只看楼主 加入收藏
落在秋天的叶
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2008-6-21
结帖率:50%
收藏
 问题点数:0 回复次数:4 
vc怎么与SQL数据库连接?
老师要我们做课程设计,需要用到vc和数据库连接.但是不知道怎么连接,有哪位高手知道,给说下.谢谢!!!
搜索更多相关主题的帖子: SQL 数据库 
2008-12-03 14:13
LI341151
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-4
收藏
得分:0 
#include "StdAfx.h"

#ifndef __CMYADO_H
#define __CMYADO_H

class CMyAdo
{
public:
    CMyAdo();
    ~CMyAdo();
    BOOL OpenAdo(LPCTSTR lpDSN);
    _RecordsetPtr Query(LPCTSTR lpQuery);
    BOOL Execute(LPCTSTR lpExcute);
    void CloseAdo();
    BOOL IsConnect(){return m_fConnected;}
private:
    _ConnectionPtr m_connection;
    _RecordsetPtr m_recordset;
    _CommandPtr m_command;

    CString m_strSource;
    BOOL m_fConnected;
};
#endif
#include "CMyAdo.h"

CMyAdo::CMyAdo()
{
   m_fConnected = FALSE ;
   ::CoInitialize(NULL);
}

CMyAdo::~CMyAdo()
{

  if(m_recordset !=NULL)
     m_recordset->Close() ;
  m_recordset = NULL ;

  CloseAdo() ;
    ::CoUninitialize();    
  m_fConnected = FALSE ;
}

BOOL CMyAdo::OpenAdo(LPCTSTR lpDSN)//CString source("Driver={SQLServer};Server=Uid=sa;Pwd=;Database=;");
{
    HRESULT hr;
    _bstr_t source(lpDSN);                    
    _bstr_t user("");
    _bstr_t pwd("");
    try{
            hr = m_connection.CreateInstance(__uuidof(Connection));
            if(SUCCEEDED(hr))
                hr = m_connection->Open(source, user, pwd, -1);
            if(SUCCEEDED(hr))
                hr = m_recordset.CreateInstance(__uuidof(Recordset));
            if(SUCCEEDED(hr))
                m_fConnected = TRUE;
            else
                m_fConnected = FALSE;
        }
    catch (_com_error &e){
       MessageBox(0,e.ErrorMessage(),"错误",0);
       m_fConnected = FALSE;
    }
    if(!m_fConnected) MessageBox(0,"ADO数据源初始化失败!","错误",0);
    else  m_strSource = (const char * )source;
    return m_fConnected;
}


/*     ADO 通用查询函数                      */  
/*     调用参数: 正确的SQL 查询语句.         */
/*     可以对一个表查询,也可以对多个表查询   */
/*     返回一个纪录集                        */
/*     如果成功返回一个非空的纪录集          */
/*     如果失败则返回一个NULL的纪录集        */
_RecordsetPtr CMyAdo::Query(LPCTSTR lpQuery)
{
  m_recordset = NULL ;
  _variant_t vRecsAffected ;

  if(!m_fConnected) return NULL ;

  try
  {
    m_recordset = m_connection->Execute(lpQuery,
                                     &vRecsAffected,
                              adOptionUnspecified) ;
  }
  catch(_com_error e)
  {
       MessageBox(0,e.ErrorMessage(),"错误",0);
  }

   return m_recordset ;
}

/*     ADO 通用SQL语句执行函数               */  
/*     调用参数: 正确的SQL 查询语句.         */
/*     可以对一个表插入 修改 删除 操作       */
/*     如果成功返回真                        */
/*     如果失败返回假                        */
BOOL CMyAdo::Execute(LPCTSTR lpExcute)
{
  BOOL  bRet  = FALSE ;
  _variant_t vRecsAffected ;

  if(!m_fConnected) return NULL ;

  try
  {
     m_connection->Execute(lpExcute,
                      &vRecsAffected,
                   adOptionUnspecified) ;
    bRet = TRUE ;
  }
  catch(_com_error e)
  {
     MessageBox(0,e.ErrorMessage(),"错误",0);     
  }

   return bRet  ;
}


void CMyAdo::CloseAdo()
{
 if (m_fConnected)
    m_connection->Close() ;
}

连接的。。 要获取内容 BAIDU下吧
2008-12-04 10:31
LI341151
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-4
收藏
得分:0 
DSN 驱动  ("Driver={SQL Server};Server=机器名;Uid=sa;Pwd=密码;Database=数据库名;");这个要注意
2008-12-04 10:34
江湖未冷
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2008-9-20
收藏
得分:0 
配置数据源
2008-12-04 22:01
落在秋天的叶
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2008-6-21
收藏
得分:0 
谢谢大家 !问题已解决~
2008-12-05 18:37
快速回复:vc怎么与SQL数据库连接?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036065 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved