摘要: _RecordsetPtr& CADOConn::OpenRecordset(CString sql){ ASSERT(!sql.IsEmpty()); //SQL语句不能为空 try { m_pRecordset.CreateInstance(TEXT("ADODB.Recordset")); //创建记录集对象实例 m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); //打开记录集 }catch( 阅读全文
posted @ 2011-11-22 11:05 氺〤魚Oo。 阅读(296) 评论(0) 推荐(0) 编辑
摘要: BOOL CADOConn::OnInitADOConn(){ ::CoInitialize(NULL); //初始化COM环境 try { m_pConnection.CreateInstance(TEXT("ADODB.Connection")); //创建连接对象实例 _bstr_t strConnect="连接语句"; m_pConnection->Open(strConnect,"","",adModeUnKnown); //连接数据库 } catch(_com_error e) //捕获错误 { 阅读全文
posted @ 2011-11-22 10:55 氺〤魚Oo。 阅读(519) 评论(0) 推荐(0) 编辑
摘要: //在类的头文件引入ADO类库#inport "C:\\Programs Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoEOF")class CADOConn{public: _ConnectionPtr m_pConnection; //定义连接对象指针_RecordsetPtr m_pRecordset; //定义记录集对象指针public 阅读全文
posted @ 2011-11-22 10:47 氺〤魚Oo。 阅读(204) 评论(0) 推荐(0) 编辑
摘要: //呵呵,这还是我第一次实现该功能呢,效果不错哦!//在程序中使用背景音乐时,记得包括以下两行代码(使用PlaySound函数//时需要在#include<windows.h>后面加上,//注意:不能加在前面)//#include <mmsystem.h> //#pragma comment(lib, "WINMM.LIB")//注意:导入的音乐格式应为wav//播放音乐函数void CPlaySoundDlg::OnBUTTONPlay() {BOOL bPlay =PlaySound(MAKEINTRESOURCE(IDR_WAVE1),//ID 阅读全文
posted @ 2011-11-18 13:15 氺〤魚Oo。 阅读(327) 评论(0) 推荐(0) 编辑
摘要: //首先用ClassWizard中的Message Maps功能添加对NM_RCLICK消息的响应函数,呵呵,然后编写代码即可//在视图列表点击鼠标右键时的响应函数void CSDIView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult) {// TODO: Add your control notification handler code here//AfxMessageBox(TEXT("你点了鼠标右键!"));CMenu menu;//定义菜单类的一个对象CMenu *pSubMenu=NULL;//定义菜单类的一个指针//加载 阅读全文
posted @ 2011-11-17 19:00 氺〤魚Oo。 阅读(164) 评论(0) 推荐(0) 编辑
摘要: //简单几步就可以了,整个过程描述和截图如下所下:用ClassWizard中的Message Maps功能添加对NM_RCLICK消息的响应函数://添加成功后,直接编辑函数代码即可void CRightMenuView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereAfxMessageBox(TEXT("你在CListView视图中点击了右键!"));*pResult = 0;} 阅读全文
posted @ 2011-11-17 13:48 氺〤魚Oo。 阅读(174) 评论(0) 推荐(0) 编辑
摘要: //呵呵,我在程序中经常用到的有关CListView代码,记录下,以后直接Copy就可以用了,不然还得百度,浪费青春呢!CListCtrl &List=GetListCtrl();//获取高级列表控制的引用List.ModifyStyle(0,LVS_REPORT);//设置列表风格为报表样式//LVS_EX_FULLROWSELECT允许整行选中//LVS_EX_GRIDLINES网格样式List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); 阅读全文
posted @ 2011-11-17 13:24 氺〤魚Oo。 阅读(144) 评论(0) 推荐(0) 编辑
摘要: //昨天在打开数据库的记录集时,出现了一个错误,错误提示为无效的指针类型,上网查了一下,原来是我的//的程序在创建实例时,出现了错误,呵呵,以前我都是这样创建实例的:m_pRecordset.CreateInstance(_uuidof(Connection))//我调试程序错误时的代码如下://创建实例HRESULT hr=adoConn.m_pRecordset.CreateInstance(_uuidof(Connection));if (FAILED(hr)){ _com_error e(hr); AfxMessageBox(e.ErrorMessage()); return;}结果得 阅读全文
posted @ 2011-11-17 12:29 氺〤魚Oo。 阅读(1077) 评论(0) 推荐(0) 编辑
摘要: //呵呵,这应该算是最简单的一个参数了吧Options可以取如下值之一:adCmdText //表明CommandText是文本命令。adCmdTable//表明CommandText是一个表名。adCmdProc //表明CommandText是一个存储过程。adCmdUnknown //未知。 阅读全文
posted @ 2011-11-16 18:45 氺〤魚Oo。 阅读(175) 评论(0) 推荐(0) 编辑
摘要: //打开记录集也不得不考虑锁定类型,呵呵,记录下,权当加深记忆和理解吧!LockType锁定类型,它可以是以下值之一:adLockUnspecified=-1 //未指定adLockReadOnly=1 //只读记录集,默认值。无法更改数据adLockPessimistic=2 //悲观锁定方式。只有在调用Update方法时才锁定记录。这是最安全的锁定机制adLockOptimistc=3 //乐观锁定方式,只有在你调用Update方法时才锁定记录。在此之前仍然可以做数据的更新、插入、删除等操作adLockBatchOptimistic=4 //乐观分批更新。编辑时记录不会锁定,更改、插入及删 阅读全文
posted @ 2011-11-16 18:42 氺〤魚Oo。 阅读(228) 评论(0) 推荐(0) 编辑