📄 u_function.~pas
字号:
unit u_Function;
interface
uses
ADODB, SysUtils, Registry, Windows, Classes, IniFiles;
function ExecSql(sSql : String ; var qry : TADOQuery) : Boolean;
function OpenSql(sSql : String ; var qry : TADOQuery) : Boolean;
function WriteLog(sContent : String) : Boolean;
procedure AutoStart(keyname, keyvalue : String);
function ConnectDB: Boolean;
procedure ReadIni();
procedure WriteIni();
function SplitString(const Source,ch : WideString) : TStringList;
var
dIP : String;
dUser : String;
dpwd : String;
dDB : String;
implementation
uses
uMain;
function SplitString(const Source,ch : Widestring) : TStringList;
var
temp : WideString;
i : Integer;
begin
Result := TStringList.Create;
if Source = '' then exit;
temp := Source;
i := pos(ch, Source);
while i <> 0 do
begin
Result.add(copy(temp, 0, i-1));
Delete(temp, 1, i);
i:=pos(ch, temp);
end;
Result.add(temp);
end;
procedure ReadIni;
var
ini : TIniFile;
begin
try
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'setting.ini');
dIP := ini.ReadString('database', 'IP', '');
dUser := ini.ReadString('database', 'user', '');
dpwd := ini.ReadString('database', 'password', '');
dDB := ini.ReadString('database', 'database', '');
ini.Free;
except
end;
end;
procedure WriteIni;
var
ini : TIniFile;
begin
try
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'setting.ini');
ini.WriteString('database', 'IP', dIP);
ini.WriteString('database', 'user', dUser);
ini.WriteString('database', 'password', dpwd);
ini.WriteString('database', 'database', dDB);
ini.Free;
except
end;
end;
function ConnectDB: Boolean;
var
sCon : String;
begin
Result := False;
sCon := 'Provider=SQLOLEDB.1;Password=' + dpwd
+ ';Persist Security Info=True;User ID=' + dUser
+ ';Initial Catalog=' + dDB + ';Data Source=' + dIP;
with frmMain.adoMain do
begin
if Connected then Close;
ConnectionString := sCon;
try
Open;
except
WriteLog('数据库连接错误');
end;
end;
end;
function ExecSql(sSql: String; var qry: TADOQuery): Boolean;
begin
Result := False;
try
if not frmMain.adoMain.Connected then ConnectDB();
if qry.Active then qry.Close;
qry.SQL.Text := sSql;
qry.ExecSQL;
Result := True;
except
WriteLog(sSql);
ConnectDB();
end;
end;
function OpenSql(sSql: String; var qry: TADOQuery): Boolean;
begin
Result := False;
try
if not frmMain.adoMain.Connected then ConnectDB();
if qry.Active then qry.Close;
qry.SQL.Text := sSql;
qry.Open;
if qry.RecordCount = 0 then exit;
Result := True;
except
WriteLog(sSql);
ConnectDB();
end;
end;
function WriteLog(sContent: String): Boolean;
var
sText : Textfile;
sName : String;
begin
Result := False;
sName := ExtractFilePath(ParamStr(0)) + 'log.txt';
try
AssignFile(sText, sName);
try
Append(sText);
except
Rewrite(sText);
end;
Writeln(sText, datetimetostr(Now()));
Writeln(sText, sContent);
CloseFile(sText);
Result := True;
except
Exit;
end;
end;
procedure AutoStart(keyname, keyvalue : String);
var
Reg : TRegistry;
begin
try
Reg := TRegistry.Create; //创建一个新键
Reg.RootKey := HKEY_LOCAL_MACHINE; //将根键设置为HKEY_LOCAL_MACHINE
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true); //打开一个键
if Reg.ReadString(keyname) <> keyvalue then
Reg.WriteString(keyname, keyvalue); //在Reg这个键中写入数据名称和数据数值
finally
Reg.CloseKey;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -