换个问题吧。datamodule何时创建以及access里存密码的问题~~~~~~~~~~~~~ (200分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵,原来这个帖是想找个qq的socket的代理的,不过我自己找到了更好的方法:)
结帖会给abc_xp,分的。

我现在不太清楚datamodule何时创建才合理。我的所有单元基本都是动态创建的,只有
datamodule不知如何
Application.CreateForm(TMain, Main);
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TStart, Start);
Main是主窗体,Start是登陆窗口(要连接datamodule2里的adotable连access)那我
datamodule是不是必须这么创建?

另外我用access存储用户名和密码,但是无法加密。别人直接打开access就可以看到密码
了,有什么好办法吗?
 
http://tty.yyun.net/lovejingtao/htm/socket5.htm
http://tty.yyun.net/lovejingtao/htm/qqproxy.htm
http://tty.yyun.net/lovejingtao/htm/proxyexercise.htm
 
http://www.playicq.com/上有例子
 
access加密的话,解密也很好做
建议你把密码加密写入数据库中去
 
datamodule := Tdatamodule.Create(self);

 
Application.CreateForm(TDataModule2, DataModule2);
Start:=TStart.Create(application);
if Start.ShowModal<>mrok then begin //Start里面應該檢查用戶名,密碼的正確性,如果不正確返回一個非mrok值,然後關閉該程序
begin
DataModule2.free;
exit;
end;
Application.CreateForm(TMain, Main);
我覺得這樣更合理,
 
xf-wangyi, 有没有别的好方法?
pdb,datamodule释放后什么时候用再创建?
 
密码不建议用明文存储
你去找一个加密算法,把用户名和密码都加密吧
 
lcl_003:
Application.CreateForm(TDataModule2, DataModule2);
Start:=TStart.Create(application);
if Start.ShowModal<>mrok then begin //Start里面應該檢查用戶名,密碼的正確性,如果不正確返回一個非mrok值,然後關閉該程序
begin
DataModule2.free; //這里是意思是說,用,密碼檢測失敗,要释放DataModule2,然後關閉整個程序
exit;
end;
Application.CreateForm(TMain, Main);

datamodule應該程序開始的時候就創建;在整個程序的運行當中是全局的;
 
pdb,
>>DataModule2.free; //這里是意思是說,用,密碼檢測失敗,要释放DataModule2,然後關閉整個程序
>>datamodule應該程序開始的時候就創建;在整個程序的運行當中是全局的;
我是在start里检测密码,如果失败3次就关闭程序,那应该不用手工释放datamodule2了吧?
既然datamodule是全局的那我就自动创建?

procedure TStart.Button1Click(Sender: TObject);
var
results: variant;
begin
count := count + 1;
results := DataModule2.UserADOTable1.Lookup('user', Edit1.Text, 'pass');
if results = Edit2.Text then
ModalResult := mrok
else
begin
Application.MessageBox('错误的用户名或密码', '信息', MB_OK + MB_ICONwarning);
if (count = 3) then
ModalResult := mrCancel;
end;
Edit1.Text := '';
Edit2.Text := '';

end;
 
lcl_003:
Start里面應該檢查用戶名,密碼的正確性,我不管 Start里面怎麼檢測反正要返回一個成功還是失敗;
當成功的時候繼續運行,失敗就關閉整個程序;
你想做到怎樣?講清楚一點;
Application.CreateForm(TDataModule2, DataModule2);
Start:=TStart.Create(application);
if Start.ShowModal<>mrok then begin //Start里面應該檢查用戶名,密碼的正確性,如果不正確返回一個非mrok值,然後關閉該程序
begin
application.Terminate;
exit;
end;
Application.CreateForm(TMain, Main);


 
pdb, 明白了,咱说的是一样的。我是这么写的
Application.CreateForm(TMain, Main);
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TStart, Start);
if start.ShowModal = mrok then
begin
if FileExists(ExtractFilePath(application.ExeName) + 'Cfg.ini') = false then
begin
SystemCfg := TSystemCfg.Create(application);
SystemCfg.ShowModal;
end;
Application.Run;
end;

我只是想问datamodule有必要一开始就创建吗,现在明白了。

说说access密码的问题吧
 
另外我用access存储用户名和密码,但是无法加密。别人直接打开access就可以看到密码
了,有什么好办法吗?
1.如果想在access把數據庫設置密碼,別人進不去access里直接修改數據庫的記錄,則這樣:
在access里的菜單[工具]---[保全]----[設置數據庫密碼] 設好以後每次進去都有密碼才能操作
2.其實你也可以通過一個加密的算法去生成密碼;如:數據庫里是:1234;
你寫一個算法把1234 生成1294872222這樣不就可以了嗎?
 
楼上的,你认为在access里设密码有用吗?
网上破access密码的软件一大堆
自已去写也就半个小时的事
我觉得用access的话,用它本身的加密码功能少不了
但是最好自已去写一个加密算法,把数据表中的所有数据全加密
这样才能做到比较安全
 
多人接受答案了。
 
后退
顶部