⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 envdeal.4gl

📁 开发工具 Informix-4gl
💻 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 + -