您的位置:首页 > 数据库

在VC中用ADO动态创建带密码的Access数据库

2010-10-15 15:08 405 查看
首先要创建VC的工程,打开stdafx.h头文件.在其中加入如下两句话

#import "c:/Program Files/Common Files/System/ado/msadox.dll"
#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")
第二句大家非常熟悉.在我们应用ADO进行数据库操作的时候.我们需要导入相应的dll库并且对EOF起别名adoEOF,本文在此就不详细描述了,至于第一句.他是用来创建access数据库的.我们也需要将其导入.

// 访问数据库前先用初始化COM环境。
::CoInitialize(NULL);
// 程序退出时使用释放资源。
::CoUninitialize();
接下来我们开始动态创建Access数据库

HRESULT hr = S_OK;
try
{
ADOX::_CatalogPtr m_pCatalog = NULL;
hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));
if(FAILED(hr))
{
_com_issue_error(hr);
}
else
{
m_pCatalog->Create("Provider=Microsoft.JET.OLEDB.4.0;Data source = c://test.mdb"); }
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
执行过以上代码后,你已经可以看见刚才创建的数据库文件了.接下来我们要将其设置密码,代码如下

_ConnectionPtr m_pConnection;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");

if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c://test.mdb;Mode=Share Deny Read|Share Deny Write", "","",0);

//注意数据库的路径应该是绝对路径.否则可能出现错误,Mode指定为独占方式打开
m_pConnection->Execute("ALTER DATABASE PASSWORD [123] NULL",NULL,0);
//这里将密码修改为123
}
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}

OK.这样动态创建的带密码数据库就完成了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: