CString m_sConn="Provider=SQLOLEDB.1;Data Source=192.168.3.9;Initial
Catalog=sode"; //sode是数据库服务器192.168.3.9上的一个数据库
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sa","mapper",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}
-------------------------------------------------------------------------------------
上面的代码是在百度里搜来的。最近一直找这方面的资料学习数据库的连接。可是搜了好多几乎每个写的都不一样,越看越晕。就拿这个例子来说吧。
还请各位学长帮忙详细的每句解释下这段代码。
然后还带着几个问题:
1. _ectiConnonPtr 这个是什么类(MSDN没有找到)?为啥连接数据库没有用到database类呢?
2. Provider=SQLOLEDB.1 这个又是什么呢?
3. CreateInstance("ADODB.Connection 这个是再做什么呢?
4. 因为找不到 _ectiConnonPtr 类所以后面的 CreateInstance 函数和 用到的Open打开数据库函数的参数也查不到,只知道跟database里的open函数不一样。
5 个解决方案
#2
看了。。不过不是很理解
#3
1、_ectiConnonPtr?不是_ConnectionPtr么。准确的说,这个是一个接口指针类型,连接数据库有很多种方法,并不一定用到CDatabase。
2、Provider版本申明,SQL2000和2005是一样的,2008就是1.1了好像,如果没记错的话。
3、为接口对象创建实例啊。参见接口知识。
为什么查不到?
4、干嘛总盯着Database不放?真奇怪。
#4
你的这些问题不算是白,但是太奇怪,奇怪得我不太知道如何回答。
#5
以为看了一些基础课的书是用到database类的。所以就总联系这个类思考。其他的就没见过也不理解了。
#1
#2
看了。。不过不是很理解
#3
1、_ectiConnonPtr?不是_ConnectionPtr么。准确的说,这个是一个接口指针类型,连接数据库有很多种方法,并不一定用到CDatabase。
2、Provider版本申明,SQL2000和2005是一样的,2008就是1.1了好像,如果没记错的话。
3、为接口对象创建实例啊。参见接口知识。
为什么查不到?
4、干嘛总盯着Database不放?真奇怪。
#4
你的这些问题不算是白,但是太奇怪,奇怪得我不太知道如何回答。
#5
以为看了一些基础课的书是用到database类的。所以就总联系这个类思考。其他的就没见过也不理解了。