国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用C++代碼建立和壓縮ACCESS數據庫文件

2019-11-17 05:29:57
字體:
來源:轉載
供稿:網友
用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了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武平县| 南安市| 永仁县| 饶阳县| 游戏| 灵台县| 鹤峰县| 新田县| 胶州市| 乌海市| 泌阳县| 北海市| 东乌珠穆沁旗| 嵊泗县| 榕江县| 西乡县| 宝丰县| 舒城县| 大丰市| 宁化县| 眉山市| 江都市| 台中县| 皮山县| 临清市| 苏尼特左旗| 宝应县| 儋州市| 错那县| 文水县| 永平县| 翼城县| 肇州县| 丰镇市| 康平县| 陇川县| 海伦市| 延吉市| 二连浩特市| 韶山市| 合江县|