还是数据库编程,好乱啊
vc初学者,想做一小型超市收银软件,想用ado访问数据库。有的书上讲用ado封装。有的书上介绍了ado数据库绑定对话框,孙鑫老师的视频上是直接导入的,并没有测试连接等步骤。那么添加数据库帮定对话框后是不是系统已经生成了一些头文件,可以直接定义变量存放相应字段的值?我想做的软件是,输入商品编号后,显示商品名称,价格等信息再进行计算。用那种方法简单?
[解决办法]
直接导入:
现在stdafx.h中输入#import "C:\Program Files\Common Files\System\ado\msado15.dll " no_namespace rename( "EOF ", "rsEOF ")
连接及测试代码如下:
CoInitialize(NULL);//使用ADO对象之前必须先初始化COM环境
_ConnectionPtr pConn(__uuidof(Connection));//_ConnectionPtr是一个连接对象的智能指针(实际是一个类)。_uuidof是一个取得连接对象的ID值的函数
_RecordsetPtr pRst(__uuidof(Recordset));//记录集智能指针对象
_CommandPtr pCmd(__uuidof(Command));
pConn-> ConnectionString= "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs ";
pConn-> Open( " ", " ", " ",adConnectUnspecified);
pRst=pConn-> Execute( "select * from authors ",NULL,adCmdText);//方法一
/*pRst-> Open( "select * from authors ",_variant_t((IDispatch*)pConn),
adOpenDynamic,adLockOptimistic,adCmdText);*///方法二
/*pCmd-> put_ActiveConnection(_variant_t((IDispatch*)pConn));//方法三(用三个方法的其中之一即可)
pCmd-> CommandText= "select * from authors ";
pRst=pCmd-> Execute(NULL,NULL,adCmdText);*/
while(!pRst-> rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))-> AddString(
(_bstr_t)pRst-> GetCollect( "au_lname "));
pRst-> MoveNext();//移动游标
}
pRst-> Close();
pConn-> Close();
pCmd.Release();//释放智能指针(访问方法用-〉,而在release时则用.)
pRst.Release();
pConn.Release();
CoUninitialize();//释放程序占用的COM资源
[解决办法]
其实哪种方法都是一样的,虽然各有优缺点但差别并不大,你喜欢哪个就用哪个吧