网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.获取GetLastError返回信息.
.Device Drivers(设备驱动程序).
.Visual C++6.0 API函数操作技巧集.
.C++ 中不规则窗体的快速显示.
.谈谈代码风格──谈谈缩进.
.深度探索C++对象模型(7).
.Windows Sockets:背景知识.
.自己写的一个链表综合程序.
.C语言库函数 (A类字母).
.Taglib 原理和实现之支持El表达式.
.日历表的显示.
.C/C++中动态链接库的创建和调用.
.Turbo C 2.0 使用指南.
.精华:C++编程新手错误语录(续一).
.三层数据库与应用程序服务器的澄.
.来研究一下yahoo的酷图幻灯js代码.
.C语言程序设计(第7章 结构体与共.
.C++箴言:多态基类中将析构函数声.
.C++/CLI思辨录之Object的对象布局.
.C/C++中回调函数初探.

用C++代码建立和压缩ACCESS数据库文件

发表日期:2008-3-8


用C++代码建立和压缩Access数据库文件

作者:陈建初   ACCESS的数据库引擎MS JET 4.0是目前应用很广的小型数据库引擎,它具有使用简单,费用低廉(基本上是免费),对机器的配置要求低和对操作者的技术要求低等特点。在使用MS JET的时候假如我们的程序能够自动建立和维护所用的*.MDB文件,那么我们的小程序将会显得更专业。下面简单介绍一下如何动态建立*.MDB文件和压缩*.MDB文件的操作,以下代码都是基于ADO数据编程。 1) 动态建立*.MDB文件。 #include <adoint.h> #include <adoctint.h> #include <comdef.h> #include <shwapi.h> #pragma comment(lib, "comsupp.lib") #pragma comment(lib, "shlwapi.lib") CComPtr<ADOCatalog>Catalog; HRESULT hr = Catalog.CoCreateInstance(L"ADOX.Catalog"); if (FAILED(hr)) { throw _com_error(hr, NULL); } static const TCHAR szConnStr[] = _T("Provider=Microsoft.Jet.OLEDB.4.0;") _T("Data Source=C:\\TEST1.MDB;"); CComVariant varConn; hr = Catalog->Create(CComBSTR(szConnStr), &varConn); if (FAILED(hr)) { throw _com_error(hr, NULL); } 上面使用了ADOX接口和智能指针的方法,假如你使用#import指令来引入ADOX库那么就更方便了。 #import "c:\program files\common files\system\ado\msadox.dll" using namespace ADOX; _CatalogPtr pCatalog; pCatalog.CreateInstance(__uuidof(Catalog)); pCatalog->Create(CComBSTR(szConnStr));    得到了Catalog对象就可以操作它里面的子对象(Groups, Procedures, Tables, Views, Users)等,例如要检查某个表是否已经存在 :TablesPtr pTables = pCatalog->GetTables(); _Table* pTable = NULL; if (pTables->get_Item(CComVariant(_T("Table Name")), &pTable) == S_OK) { // OK 指定的表存在。 } 使用智能指针的方法同理。 CComPtr<ADOTables>Tables = NULL; Catalog->get_Tables(&Tables); CComPtr<ADOTable>Table = NULL; Tables->get_Item(CComVariant(_T("Table Name")), &Table);
2) 压缩*.MDB文件。 #include <adojet.h> static const TCHAR szSrc[] = _T("Provider=Microsoft.Jet.OLEDB.4.0;") _T("Data Source=C:\\TEST1.MDB;"); //_T("Jet OLEDB:Engine Type=5;Jet OLEDB:Database PassWord=???"); static const TCHAR szDst[] = _T("Provider=Microsoft.Jet.OLEDB.4.0;") _T("Data Source=C:\\TEST2.MDB;"); //_T("Jet OLEDB:Engine Type=5;Jet OLEDB:Database Password=???");   Jet OLEDB:Engine Type=5表示使用MS JET 4x版本的MDB文件,假如没有给出本属性则系统自动将压缩后的MDB文件转换为当前最新的版本。 CComPtr<IJetEngine>Engine; // if (SUCCEEDED(Engine.CoCreateInstance(__uuidof(JetEngine))))
if (SUCCEEDED(Engine.CoCreateInstance(L"JRO.JetEngine"))) { Engine->CompactDatabase(CComBSTR(szSrc), CComBSTR(szDst)); }   MS的文档指出自MDAC2.6开始便不再包含JET组件,而MDAC2.7是JRO的最后一个版本,而且JRO不能在WIN64上使用。看样子是M$怂恿我们用SQL SERVER了。
上一篇:用CB动态改变显示器分辨率 人气:457
下一篇:用C++产生QL*Loader各类文件 人气:350
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐