程序: 创建、压缩Access数据库并修改密码演示

access|程序|创建|数据|数据库|压缩

* --------------------------------------------
* 程序: 创建、压缩Access数据库并修改密码演示
* 设计: 红雨
* --------------------------------------------
Local lcMdbFile, lcRetuStr
lcMdbFile = [C:\Temp\TestCreaMdbFile.mdb]
lcPswd1 = [test1]
lcPswd2 = [test2]
lcPswd3 = [test3]
lcRetuStr = [创建、压缩Access数据库并修改密码演示:] + Chr(13)

If CreateMDB( lcMdbFile, lcPswd1)
    lcRetuStr = lcRetuStr + Chr(13) + [1、创建数据库成功         - 密码: ] + lcPswd1
    If CompactMDB( lcMdbFile, lcPswd1, lcPswd2 )
        lcRetuStr = lcRetuStr + Chr(13) + [2、压缩并修改密码成功     - 密码: ] + lcPswd2
        If ChangeMdbPassword( lcMdbFile, lcPswd2, lcPswd3 )
            lcRetuStr = lcRetuStr + Chr(13) + [3、单独修改数据库密码成功 - 密码: ] + lcPswd3
        Else
            lcRetuStr = lcRetuStr + Chr(13) + [3、单独修改数据库密码失败]
        Endif
    Else
        lcRetuStr = lcRetuStr + Chr(13) + [2、压缩并修改密码失败]
    Endif
Else
    lcRetuStr = lcRetuStr + Chr(13) + [1、创建数据库失败]
Endif

= MessageBox( lcRetuStr, 0+64+0, [红雨提示] )
Return

* --------------------------------------------
Function CreateMDB( tcMdbFile, tcPswdStr )
    * 创建 Access 数据库文件(.mdb)
    Local IsOK
    IsOK = .F.
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcPswdStr = iif(Type([tcPswdStr])=[C], tcPswdStr, [])
    If File(tcMdbFile)
        Erase (tcMdbFile)
    Endif
    If !File(tcMdbFile)
        IsOK = .T.
        Local loEngine, lcOldError, lcCmdStrs
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        loCatalog = CreateObject( [ADOX.Catalog] )
        lcCmdStrs = [Provider=Microsoft.Jet.OLEDB.4.0] ;
            + [;Data Source=] + tcMdbFile ;
            + [;Jet OLEDB:Database Password=] + tcPswdStr
        loCatalog.Create( lcCmdStrs )
        Release loCatalog
        loCatalog = Null
        On Error &lcOldError.
    Endif
    Return IsOK and File(tcMdbFile)
Endfunc

* --------------------------------------------
Function CompactMDB ( tcMdbFile, tcOldPswd, tcNewPswd )
    * 压缩 Access 数据库并设置密码
    Local IsOK
    IsOK = .F.
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcOldPswd = iif(Type([tcOldPswd])=[C], tcOldPswd, [])
    tcNewPswd = iif(Type([tcNewPswd])=[C], tcNewPswd, tcOldPswd)
    If File( tcMdbFile )
        IsOK = .T.
        Local loEngine, lcTmpFile, lcOldError, lcCompOldStr, lcCompNewStr
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        lcTmpFile = Addb(JustPath(tcMdbFile)) + subs(Sys(2015),3) + [.mdb]
        Rename (tcMdbFile) To (lcTmpFile)
        If !File(tcMdbFile) and File(lcTmpFile)
            lcCompOldStr = [Provider=Microsoft.Jet.OLEDB.4.0] ;
                +   [;Data Source=] + lcTmpFile ;
                +   [;Jet OLEDB:Database Password=] + tcOldPswd
            lcCompNewStr = [Provider=Microsoft.Jet.OLEDB.4.0] ;
                +   [;Data Source=] + tcMdbFile ;
                +   [;Jet OLEDB:Database Password=] + tcNewPswd
            loEngine = CreateObject( [JRO.JetEngine] )
            loEngine.CompactDatabase( lcCompOldStr, lcCompNewStr )
            Release loEngine
            loEngine = Null
            If File(tcMdbFile)
                Erase (lcTmpFile)
            Else
                Rename (lcTmpFile) To (tcMdbFile)
            Endif
        Else
            IsOK = .F.
        Endif
        On Error &lcOldError.
    Endif
    Return IsOK and File(tcMdbFile)
Endfunc

* --------------------------------------------
Function ChangeMdbPassword ( tcMdbFile, tcOldPswd, tcNewPswd )
    * 修改 Access 数据库的密码,必须独占打开数据库,使用前请确保没有其他程序使用数据库
    Local IsOK
    IsOK = .F.
    lcRetuStr = []
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcOldPswd = iif(Type([tcOldPswd])=[C], tcOldPswd, [])
    tcNewPswd = iif(Type([tcNewPswd])=[C], tcNewPswd, [])
    If File( tcMdbFile )
        IsOK = .T.
        Local loADODB, lcOldError
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        loADODB = CreateObject( [ADODB.Connection] )
        loADODB.Mode = 12
        loADODB.Provider = [Microsoft.Jet.OLEDB.4.0]
        loADODB.Properties([Jet OLEDB:Database Password]) = tcOldPswd
        loADODB.Open([Data Source=] + tcMdbFile)
        loADODB.Execute('ALTER DATABASE PASSWORD [' + tcNewPswd + '][' + tcOldPswd + ']')
        loADODB.Close
        Release loADODB
        loADODB = Null
        On Error &lcOldError.
    Endif
    Return IsOK
Endfunc

* --------------------------------------------

时间: 2024-12-28 12:29:19

程序: 创建、压缩Access数据库并修改密码演示的相关文章

asp.net 使用access数据库怎么样修改密码

问题描述 我想在页面上实现修改密码的功能,在CS文件中应该怎么写,怎么才能通过搜索数据库中的用户名,然后将其对应的密码存到变量中?代码怎么写,下面是界面图<tableborder="0"cellspacing="0"cellpadding="1"align="center"><td><divalign="center">用户名:</div></td>

C#中使用晚绑定实现压缩Access数据库

C#中使用晚绑定实现压缩Access数据库. VB对Com后期绑定支持得很好,在C#中可以使用反射来实现. 函数实现代码如下:  1 public static void CompactAccessDB(string strMdbName) 2 { 3     string TempMdbName = Application.StartupPath + @"\Temp.mdb"; 4  5     //创建 Jet 引擎对象 6     object objJetEngine = Ac

在VB中压缩ACCESS数据库

如果您在Access数据库.Access项目中删除数据或对象,可能会产生碎片并导致磁盘空间使用效率的降低.同时,数据库文件的大小并未减小,而是不断的增大,直至您的硬盘没有空间.有没有好的处理方法呢?其实,在Access中可以对数据库进行压缩优化以提升Access数据库和Access项目的性能,这样的压缩处理的实质是复制该文件,并重新组织文件在磁盘上的存储方式.但是,在Access项目中进行这样的压缩不会影响到数据库对象(例如表或视图),因为它们是存储在Microsoft SQL Server数据

在ASP程序中访问Access数据库

access|程序|访问|数据|数据库          在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了.而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使用的首选.由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式.         在这种使用模式中,ASP程序无疑是最重要的,是沟通客户端和后台

用C++代码建立和压缩ACCESS数据库文件

ACCESS的数据库引擎MS JET 4.0是目前应用很广的小型数据库引擎,它具有使用简单,费用低廉(基本上是免费),对机器的配置要求低和对操作者的技术要求低等特点.在使用MS JET的时候如果我们的程序能够自动建立和维护所用的*.MDB文件,那么我们的小程序将会显得更专业.下面简单介绍一下如何动态建立*.MDB文件和压缩*.MDB文件的操作,以下代码都是基于ADO数据编程. 1) 动态建立*.MDB文件. #include <adoint.h> #include <adoctint.h

介绍一个用ASP来压缩ACCESS数据库的例子

access|数据|数据库|压缩 <%      oldDB = "d:\net\accessTest.mdb"     bakDB = "d:\net\accessTestBack.mdb"     newDB = "d:\net\accessCompact.mdb"     Set FSO = Server.CreateObject("Scripting.FileSystemObject")     ' back u

在线压缩Access数据库

access|数据|数据库|压缩|在线 While working on BuildDB/Buildapp online Demo, I developed a little function that will compact Access databases over the web. Here's a "no-frills" page that'll compact the databases for you. One problem with Access databases

php 连接 access数据库与修改 删除 增加 数据实例

 代码如下 复制代码 $conn = new com("adodb.connection"); $conn->open("driver={microsoft access driver (*.mdb)}; dbq=".db_path.";uid=;pwd=;"); $rs=new com("adodb.recordset"); $rs->open("select * from [article] orde

通过asp程序来创建access数据库_应用技巧

如下所示: 复制代码 代码如下: Set Catalog_object= Server.CreateObject("ADOX.Catalog") Catalog_object.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/jb51.net.mdb")) 简单的两句话就可以创建出access数据库,在create函数中你只需要提供"