10月9
1、引入ADO库文件
使用ADO前必须在工程的stdafx.h头文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下所示:
用#import引入ADO库文件
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
3、使用_ConnectionPtr接口
_ConnectionPtr主要是一个连接接口,取得与数据库的连接。它的连接字符串可以是自己直接写,也可以指向一个ODBC DSN。
其中MyDB是数据库名,UID是登录名,PWD是密码,MyTable是数据库表名,UserName是表中的一列
使用ADO前必须在工程的stdafx.h头文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下所示:
用#import引入ADO库文件
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
3、使用_ConnectionPtr接口
_ConnectionPtr主要是一个连接接口,取得与数据库的连接。它的连接字符串可以是自己直接写,也可以指向一个ODBC DSN。
其中MyDB是数据库名,UID是登录名,PWD是密码,MyTable是数据库表名,UserName是表中的一列
_RecordsetPtr pPtr;
if (FAILED(pPtr.CreateInstance("ADODB.Recordset")))
{
AfxMessageBox("Create Instance failed!");
return;
}
CString strSRC;
strSRC="Driver=SQL Server;Server=127.0.0.1;Database=MyDB;UID=sa;PWD=";
CString strSQL = "select * from MyTable";
_variant_t varSRC(strSRC);
_variant_t varSQL(strSQL);
if(FAILED(pPtr->Open(varSQL,varSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox("Open table failed!");
pPtr.Release();
return;
}
while(!pPtr->GetadoEOF())
{
_variant_t varUserName;
varUserName = pPtr->GetCollect ("UserName");
CString strUserName =(char *)_bstr_t(varUserName);
strUserName.TrimRight();//strUserName即是获得的结果
pPtr->MoveNext();
}
pPtr->Close();
pPtr.Release();
if (FAILED(pPtr.CreateInstance("ADODB.Recordset")))
{
AfxMessageBox("Create Instance failed!");
return;
}
CString strSRC;
strSRC="Driver=SQL Server;Server=127.0.0.1;Database=MyDB;UID=sa;PWD=";
CString strSQL = "select * from MyTable";
_variant_t varSRC(strSRC);
_variant_t varSQL(strSQL);
if(FAILED(pPtr->Open(varSQL,varSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox("Open table failed!");
pPtr.Release();
return;
}
while(!pPtr->GetadoEOF())
{
_variant_t varUserName;
varUserName = pPtr->GetCollect ("UserName");
CString strUserName =(char *)_bstr_t(varUserName);
strUserName.TrimRight();//strUserName即是获得的结果
pPtr->MoveNext();
}
pPtr->Close();
pPtr.Release();
作者:Lewen@博雅宇轩
地址:http://www.lewensky.cn/read.php/149.htm
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
The Aladdin Device Driver
让Apache支持asp.net


