急!我想在mfc中使用ADO连接sql server数据库,如何设置,怎么连接,怎么建表,多谢!
小弟头一次作,不懂得太多。
请问建立库的时候是不是直接在sql server中建立?还是在mfc中建立?
建立数据库之后需要进行什么设置吗?还是直接在程序中链接数据库就可以?我的意思是是否需要像ODBC那样进行设置?
小弟头一次作,不懂得太多。
请问建立库的时候是不是直接在sql server中建立?还是在mfc中建立?
建立数据库之后需要进行什么设置吗?还是直接在程序中链接数据库就可以?我的意思是是否需要像ODBC那样进行设置?
解决方案 »
- 求助:窗口移动有阴影
- 请教:在Photoshop中,打开一副图像,然后选择一个选区,这时我们去点击一下工具栏或者图层颜色历史记录等窗口,按方向键依旧可以调整选区的位置。
- debug文件夹中的应用程序执行的时候为何图像不显示
- 求救。。。。。关于activex的注册问题
- 两个ACCESS数据库如何将一个的数据合并到另一个!
- 程序在启动完成后,任何自动执行代码!!!
- 寻求屏幕取字源代码,最好是不要动态连接库 的那种
- 系统编程高手请进!!!
- 一直在调内存泄漏,无意间在debug窗口发现了其他的信息,那位大侠解释一下是什么意思??(关键词: 调试)
- 求助
- vc2005中,控件的控件事件窗口显示为空白,只能手动给控件添加事件处理程序
- vc+mysql+ado如何存储和读取图片?
楼主需要看两本书:1、『Microsoft SQL SERVER 2000』(了解和使用DBMS)2、孙鑫老师的『VC++深入详解』(使用VC++进行开发)
class CADOConn //连接和操作数据库的类
{
public:
CADOConn();
virtual ~CADOConn();
bool OnInitADOConn();
_RecordsetPtr GetRecordset(_bstr_t bstrSQL);
bool ExecuteSql(_bstr_t bstrSql);
void ExitConnect();
public:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;};CADOConn::CADOConn()
{}CADOConn::~CADOConn()
{}
bool CADOConn::OnInitADOConn()//连接数据库
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect="Driver={SQL Server};Server=(local);Database=CountMark;UID=xiaofeng;PWD=123";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
return true;
}
_RecordsetPtr CADOConn::GetRecordset(_bstr_t bstrSql)//得到记录集类
{
try{ if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset->Open(bstrSql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); }
catch(_com_error e)
{
AfxMessageBox(e.Description()+"查询记录失败!");
}
return m_pRecordset;
}
bool CADOConn::ExecuteSql(_bstr_t strsql)//查询
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(strsql,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void CADOConn::ExitConnect()//断开连接
{
if(m_pRecordset==NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
//使用这个类就可以像 odbc中一样 而且比较灵活,不需要配置数据源
Name: 连接 SQL SERVER 数据库.
-----------------------------------------------------
Params: [dbsrc]: SQL SERVER 服务器名.
[dbname]: 默认的数据库名.
[user]: 用户名.
[pass]: 密码.
BOOL CAdoConnection::ConnectSQLServer(CString dbsrc, CString dbname, CString user, CString pass, long lOptions)
{
CString strConnect = _T("Provider=SQLOLEDB.1; Data Source=") + dbsrc +
_T("; Initial Catalog=") + dbname +
_T("; User ID=") + user +
_T("; PWD=") + pass;
return Open(LPCTSTR(strConnect), lOptions);
}
==========================================================================*/void ADOConn::OnInitADOConn()
{
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Sea;Data Source=.";
/* Initial Catalog=shujuku;
把这个数据库换一下名就可以了。
//////////////////////////////////////////////////////////////////////////
Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;
如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。c.Integrated Security设置为SSPI和Persist Security Info同时出现,后者设置为False,可保证信息安全。*/
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
}_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_pRecordset;
}BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
e.Description();
return false;
}
}void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}