【发布时间】:2017-08-10 19:26:09
【问题描述】:
我在 Delphi 10.2 中为我的 Sql-lite DB 使用加密我可以加密数据库并在连接参数中设置密码来访问它 - 很好。当连接参数密码为空时,我可以解密并访问它。很好。
问题是我想使用单个程序来访问数据库,无论它是否加密。如果数据库未加密,但连接参数中有密码,我会收到一条错误消息,即数据库“未加密”。尝试将密码设置为空白或“即时”删除,如何及时检测未加密状态以删除密码?
我试过了:
procedure TDataApp10.ConnectAppError(ASender, AInitiator: TObject;
var AException: Exception);
begin
ConnectApp.Connected:= False;
//handle most likely connect error, DB NOT encryped!
FDSQLITESecurity1.Database:= 'C:\VCDat\VCDataApp.sdb';
FDSQLITESecurity1.Password:= 'MyPW';
FDSQLITESecurity1.RemovePassword; //HANGS MESSAGE HERE!!!
ConnectApp.Params.Password:='';
ConnectApp.Connected:= True; //retry or on demand
end;
挂断消息是 CIPHER: DB not encrypted
【问题讨论】:
-
如果您询问有关 FireDAC 的问题,您可能会得到更好的答复,请点击此处:forums.embarcadero.com/forum.jspa?forumID=502。
标签: sqlite delphi encryption