Source:='Provider=MicrosoftJetOLEDB40;Data Source=kumdb';User Id=xxx;PassWord = 123456 CreateDB:=CreateOleObject('ADOXCatalog');
若是不行,看看下面:
2007年03月30日 星期五 13:49
Access数据库在一些小的系统程序中经常用到,为了给数据库中的信息增加一些安全性,最简单的方法就是给Access文件加上密码(当然也可以将数据库中的数据进行加密后在存放到文件里来保护数据,只不过这种方法需要在程序中考虑加密和解密的问题),那针对有密码的文件通过数据库连接字符串来进行连接访问呢?下面是我在网络上找到的一些解决方案。收集起来以备后用。
access数据库加密分3种
以下以access xp为例
1、工具 -> 安全-> 加密/解密数据库,打开时无需任何更改
2、工具 -> 安全-> 设置数据库密码,打开密码为 1 打开时需要使用
"Provider=MicrosoftJetOLEDB40;Data Source=c:\1mdb;User ID=admin;Password=;Jet OLEDB:Database Password=1"
也可以用
"Provider=MicrosoftJetOLEDB40;Data Source=c:\1mdb;User ID='admin';Password=;Jet OLEDB:Database Password='1'"
3、工具 -> 安全-> 用户组与权限 ,用户名为 admin 密码为 rr 用户组文件为 c:\systemmdw,打开时需要使用
"Provider=MicrosoftJetOLEDB40;Data Source=c:\1mdb;User ID=admin;Password=rr;Jet OLEDB:Database Password=1;Jet OLEDB:System database=c:\systemmdw"
也可以用
"Provider=MicrosoftJetOLEDB40;Data Source=c:\1mdb;User ID='admin';Password='rr';Jet OLEDB:Database Password='1';Jet OLEDB:System database=c:\systemmdw"
如果在局域网上共享访问数据库,只要将绝对路径更改为 "\\计算机名\共享目录名\文件名MDB" 即可,比如
"Provider=MicrosoftJetOLEDB40;Data Source=\\access911\floder1\1mdb;User ID='admin';Password='rr';Jet OLEDB:Database Password='1';Jet OLEDB:System database=\\access911\floder1\systemmdw"
直接在连接字串里面定义 MODE 属性达到独占/公享等目的也是可以的,比如:
JetOLEDB:GlobalPartialBulkOps=2;JetOLEDB:RegistryPath=;JetOLEDB:DatabaseLockingMode=1;JetOLEDB:DatabasePassword=;DataSource=D:\dbmdb;Password=;JetOLEDB:EngineType=5;JetOLEDB:GlobalBulkTransactions=1;Provider=MicrosoftJetOLEDB40;JetOLEDB:Systemdatabase=;JetOLEDB:SFP=False;ExtendedProperties=;Mode=ShareDenyNone;JetOLEDB:NewDatabasePassword=;JetOLEDB:CreateSystemDatabase=False;JetOLEDB:Don'tCopyLocaleonCompact=False;JetOLEDB:CompactWithoutReplicaRepair=False;UserID=Admin;JetOLEDB:EncryptDatabase=False
注意:Access 2007 在数据格式上有了很大变化,因此数据提供者已经不是 jet db 40 了,MicrosoftACEOLEDB120 才是 accdb 的数据提供者。
Provider=MicrosoftACEOLEDB120;User ID=Admin;Data Source=C:\Documents and Settings\chenge\My Documents\数据库1accdb;Mode=Share Deny Read|Share Deny Write;Extended Properties="";Jet OLEDB:System database=C:\Documents and Settings\chenge\Application Data\Microsoft\Access\Systemmdw;Jet OLEDB:Registry Path=Software\Microsoft\Office\120\Access\Access Connectivity Engine;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=True
单机版的吧,用ACCESS数据库,装OFFICE的机器上都有这个。
在ACCESS上建两个表,一个表中输入你要自由搭配的景点为,提供的服务和价格。
另一个表中加入时间字段,然后景点,服务,价格。不用输入。
DELPHI里用ADO 控件,连接到你新建的ACCESS数据库。
ADO下面的adoconnection控件,点一下放到你新建的APPLICATION的FORM上。 直接在connectstring属性里选择那个包含JET 4什么的驱动,找到你的ACCESS数据库。connected 后双击变成true
然后在DELPHI 里用adotable点一下放到form上。(如果会SQL语句的话用adoqruery)。把属性connection里输入你的dataconnection 控件的名称。tablename属性输入你在access中建立的第一个有数据的表名。属性active 后双击变成TRUE
data access面板下的datasource 点一下放到form上。属性dataset输入你加过来的adotable的名称。
再data control面板下的dbgrid 点一下放form上。属性datasource 输入你加过来的datasource的名称。
双击dbgrid,点第三个图标(add all fields)
你ACCESS里的数据就都出现在了这个表格里面。调整dbgrid的其它属性,比如align 选择left或TOP
同样的方法从加一个ADOTABLE开始,连上另一个表。并显示在DBGRID中。
最后你选择第一个DBGRID的DOUBLECLICK事件或加一个按钮用CLICK事件。用语句把第一个表里你选择到的景点名服务添加到第2个表中,同时把添加的时间输入到第2个表的时间字段中。并显示在DBGRID中。然后再加一个按钮把第2个表中的数据导出来或直接用报表控件打印同来。
说起来很麻烦,做起来很简单。多尝试,好做的。加油!
以上就是关于delphi怎么创建带密码的ACCESS数据库全部的内容,包括:delphi怎么创建带密码的ACCESS数据库、delphi,编写能修改数据库,然后输入word的程序的编程思维。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)