【SQL Server CE2.0】创建加密的数据库(源代码)

php中文网
发布: 2016-06-07 15:32:07
原创
1784人浏览过

HRESULThr = NOERROR; DBPROPSETdbpropset[2]; DBPROPdbprop[1]; // Property array to initialize the provider. DBPROPsscedbprop[2]; // Property array for SSCE security properties INTi = 0; IDBDataSourceAdmin*pIDBDataSourceAdmin = NULL; IUnknow

hresult  hr = noerror;
dbpropset dbpropset[2];
dbprop  dbprop[1]; // property array to initialize the provider.
dbprop  sscedbprop[2]; // property array for ssce security properties
int   i = 0;
idbdatasourceadmin *pidbdatasourceadmin = null;
iunknown   *piunknownsession = null;
idbinitialize  *pidbinitialize = null;

// Create an instance of the OLE DB provider.
hr = CoCreateInstance(CLSID_SQLSERVERCE_2_0, 0, CLSCTX_INPROC_SERVER,
 IID_IDBInitialize, (void**)&pIDBInitialize);
if(FAILED(hr))
{
 RETAILMSG(1,(TEXT("1==CoCreateInstance: %d /r/n"),GetLastError()));
 goto CleanExit;
}

// Initialize property structures.
VariantInit(&dbprop[0].vValue);
for (i = 0; i {
 VariantInit(&sscedbprop[i].vValue);
}

// Leo:To create a new database, you must specify the DBPROP_INIT_DATASOURCE property to
// specify a name for the database.
dbprop[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
dbprop[0].dwOptions = DBPROPOPTIONS_REQUIRED;
dbprop[0].vValue.vt = VT_BSTR;
dbprop[0].vValue.bstrVal = SysAllocString(L"Encrypted.sdf");
if(NULL == dbprop[0].vValue.bstrVal)
{
 hr = E_OUTOFMEMORY;
 goto CleanExit;
}

// Specify the property for encryption.
sscedbprop[0].dwPropertyID = DBPROP_SSCE_ENCRYPTDATABASE;
sscedbprop[0].dwOptions = DBPROPOPTIONS_REQUIRED;
sscedbprop[0].vValue.vt = VT_BOOL;
sscedbprop[0].vValue.boolVal = VARIANT_TRUE;

// Specify the password.
sscedbprop[1].dwPropertyID = DBPROP_SSCE_DBPASSWORD;
sscedbprop[1].dwOptions = DBPROPOPTIONS_REQUIRED;
sscedbprop[1].vValue.vt = VT_BSTR;
sscedbprop[1].vValue.bstrVal = SysAllocString(L"123456"); //密码
if(NULL == sscedbprop[1].vValue.bstrVal)
{
 hr = E_OUTOFMEMORY;
 goto CleanExit;
}

// Initialize the property sets.
dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
dbpropset[0].rgProperties  = dbprop;
dbpropset[0].cProperties  = sizeof(dbprop)/sizeof(dbprop[0]);

dbpropset[1].guidPropertySet = DBPROPSET_SSCE_DBINIT ;
dbpropset[1].rgProperties = sscedbprop;
dbpropset[1].cProperties = sizeof(sscedbprop)/sizeof(sscedbprop[0]);

淘艾斯网店货源导航测评网
淘艾斯网店货源导航测评网

淘艾斯网店货源导航测评网程序采用ASP+ACCESS编写,程序代码简洁易于管理使用.密码采用MD5加密,数据库可防下载!新加入的IDC审核功能,高级搜索功能等等.淘艾斯网店货源导航测评网程序特点:(1)本程序采用ASP+ACCESS编写,程序代码简洁易于管理使用.密码采用MD5加密,数据库可防下载!新加入的IDC审核功能,高级搜索功能等等.(2)发表评论可显示发表评论用户的IP地址跟地区(3)发表

淘艾斯网店货源导航测评网 0
查看详情 淘艾斯网店货源导航测评网

hr = pIDBInitialize->QueryInterface(IID_IDBDataSourceAdmin,(void **)&pIDBDataSourceAdmin);
if(FAILED(hr))
{
 RETAILMSG(1,(TEXT("1==pIDBInitialize->QueryInterface: %d /r/n"),hr));
 goto CleanExit;
}

// Create and initialize the database.
hr = pIDBDataSourceAdmin->CreateDataSource(sizeof(dbpropset)/sizeof(dbpropset[0]),
 dbpropset, NULL, IID_IUnknown, &pIUnknownSession);
if(FAILED(hr))
{
 RETAILMSG(1,(TEXT("1==pIDBDataSourceAdmin->CreateDataSource: %d /r/n"),hr));
 goto CleanExit;
}
// At this point, the new encrypted database is created.

leanExit:
VariantClear(&dbprop[0].vValue);
SysFreeString(dbprop[0].vValue.bstrVal);

for(i = 0;i {
 VariantClear(&sscedbprop[i].vValue);
}

// Do cleanup tasks here.
if(NULL != pIDBDataSourceAdmin)
{
 pIDBDataSourceAdmin->Release();
 pIDBDataSourceAdmin = NULL;
}
if(NULL != pIDBInitialize)
{
 pIDBInitialize->Release();
 pIDBInitialize = NULL;
}
if(NULL != pIUnknownSession)
{
 pIUnknownSession->Release();
 pIUnknownSession = NULL;
}

return;

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号