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

来源:互联网 发布:linux ntp启动 编辑:程序博客网 时间:2024/06/09 00:22

 本文主要介绍了动态创建access数据库和设置密码的方法.

例如:假设一位用户的历史信息需要存放到本地.我们有许多的用户都需要这样的功能.那么手动创建数据库是很麻烦的.

于是我们可以考虑动态的来添加.但同时你又希望不被他人轻易看见.此时需要设置一个密码.那么这也就是本文要做的事情.

 

我们首先要创建VC的工程,打开stdafx.h头文件.在其中加入如下两句话

 

  1. #import "c:/Program Files/Common Files/System/ado/msadox.dll"
  2. #import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")

第二句大家非常熟悉.在我们应用ADO进行数据库操作的时候.我们需要导入相应的dll库并且对EOF起别名adoEOF,本文在此就不详细描述了,至于第一句.他是用来创建access数据库的.我们也需要将其导入.

 

然后..

  1. // 访问数据库前先用初始化COM环境。  OnInitDialog()中调用即可
  2. ::CoInitialize(NULL);
  3. // 程序退出时使用释放资源。
  4. ::CoUninitialize();

接下来我们开始动态创建Access数据库

  1.     HRESULT hr = S_OK;
  2.     try
  3.     {
  4.         ADOX::_CatalogPtr m_pCatalog = NULL;
  5.         hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));
  6.         if(FAILED(hr))
  7.         {
  8.             _com_issue_error(hr);
  9.         }
  10.         else
  11.         {
  12.             m_pCatalog->Create("Provider=Microsoft.JET.OLEDB.4.0;Data source = c://test.mdb"); //这里的路径可以自己随意创建 ,我简单的填写了一下c://test.mdb
  13.         }
  14.     } 
  15.     catch(_com_error &e)
  16.     {
  17.         AfxMessageBox(e.ErrorMessage());
  18.     }

执行过以上代码后,你已经可以在C盘下看见我们刚才创建的数据库文件了.接下来我们要将其设置密码,代码如下

 

  1.  _ConnectionPtr  m_pConnection;
  2.  try   
  3.     {   
  4.         hr=m_pConnection.CreateInstance("ADODB.Connection");//首先我们创建Connection对象    
  5.         if(SUCCEEDED(hr))   
  6.         {
  7.             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);
  8.             //这里需要注意的是数据库的路径应该是绝对路径.否则可能出现错误,Mode指定为独占方式打开
  9.             m_pConnection->Execute("ALTER DATABASE PASSWORD [123] NULL",NULL,0);
  10.             //这里是将密码修改为123
  11.         }   
  12.     }   
  13.     catch(_com_error   &e)
  14.     {   
  15.         AfxMessageBox(e.ErrorMessage());
  16.     }

 

OK.这样动态创建的带密码数据库就完成了.稍后会继续更新如何动态创建表以及字段等等.并且讲解如何修改数据库的密码.

 

原创粉丝点击