📄 envdeal.4gl
字号:
##############################################################
#/--@CLASS
#@DESC env deal with
#@AUTHOR sam ying
#@CREATEDATE 2002/08/21
#@MODIFYLIST
# NAME DATE REASON
#-/
##############################################################
##############################################################
#/--@METHOD
#@VER 1.0
#@DESC 业务端数据库完全安装初始化函数
#@RETURN lv_result=执行结果(TRUE=成功;FALSE=失败)
##############################################################
FUNCTION prpenv_check()
#--/@PARAMETER
DEFINE iv_version CHAR(20)
#-/
DEFINE lv_result SMALLINT,
lv_dbsname CHAR(20),
lv_answer CHAR(1),
lv_execsql CHAR(200)
DEFINE lv_prpdbname CHAR(40),
lv_utidbname CHAR(40),
lv_sffdbname CHAR(40),
lv_reindbname CHAR(40),
lv_prpreindbname CHAR(40),
lv_statdbname CHAR(40),
lv_workflowdbname CHAR(40),
lv_visadbname CHAR(40),
lv_uwdbname CHAR(40),
lv_ltransdbname CHAR(40)
--DEFINE lv_prpdbname_v CHAR(30),
-- lv_utidbname_v CHAR(30),
-- lv_sffdbname_v CHAR(30),
-- lv_reindbname_v CHAR(30),
-- lv_prpreindbname_v CHAR(30),
-- lv_statdbname_v CHAR(30),
-- lv_workflowdbname_v CHAR(30),
-- lv_visadbname_v CHAR(30),
-- lv_uwdbname_v CHAR(30),
-- lv_ltransdbname_v CHAR(30)
DEFINE lv_prpstatus CHAR(16),
lv_utistatus CHAR(16),
lv_sffstatus CHAR(16),
lv_reinstatus CHAR(16),
lv_prpreinstatus CHAR(16),
lv_statstatus CHAR(16),
lv_workflowstatus CHAR(16),
lv_visastatus CHAR(16),
lv_uwstatus CHAR(16),
lv_ltransstatus CHAR(16)
--# 初始化全局变量
INITIALIZE lv_prpdbname,lv_utidbname,lv_sffdbname,lv_reindbname,
lv_prpreindbname,lv_statdbname,lv_workflowdbname,
lv_uwdbname,lv_visadbname,lv_ltransdbname TO NULL
#INITIALIZE lv_prpdbname_v,lv_utidbname_v,lv_sffdbname_v,
# lv_reindbname_v,lv_prpreindbname_v,lv_statdbname_v,
# lv_workflowdbname_v,lv_visadbname_v,lv_uwdbname_v,
# lv_ltransdbname_v TO NULL
INITIALIZE lv_prpstatus,lv_utistatus,lv_sffstatus,lv_reinstatus,
lv_prpreinstatus,lv_statstatus,lv_workflowstatus,
lv_visastatus,lv_uwstatus,lv_ltransstatus TO NULL
INITIALIZE lv_answer,lv_dbsname,lv_execsql TO NULL
LET lv_result = 0
--# 取得相关数据库名称
--# 1.取得当前业务数据库名称,存放在lv_prpdbname
LET lv_prpdbname = fgl_getenv("_PRPINSDB")
IF LENGTH(lv_prpdbname) = 0 Or lv_prpdbname IS NULL
THEN
PROMPT "取不到业务端数据库名,请检查环境变量_PRPINSDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 2.取得当前工具端数据库名称,存放在lv_utidbname
LET lv_utidbname = fgl_getenv("_UTILITYDB")
#LET lv_utidbname_v = lv_utidbname
IF LENGTH(lv_utidbname) = 0 Or lv_utidbname IS NULL
THEN
PROMPT "取不到工具数据库名,请检查环境变量_UTILITYDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 3.取得收付费数据库名称,存放在lv_sffdbname
LET lv_sffdbname = fgl_getenv("_SFFDB")
#LET lv_sffdbname_v = lv_sffdbname
IF LENGTH(lv_sffdbname) = 0 Or lv_sffdbname IS NULL
THEN
PROMPT "取不到收付费数据库名,请检查环境变量_SFFDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 4.取的法分数据库名称,存放在lv_reindbname
LET lv_reindbname = FGL_GETENV("_PRPREINSDB")
#LET lv_reindbname_v = lv_reindbname
IF lv_reindbname IS NULL OR LENGTH(lv_reindbname) = 0
THEN
PROMPT "取不到法分数据库名,请检查环境变量_PRPREINSDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 5.取的商分数据库名称,存放在lv_prpreindbname
LET lv_prpreindbname = FGL_GETENV("_REINSDB")
#LET lv_prpreindbname_v = lv_reinsdbname
IF lv_prpreindbname IS NULL OR LENGTH(lv_prpreindbname) = 0
THEN
PROMPT "取不到商分数据库名,请检查环境变量_REINSDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 6.取得统计数据库名称
LET lv_statdbname = FGL_GETENV("_PRPSTATDB")
#LET lv_statdbname_v = lv_statdbname
IF lv_statdbname IS NULL OR LENGTH(lv_statdbname) = 0
THEN
PROMPT "取不到统计数据库名,请检查环境变量_PRPSTATDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 7.取得工作流数据库名称
LET lv_workflowdbname = FGL_GETENV("_WORKFLOWDB")
#LET lv_workflowdbname_v = lv_workflowdbname
IF lv_workflowdbname IS NULL OR LENGTH(lv_workflowdbname) = 0
THEN
PROMPT "取不到工作流数据库名,请检查环境变量_WORKFLOWDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 8.取得核保核赔数据库名称
LET lv_uwdbname = FGL_GETENV("_UWDB")
#LET lv_uwdbname_v = lv_uwdbname
IF lv_uwdbname IS NULL OR LENGTH(lv_uwdbname) = 0
THEN
PROMPT "取不到核保核赔数据库名,请检查环境变量_UWDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 9.取得单证数据库名称
LET lv_visadbname = FGL_GETENV("_VISADB")
#LET lv_visadbname_v = lv_visadbname
IF lv_visadbname IS NULL OR LENGTH(lv_visadbname) = 0
THEN
PROMPT "取不到核保核赔数据库名,请检查环境变量_VISADBNAME!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# 10.取得航意险中间库
LET lv_ltransdbname = fgl_getenv("_LTRANSDB")
#LET lv_ltransdbname_v = lv_ltransdbname
IF LENGTH(lv_ltransdbname) = 0 Or lv_ltransdbname IS NULL
THEN
PROMPT "取不到业务端数据库名,请检查环境变量_LTRANSDB!按回车键退出:"
ATTRIBUTE(REVERSE) FOR lv_answer
RETURN FALSE
END IF
--# end of 取得相关数据库名称
---------------------------------------------------------------------------
--# 判断相关数据库状态
---------------------------------------------------------------------------
--# 1.判断PrpInsDB数据库是否存在
CALL dbstatus_check(lv_prpdbname) RETURNING lv_prpstatus
--# 2.判断UtilityDB数据库是否存在
CALL dbstatus_check(lv_utidbname) RETURNING lv_utistatus
--# 3.判断收付费据库是否存在
CALL dbstatus_check(lv_sffdbname) RETURNING lv_sffstatus
--# 4.判断法分数据库是否存在
CALL dbstatus_check(lv_reindbname) RETURNING lv_reinstatus
--# 5.判断商分数据库是否存在
CALL dbstatus_check(lv_prpreindbname) RETURNING lv_prpreinstatus
--# 6.判断统计数据库是否存在
CALL dbstatus_check(lv_statdbname) RETURNING lv_statstatus
--# 7.判断工作流数据库是否存在
CALL dbstatus_check(lv_workflowdbname) RETURNING lv_workflowstatus
--# 8.判断核保核赔数据库是否存在
CALL dbstatus_check(lv_uwdbname) RETURNING lv_uwstatus
--# 9.判断单证管理数据库是否存在
CALL dbstatus_check(lv_visadbname) RETURNING lv_visastatus
--# 10.判断航意险中间库是否存在
CALL dbstatus_check(lv_ltransdbname) RETURNING lv_ltransstatus
---------------------------------------------------------------------------
WHENEVER ERROR CONTINUE
---------------------------------------------------------------------------
--# 提示用户确认每个数据库的名字
CLEAR SCREEN
DISPLAY "当前数据库配置信息如下:" AT 2,5
DISPLAY "=======================================================================" AT 3,5
DISPLAY "工具数据库 |",lv_utidbname,"|",lv_utistatus CLIPPED AT 4,5
DISPLAY "-----------------------------------------------------------------------" AT 5,5
DISPLAY "业务系统数据库 |",lv_prpdbname,"|",lv_prpstatus CLIPPED AT 6,5
DISPLAY "-----------------------------------------------------------------------" AT 7,5
DISPLAY "收付费系统数据库 |",lv_sffdbname,"|",lv_sffstatus CLIPPED AT 8,5
DISPLAY "-----------------------------------------------------------------------" AT 9,5
DISPLAY "法分系统数据库 |",lv_reindbname,"|",lv_reinstatus CLIPPED AT 10,5
DISPLAY "-----------------------------------------------------------------------" AT 11,5
DISPLAY "商分系统数据库 |",lv_prpreindbname,"|",lv_prpreinstatus CLIPPED AT 12,5
DISPLAY "-----------------------------------------------------------------------" AT 13,5
DISPLAY "统计系统数据库 |",lv_statdbname,"|" ,lv_statstatus CLIPPED AT 14,5
DISPLAY "-----------------------------------------------------------------------" AT 15,5
DISPLAY "工作流系统数据库 |",lv_workflowdbname,"|",lv_workflowstatus CLIPPED AT 16,5
DISPLAY "-----------------------------------------------------------------------" AT 17,5
DISPLAY "核保核赔系统数据库|",lv_uwdbname,"|",lv_uwstatus CLIPPED AT 18,5
DISPLAY "-----------------------------------------------------------------------" AT 19,5
DISPLAY "单证管理系统数据库|",lv_visadbname,"|",lv_visastatus CLIPPED AT 20,5
DISPLAY "-----------------------------------------------------------------------" AT 21,5
DISPLAY "两意险转数数据库 |",lv_ltransdbname,"|",lv_ltransstatus CLIPPED AT 22,5
DISPLAY "=======================================================================" AT 23,5
OPTIONS PROMPT LINE 24
PROMPT "请确认数据库名称是否正确(y/n):" FOR lv_answer
IF UPSHIFT(lv_answer) != "Y"
THEN
PROMPT "数据库名称不正确,按任意键退出升级程序" FOR lv_answer
EXIT PROGRAM
END IF
CLEAR SCREEN
RETURN TRUE
END FUNCTION
##############################################################
#/--@METHOD
#@DESO
#@RETURN lv_status
#-/
##############################################################
FUNCTION dbstatus_check(iv_dbname)
#--/@PARAMETER
DEFINE iv_dbname CHAR(40)
#-/
DEFINE lv_status CHAR(16)
LET iv_dbname=iv_dbname CLIPPED
WHENEVER ERROR CONTINUE
DATABASE iv_dbname
CASE SQLCA.SQLCODE
WHEN "0"
LET lv_status=" 已存在"
WHEN "-387"
LET lv_status="无权链接"
WHEN "-329"
LET lv_status=" 未建立"
OTHERWISE
LET lv_status="未知错误"
END CASE
WHENEVER ERROR STOP
RETURN lv_status
END FUNCTION
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -