如何对DBISAM211的数据库进行加密?(100分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
我安装了DBISAM211 for Delphi 5,我看过DBISAM Online Manual里面的Creating Tables部
分,发现里面没有教如何对DBISAM211的数据库进行加密。
我想只有知道密码的程序才可以打开该数据库,我应该怎样设置啊?
 
找到了。
Now let's continue with another example. This time we are going to restructure
a table for the sole purpose of changing the password for an encrypted table.
We'll skip the field and index definitions this time since they will not be
changing from the last example. Once again we'll assume a TDBISAMTable component
with the name MyTable.

begin
with MyDBISAMTable do
begin
DatabaseName:='C:/MYDATA';
TableName:='MYTABLE.DAT';
Active:=False; { always make sure the table is closed first }
RestructureFieldDefs.Update; { update the RestructureFieldDefs property
using the existing field definitions
from the table }
RestructureIndexDefs.Update; { update the RestructureIndexDefs property
using the existing index definitions
from the table }
RestructureTable(LGID_ANSI_STD,SRT_DEFAULT,0,0,True,'NewPassword',
'My Test Table',512,-1,False);
end;
end;

That's all there is to it. 6 lines of code and you have changed the password
for the table. Obviously this code can also be adapted for changing any of the
global information such as the table description or the BLOB block size.

但是,如果用Query打开加了密的数据库的时候,他弹出密码框要我输入密码。
如果想略掉这个输入密码框,在程序中输入密码应该怎么办啊???
 
在软件杂志第六期友谊篇文章,你要就发给你。给我写信leasun@yeah.net
 
leasun:
  信已从haipeng@cmmail.com发出,请查收!
 
leasun:
  我的cmmail信箱出问题了,还是发到sina的吧!!!

其他人有没有答案啊???
 
我们要解密数据库当然是对当前要对数据库提出连接申请的那个“用户”进行密码身份验
证,只有这个“用户”在通过了验证后才可以对数据库进行访问,其它的每个连接需要连
接数据库时都要进行各自的密码身份验证即解密过程。明白了DBISAMSession控件的原理
后,就开始看看怎么使用这个控件来达到解密数据库的功能吧。当然第一步是把
DBISAMSession控件拖放到设计窗体上,接下来就是修改控件的属性和修改一些代码了。
在这里只需要为这个控件的SessionName属性值取一个名字比如session1。然后先把
DBISAMDatabase1控件的Connected属性值设为False,再把SessionName属性指定为
session1,再在DBISAMDatabase1控件的BeforeConnect事件(点Delphi对像窗口的Event
标签页)中写如下代码:
DBISAMSession1.AddPassword('Your password');
注意在上面的字符串'Your password'中必须添入你自己设定的数据库访问密码。还需要修
改DBISAMTable1控件的属性,同样也是先把它的Active属性值设为False,再把
SessionName属性指定为session1。
 
后退
顶部