VC实现Access2000文件密码操作技巧

1、给没有密码的数据库添加密码:

hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=d:\\DB\\REMO.mdb;Mode=Share Deny Read|Share Deny Write", "","",0);
m_pConnection->Execute("ALTER DATABASE PASSWORD [123] NULL",NULL,adCmdText);

以上是设置密码为123

2、将密码123改为456:

hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=d:\\DB\\REMO.mdb;Jet OLEDB:DataBase Password=SANYCOM;Mode=Share Deny Read|Share Deny Write","","",0);
m_pConnection->Execute("ALTER DATABASE PASSWORD [456] [123]",NULL,adCmdText);

注意和1中的不同:Open的第一个参数中多了密码部分,这样才能正常开发数据库。

注意:open中的第一个参数中的Data Source=完整路径\文件名.mdb(没有完整路径open失败)

3、访问有密码的数据库

方法一:

hr = m_pConnection->Open("DSN=REMO","Admin","456",0);
//其中REMO为数据源,合适数据源存在的情况,当然如果open失败可以重新设置数据源(见后面)

方法二:

hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=d:\\DB\\REMO.mdb;Jet OLEDB:DataBase Password=456;Mode=Share Deny Read|Share Deny Write","","",0);

注意:第2,3个参数为空,参数值已经在第一个参数里了,缺点:数据源位置在程序中写死了,不好,最好动态获得数据库文件位置,用GetModuleFileName()很方便的。

4、在程序中设置数据源的方法:

//设置数据库文件的位置在SMC的上一目录
//-----------------------------------------------------------
CString sPath;
//得到可执行程序的完整路径和程序名
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
// AfxMessageBox(sPath);
int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);
// nPos=sPath.ReverseFind('\\');
// sPath=sPath.Left (nPos);
//得到数据库文件的路径和文件名
CString lpszFile = sPath + "\\REMO.mdb";
m_strFilePath = lpszFile;
char* szDesc;
int mlen;
szDesc=new char[256];
sprintf(szDesc,"DSN=%s? DESCRIPTION=远程车载控制数据源? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","REMO",lpszFile,sPath);
//AfxMessageBox(szDesc);
mlen = strlen(szDesc);
for (int i=0; i<mlen; i++)
{
  if (szDesc[i] == '?')
   szDesc[i] = '\0';
}
//AfxMessageBox(szDesc);
if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft Access Driver (*.mdb)\0",(LPTSTR)szDesc))
{
  MessageBox("创建数据源失败,程序将退出。请手动设置数据源。","警告",MB_ICONHAND| MB_ICONSTOP| MB_ICONERROR);
  //---2004.6.7---add--start--//
  //弹出ODBC配置窗口,进行设置
  char cWinPath[MAX_PATH];
  GetWindowsDirectory(cWinPath,MAX_PATH);
  CString strWinPath = (CString)cWinPath + "\\system32\\odbcad32.exe";
  try{WinExec(strWinPath,1);}
   catch(_com_error e)
   {
    AfxMessageBox(e.Description());
   }
   //---2004.6.7---add---end-//
   PostQuitMessage(0);
  }
delete szDesc;

配置数据源函数SQLConfigDataSource()需要#include <odbcinst.h>支持。

另外,还要加入ODBCCP32.lib库文件

时间: 2024-10-21 20:34:26

VC实现Access2000文件密码操作技巧的相关文章

vc++实现avi文件的操作

为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作. 1.打开和关闭文件 AVIFileOpen ,AVIFileAddRef, AVIFileRelease 2.从文件中读取文件信息 通过AVIFileInfo可以获取avi文件的一些信息,这个函数返回一个AVIFILEINFO结构,通过AVIFileReadData可以用来获取AVIFileInfo函数得不到的信息.这些信息也许不包含在文件的头部,比如拥有

mysql-win7系统安装 VC++时候提示无权限操作dll文件?

问题描述 win7系统安装 VC++时候提示无权限操作dll文件? 微软官网下载的,先是普通用户登录的,先安装2012版的提示无权限操作dll文件,启用administrator用户,安装还是提示无权限!下个2015版的什么都不提示到最后来个安装失败!谁指导一下,我想装wampserver,总是提示缺少dll文件? 解决方案 Windows 7 完美安装 Visual C++ 6.0 http://download.csdn.net/detail/caozhy/7820407 其中VC++下载安

PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)_php技巧

本文实例总结了PHP目录与文件操作技巧.分享给大家供大家参考,具体如下: Demo1.php <?php //将一个路径赋给一个变量 //它目前来说,只是一个字符串,字符串表示的是一个目录的路径 //文件名包含,文件的名称 + 文件的扩展名(就是.后面的文件类型) //文件的扩展名说白了就是文件后缀 $path = 'C:\AppServ\www\Basic6\Demo1.php'; // echo basename($path); // echo '<br/>'; // //dirna

JSP针对XML文件操作技巧实例分析_JSP编程

本文实例讲述了JSP针对XML文件操作技巧.分享给大家供大家参考,具体如下: XML(Extensible Markup   Language)可扩展标记语言,这个基础知识在早些已经学习过.而这篇教程为什么把它放在J2EE下边呢,因为他也是J2EE的13规范之一,虽然XML是W3C万维网组织联盟指定的,并做了规范,所以说也是一种规范,我们也必须按照规范来,和JDBC,Servlet,Jsp,Ejb等一样的. 前边的文章已经介绍了XML的一些基础知识,主要是用来存储,传输数据的,但是这些数据我们怎

Android编程之文件读写操作与技巧总结【经典收藏】_Android

本文实例总结了Android文件读写操作.分享给大家供大家参考,具体如下: 在Android中的文件放在不同位置,它们的读取方式也有一些不同. 本文对android中对资源文件的读取.数据区文件的读取.SD卡文件的读取及RandomAccessFile的方式和方法进行了整理.供参考. 一.资源文件的读取: 1) 从resource的raw中读取文件数据: String res = ""; try{ //得到资源中的Raw数据流 InputStream in = getResources

Android编程之文件读写操作与技巧总结【经典收藏】

本文实例总结了Android文件读写操作.分享给大家供大家参考,具体如下: 在Android中的文件放在不同位置,它们的读取方式也有一些不同. 本文对android中对资源文件的读取.数据区文件的读取.SD卡文件的读取及RandomAccessFile的方式和方法进行了整理.供参考. 一.资源文件的读取: 1) 从resource的raw中读取文件数据: String res = ""; try{ //得到资源中的Raw数据流 InputStream in = getResources

PHP文件读写操作之文件读取方法详解_php技巧

PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数. 读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.文件数据读取(文件操作函数:fgets.file.readfile.feof等) 3.关闭文件(文件操作函数:fclose) 下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取

PHP实现适用于文件内容操作的分页类_php技巧

本文实例为大家分享了PHP实现文件内容操作的分页类,强调一下只针对文件的操作,供大家参考,具体内容如下 <?php class StrPage { private $current; //当前页 private $file; //操作文件 private $totalPage; //总的页数 private $url; //传递的参数 private $pageLen; //每页显示的长度 function __construct( $file,$len = 200 ){ $this->fil

PHP文件读写操作之文件写入代码_php技巧

在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.写入文件(文件操作函数:fwrite等) 3.关闭文件(文件操作函数:f