利用DAO来创建、读写Access文件操作实例
来源:互联网 发布:四川广电电视网络套餐 编辑:程序博客网 时间:2024/04/30 13:35
转自:http://www.newxing.com/Tech/Program/VC/81.html
直接利用DAO来创建、读写Access文件。在下面的示例中,我们将用到两种方法:SQL和DAO类函数来混合实现它们,这样做的目地,我想可以使大家更加方便灵活的运用它们来完成你想要做的东西。在示例程序中默认指定创建数据库名为:Demo.mdb,内部表名为:DemoTable,写入两个字段:名字和年龄,采用和上一篇读写Excel类似的操作,你也可以根据自己需要来动态改变它们。示例程序运行界面如下所示:
下面让我们来简要看看它的实现步骤:
1. 首先,应确保包含进了afxdao.h头文件,可以在StdAfx.h文件中包含它,如下:
3. 接着,先让我们来实现它的创建及写入操作:
4. 最后,让我们来实现它的读取操作。
1. 首先,应确保包含进了afxdao.h头文件,可以在StdAfx.h文件中包含它,如下:
#include <afxdao.h> //加入DAO数据库支持2. 声明DAO库及其记录集变量,可在你的实现文件中加入下面代码
CDaoDatabase db; //数据库CDaoRecordset RecSet(&db); //记录集
3. 接着,先让我们来实现它的创建及写入操作:
void CRWAccessDlg::OnWriteAccess() {//获取主程序所在路径,存在sPath中CString sPath;GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);sPath.ReleaseBuffer ();int nPos;nPos=sPath.ReverseFind ('\\');sPath=sPath.Left (nPos);//默认创建数据名:Demo.mdb,内部表名:DemoTable,表内有二个字段:姓名、年龄CString lpszFile = sPath + "\\Demo.mdb";CFileFind fFind;BOOL bSuccess;bSuccess=fFind.FindFile(lpszFile);fFind.Close (); //是否已有创建好的Demo.mdb文件,没有则创建它if(!bSuccess){db.Create(lpszFile);CString SqlCmd = "CREATE TABLE DemoTable(Name VARCHAR(20),Age VARCHAR(3));";db.Execute(SqlCmd);//打开已创建的数据表RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DemoTable", 0);//加入第一个记录,用SQL语句db.Execute("INSERT INTO DemoTable (Name,Age) VALUES ('徐景周',26)");//加入第二个记录,用DAO涵数RecSet.AddNew();RecSet.SetFieldValue("Name","徐志慧");RecSet.SetFieldValue("Age","21");RecSet.Update();//加入第三个记录,用DAO涵数RecSet.AddNew();RecSet.SetFieldValue("Name","郭徽");RecSet.SetFieldValue("Age","27");RecSet.Update();//关闭记录集及库RecSet.Close();db.Close();AfxMessageBox("Access文件写入成功!");}elseAfxMessageBox("Demo.mdb数据库已经创建!");}
4. 最后,让我们来实现它的读取操作。
void CRWAccessDlg::OnReadAccess() {COleVariant var;// 字段类型var.ChangeType(VT_BSTR, NULL);CString strName,strAge,strFile; //清空列表框m_AccessList.ResetContent();//获取主程序所在路径,存在sPath中CString sPath;GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);sPath.ReleaseBuffer (); int nPos;nPos=sPath.ReverseFind (''\\'');sPath=sPath.Left (nPos);strFile = sPath + "\\demo.mdb";db.Open(strFile);// 打开已创建的demo数据库及DamoTable表RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DemoTable",NULL);while(!RecSet.IsEOF())// 有没有到表结尾{RecSet.GetFieldValue("Name",var);strName = (LPCSTR)var.pbstrVal;RecSet.GetFieldValue("Age",var);strAge = (LPCSTR)var.pbstrVal;m_AccessList.AddString( strName + " --> "+strAge );RecSet.MoveNext();}//关闭记录集及库RecSet.Close();db.Close();}
- 利用DAO来创建、读写Access文件操作实例
- DAO读写ACCESS文件
- 直接通过DAO读写Access文件
- 文件创建、读写操作
- VC 对Access数据库读写操作实例
- 利用StringBuffer读写文件实例
- javaScript中利用ActiveXObject来创建FileSystemObject操作文件 (转贴)
- javaScript中利用ActiveXObject来创建FileSystemObject操作文件
- javaScript中利用ActiveXObject来创建FileSystemObject操作文件 (转贴)
- 创建,打开,读写文件实例
- java文件读写操作实例
- PHP 读写文件操作实例
- C#文件读写操作实例
- oracle利用utl_file包来读写文件
- 利用JavaCSV API来读写csv文件
- 利用JavaCSV API来读写csv文件
- c# 利用反射来创建实例
- 利用ADO连接ACCESS数据库,并进行读写操作(MFC)
- Linux下安装MySQL后设置root密码
- ssh 不需要密码
- Android系统分享
- 360面试题
- java容器学习
- 利用DAO来创建、读写Access文件操作实例
- SITTC教你云计算基础入门(七)
- Filter 过滤器
- Documentation\block\switching-sched.txt
- Linux shell编程 8 ---- 退出+测试
- 关注时间维度
- JFreeChart用法
- flex 组件显示手型 光标
- svn回滚操作(撤销修改)