?? maint.pas
字號:
unit MAINT;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin, JEdit, ExtCtrls, ComCtrls, Buttons, DBTables, Db, Grids,
DBGrids, Gauges;
type
TFMMAINT = class(TForm)
BTNYES: TBitBtn;
BTNNO: TBitBtn;
Memo1: TMemo;
DatabaseP: TDatabase;
PUERY: TQuery;
PINS: TQuery;
QUERY1: TQuery;
QINS: TQuery;
QUERY2: TQuery;
Gauge: TGauge;
CB_SYS: TCheckBox;
CB_BMAN: TCheckBox;
CB_BGDS: TCheckBox;
CB_BMEM: TCheckBox;
CB_POSA: TCheckBox;
BGDS_DAT1: TJEdit;
BGDS_DAT2: TJEdit;
Label1: TLabel;
BMEM_DAT1: TJEdit;
Label2: TLabel;
BMEM_DAT2: TJEdit;
POSA_DAT1: TJEdit;
Label3: TLabel;
POSA_DAT2: TJEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure FormActivate(Sender: TObject);
procedure BTNYESClick(Sender: TObject);
procedure BTNNOClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
P_DT :STRING;
PROCEDURE INS_SYSLOG;
PROCEDURE INS_SYSLST;
PROCEDURE INS_SYSPMS;
PROCEDURE INS_SYSPSW;
PROCEDURE INS_BMAN;
PROCEDURE INS_BGDS;
PROCEDURE INS_BMEM;
PROCEDURE INS_POSA;
PROCEDURE INS_POSA_PABCK;
function SQLSERVERFINDFORM_WHEREKEY_DATE(F_NAME, T_DATE1,T_DATE2:STRING):STRING;
public
{ Public declarations }
end;
FUNCTION BOOLEANTOSTR(TB : BOOLEAN):STRING;
var
FMMAINT: TFMMAINT;
implementation
USES UN_UTL, DB_UTL, SYSINI,
MAIND, MAINU;
{$R *.DFM}
FUNCTION BOOLEANTOSTR(TB : BOOLEAN):STRING;
BEGIN
RESULT := '0';
IF TB= TRUE THEN RESULT := '1' ELSE RESULT := '0';
END;
//ACCESS " DATE " WHERE KEY ======================
function TFMMAINT.SQLSERVERFINDFORM_WHEREKEY_DATE(F_NAME, T_DATE1,T_DATE2:STRING):STRING;
VAR T1, T2 : STRING;
BEGIN
RESULT := '';
IF T_DATE1 <> '' THEN T1 := CDATE_TO_EDATE(T_DATE1);
IF T_DATE2 <> '' THEN T2 := CDATE_TO_EDATE(T_DATE2);
IF (TRIM(T1)<>'')AND(TRIM(T2)<>'') THEN
BEGIN
RESULT := 'AND '+F_NAME+'>='''+ T1 +''' AND '+F_NAME+'<='''+ T2 +'''';
END ELSE
BEGIN
IF TRIM(T1)<>'' THEN RESULT := 'AND '+F_NAME+' = '''+ T1 +'''';
IF TRIM(T2)<>'' THEN RESULT := 'AND '+F_NAME+' = '''+ T2 +'''';
END;
END;
PROCEDURE TFMMAINT.INS_SYSLOG;
VAR SGENO,SGKIN,RBPST,PAIDE,BNENO,SGDAT,SGTME,SGMRK : STRING;
BEGIN
MEMO1.Lines.Add('上載系統記錄文件');
QUERY1.SQL.CLEAR; //SERVER===============================
QUERY1.SQL.ADD('SELECT * FROM SYSLOG');
QUERY1.Close;
QUERY1.OPEN;
Gauge.MaxValue := QUERY1.RecordCount;
QUERY1.FIRST;
WHILE NOT QUERY1.EOF DO
BEGIN
//抓取系統 SERVER LOG 編號
SGENO := DBTABLEFINDMAXCNT('MAINP','SYSLOG','SGENO',9,1);
SGKIN := QUERY1.FieldByName('SGKIN' ).AsString;
RBPST := QUERY1.FieldByName('RBPST' ).AsString;
PAIDE := QUERY1.FieldByName('PAIDE' ).AsString;
BNENO := QUERY1.FieldByName('BNENO' ).AsString;
SGDAT := DATETOSTR(QUERY1.FieldByName('SGDAT' ).AsDATETIME);
SGTME := QUERY1.FieldByName('SGTME' ).AsString;
SGMRK := QUERY1.FieldByName('SGMRK' ).AsString;
PINS.Close; // LOCAL INSERT
PINS.SQL.CLEAR;
PINS.SQL.Add('INSERT INTO SYSLOG');
PINS.SQL.Add('( SGENO , SGKIN , RBPST , PAIDE ,');
PINS.SQL.Add(' BNENO , SGDAT , SGTME , SGMRK ');
PINS.SQL.Add(') VALUES (');
PINS.SQL.Add(''''+SGENO+''', ');
PINS.SQL.Add(''''+SGKIN+''', ');
PINS.SQL.Add(''''+RBPST+''', ');
PINS.SQL.Add(''''+PAIDE+''', ');
PINS.SQL.Add(''''+BNENO+''', ');
PINS.SQL.Add(''''+SGDAT+''', ');
PINS.SQL.Add(''''+SGTME+''', ');
PINS.SQL.Add(''''+SGMRK+''') ');
TRY PINS.EXECSQL; EXCEPT MEMO1.Lines.Add('上載系統記錄文件 '+PINS.FieldByName('SGENO').AsString+'更新失敗'); END;
QUERY1.Next;
Gauge.AddProgress(1);
END;
QINS.Close; // LOCAL SYSLOG DELETE
QINS.SQL.CLEAR;
QINS.SQL.Add('DELETE FROM SYSLOG');
TRY QINS.EXECSQL; EXCEPT END;
Gauge.Progress := 0;
END;
PROCEDURE TFMMAINT.INS_SYSLST;
BEGIN
MEMO1.Lines.Add('檢查系統設置');
PUERY.SQL.CLEAR; //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSLST');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;
PUERY.FIRST;
WHILE NOT PUERY.EOF DO
BEGIN
QUERY1.SQL.CLEAR; //LOCAL------------------------
QUERY1.SQL.ADD('SELECT * FROM SYSLST');
QUERY1.SQL.ADD('WHERE LSTID1 = '''+PUERY.FieldByName('LSTID1').AsString+'''');
QUERY1.SQL.ADD(' AND LSTID2 = '''+PUERY.FieldByName('LSTID2').AsString+'''');
QUERY1.Close;
QUERY1.OPEN;
IF QUERY1.EOF = FALSE THEN // UPDATE
BEGIN
// MEMO1.Lines.Add('更新系統設置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString);
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('UPDATE SYSLST ');
QINS.SQL.ADD('SET ');
QINS.SQL.ADD('LSTNAM = '''+PUERY.FieldByName('LSTNAM').AsString+''', ');
QINS.SQL.ADD('LSTMRK = '''+PUERY.FieldByName('LSTMRK').AsString+''' ');
QINS.SQL.ADD('WHERE LSTID1 = '''+PUERY.FieldByName('LSTID1').AsString+'''');
QINS.SQL.ADD(' AND LSTID2 = '''+PUERY.FieldByName('LSTID2').AsString+'''');
TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新系統設置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString+'更新失敗'); END;
END;
IF QUERY1.EOF = TRUE THEN //INSERT
BEGIN
// MEMO1.Lines.Add('新增系統設置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString);
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('INSERT INTO SYSLST ');
QINS.SQL.ADD(' ( LSTID1, LSTID2, LSTNAM, LSTMRK ) ');
QINS.SQL.ADD('VALUES (');
QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTID1').AsString+''', ');
QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTID2').AsString+''', ');
QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTNAM').AsString+''', ');
QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTMRK').AsString+''') ');
TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新系統設置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString+'更新失敗'); END;
END;
PUERY.Next;
Gauge.AddProgress(1);
END;
UNSETWRITE('SYSSET','_DBKIND' ,'0');
Gauge.Progress := 0;
END;
PROCEDURE TFMMAINT.INS_SYSPMS;
VAR BNENO, PMSFUN, PMSNAM, PMSPMS :STRING;
BEGIN
MEMO1.Lines.Add('檢查權限設置');
PUERY.SQL.CLEAR; //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSPMS');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;
PUERY.FIRST;
WHILE NOT PUERY.EOF DO
BEGIN
QUERY1.SQL.CLEAR; //LOCAL------------------------
QUERY1.SQL.ADD('SELECT * FROM SYSPMS');
QUERY1.SQL.ADD('WHERE BNENO = '''+PUERY.FieldByName('BNENO').AsString+'''');
QUERY1.SQL.ADD(' AND PMSFUN= '''+PUERY.FieldByName('PMSFUN').AsString+'''');
QUERY1.Close;
QUERY1.OPEN;
BNENO := PUERY.FieldByName('BNENO' ).AsString;
PMSFUN := PUERY.FieldByName('PMSFUN').AsString;
PMSNAM := PUERY.FieldByName('PMSNAM').AsString;
PMSPMS := BOOLEANTOSTR(PUERY.FieldByName('PMSPMS').AsBOOLEAN);
IF QUERY1.EOF = FALSE THEN // UPDATE
BEGIN
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('UPDATE SYSPMS ');
QINS.SQL.ADD('SET ');
QINS.SQL.ADD('PMSFUN = '''+PMSFUN+''', ');
QINS.SQL.ADD('PMSNAM = '''+PMSNAM+''', ');
QINS.SQL.ADD('PMSPMS = '+PMSPMS+' ');
QINS.SQL.ADD('WHERE BNENO = '''+BNENO +'''');
QINS.SQL.ADD(' AND PMSFUN = '''+PMSFUN +'''');
TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新權限設置 '+PUERY.FieldByName('BNENO').AsString+'更新失敗'); END;
END;
IF QUERY1.EOF = TRUE THEN //INSERT
BEGIN
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('INSERT INTO SYSPMS ');
QINS.SQL.ADD(' ( BNENO, PMSFUN, PMSNAM, PMSPMS ) ');
QINS.SQL.ADD('VALUES (');
QINS.SQL.ADD(' '''+BNENO +''', ');
QINS.SQL.ADD(' '''+PMSFUN+''', ');
QINS.SQL.ADD(' '''+PMSNAM+''', ');
QINS.SQL.ADD(' '+PMSPMS+' ) ');
TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新權限設置 '+PUERY.FieldByName('BNENO').AsString+'更新失敗'); END;
END;
PUERY.Next;
Gauge.AddProgress(1);
END;
Gauge.Progress := 0;
END;
PROCEDURE TFMMAINT.INS_SYSPSW;
VAR BNENO, PSWPSW, PSWPSM, PSWLOG, PSWLOM : STRING;
BEGIN
MEMO1.Lines.Add('檢查密碼設置');
PUERY.SQL.CLEAR; //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSPSW');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;
PUERY.FIRST;
WHILE NOT PUERY.EOF DO
BEGIN
QUERY1.SQL.CLEAR; //LOCAL------------------------
QUERY1.SQL.ADD('SELECT * FROM SYSPSW');
QUERY1.SQL.ADD('WHERE BNENO = '''+PUERY.FieldByName('BNENO').AsString+'''');
QUERY1.Close;
QUERY1.OPEN;
BNENO := PUERY.FieldByName('BNENO').AsString;
PSWPSW := PUERY.FieldByName('PSWPSW').AsString;
PSWPSM := DATETOSTR(PUERY.FieldByName('PSWPSM').AsDATETIME);
PSWLOG := DATETOSTR(PUERY.FieldByName('PSWLOG').AsDATETIME);
PSWLOM := PUERY.FieldByName('PSWLOM').AsString;
IF QUERY1.EOF = FALSE THEN // UPDATE
BEGIN
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('UPDATE SYSPSW ');
QINS.SQL.ADD('SET ');
// QINS.SQL.ADD('PSWPSW = '''+PUERY.FieldByName('PSWPSW').AsString+''', ');
QINS.SQL.ADD('PSWPSW = :PSW ,');
QINS.SQL.ADD('PSWPSM = #'+PSWPSM+'# , ');
QINS.SQL.ADD('PSWLOG = #'+PSWLOG+'# , ');
QINS.SQL.ADD('PSWLOM = '''+PSWLOM+''' ');
QINS.SQL.ADD('WHERE BNENO = '''+BNENO+'''');
QINS.ParamByName('PSW').DataType := FTSTRING;
QINS.ParamByName('PSW').Value := PSWPSW;
TRY QINS.EXECSQL; EXCEPT EXIT ; MEMO1.Lines.Add('更新密碼設置 '+BNENO+'更新失敗'); END;
END;
IF QUERY1.EOF = TRUE THEN //INSERT
BEGIN
QINS.Close; // LOCAL INSERT
QINS.SQL.CLEAR;
QINS.SQL.ADD('INSERT INTO SYSPSW ');
QINS.SQL.ADD(' ( BNENO, PSWPSW, PSWPSM, PSWLOG, PSWLOM ) ');
QINS.SQL.ADD('VALUES (');
QINS.SQL.ADD(' '''+BNENO+''', ');
QINS.SQL.ADD(' :PSW , ');
QINS.SQL.ADD(' #'+PSWPSM+'# , ');
QINS.SQL.ADD(' #'+PSWLOG+'# , ');
QINS.SQL.ADD(' '''+PSWLOM+''') ');
QINS.ParamByName('PSW').DataType := FTSTRING;
QINS.ParamByName('PSW').Value := PSWPSW;
TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新密碼設置 '+BNENO+'更新失敗'); END;
END;
PUERY.Next;
Gauge.AddProgress(1);
END;
Gauge.Progress := 0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -