1、加入以下三个pas文件。
2、在MainModule中UniGUIMainModuleCreate事件中读取ini配置。
uses
System.IniFiles;
var
myfile: string;
Ini: TIniFile;
dbstren, dbuseren, dbpassen: string;
begin
myfile := UniServerModule.StartPath + 'sysSetting.ini';
Ini := TIniFile.Create(myfile);
dbstren := Ini.ReadString('application', 'dbHost', '127.0.0.1');
dbuseren := Ini.ReadString('application', 'dbuser', 'root');
dbpassen := Ini.ReadString('application', 'dbpassword', 'root');
end;
3、解密读取的相关变量。
var
KeyBit: TKeyBit;
APaddingMode: TPaddingMode;
myfile, dbconnstr: string;
Ini: TIniFile;
dbstren, dbuseren, dbpassen: string;
dbstr, dbuser, dbpass: string;
begin
myfile := UniServerModule.StartPath + 'sysSetting.ini';
Ini := TIniFile.Create(myfile);
try
FDConn.Close;
FDConn.Params.Clear;
FDConn.DriverName := 'MySQL'; //
KeyBit := kb128;
APaddingMode := pmZeroPadding;
dbstr := AESDecryptStrFromHex(Trim(dbstren), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
dbuser := AESDecryptStrFromHex(Trim(dbuseren), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
dbpass := AESDecryptStrFromHex(Trim(dbpassen), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
FDConn.Params.Add('Server=' + dbstr);
FDConn.Params.Add('User_name=' + dbuser);
FDConn.Params.Add('password=' + dbpass);
FDConn.Params.Add('Database=' + Ini.ReadString('application', 'dbName', 'ungsm'));
FDConn.Params.Add('characterset=gbk');
FDConn.Connected := True;
except
on E: Exception do
begin
Ini.Free;
UniServerModule.Logger.AddLog('连接数据库出错,出错信息:' + E.message);
//showMessage('数据库连接失败!!! 程序运行异常,数据不能保存。');
end;
end;
Ini.Free;
end;