DatabaseProcApplicationCreatedLinks
sybsystemprocssp_getmessage  31 Aug 14Defects Dependencies

1     
2     
3     /* generic/sproc/getmessage	14.2	4/25/91 */
4     
5     /* Messages from sysmessages
6     ** 17200, "Message number must be greater than or equal to 17000."
7     ** 17201, "'%1!' is not an official language name from Syslanguages."
8     ** 17202, "Message number %1! does not exist in the %2! language."
9     */
10    
11    create procedure sp_getmessage
12        @message_num int,
13        @result varchar(1024) output,
14        @language varchar(30) = NULL
15    as
16    
17        declare @lang_id smallint
18        declare @msg varchar(1024)
19        declare @returncode smallint
20    
21        if @@trancount = 0
22        begin
23            set chained off
24        end
25    
26        set transaction isolation level 1
27    
28        /* 
29        ** Use default language if none specified, 
30        ** and initialize result 
31        */
32        select @lang_id = @@langid, @result = NULL
33    
34        /* Only retrieve external errors */
35        if @message_num < 17000
36        BEGIN
37            /* 17200   "Message number must be greater than or equal to 17000." */
38            select @msg = description from master.dbo.sysmessages
39            where error = 17200
40            print @msg
41            return (1)
42        END
43    
44        /*
45        ** Check that language is valid.
46        */
47        if @language is not NULL
48        BEGIN
49            execute @returncode = sp_validlang @language
50            if @returncode != 0
51            begin
52                /* Us_english is always valid */
53                if @language != "us_english"
54                BEGIN
55                    /* 
56                    ** 17201, "'%1!' is not an official language
57                    **	name from Syslanguages."
58                    */
59                    select @msg = description from master.dbo.sysmessages
60                    where error = 17201
61                        and langid = @@langid
62    
63                    /* Get english if the current language is missing */
64                    if @msg is null
65                        select @msg = description from master.dbo.sysmessages
66                        where error = 17201
67                            and langid is NULL
68    
69                    print @msg, @language
70                    return @returncode
71                END
72    
73                /* set to us_english */
74                select @lang_id = NULL
75            end
76    
77            else
78                select @lang_id = langid from master.dbo.syslanguages
79                where @language = name
80    
81        END
82    
83        /* The langid is assigned 0 since it gets its value from @@langid. */
84        /* For us_english, we have to insert it as NULL and not 0, this is */
85        /* to maintain compatibility with the current conventions          */
86        if @lang_id = 0
87        begin
88            select @lang_id = NULL
89        end
90    
91        /* Get message from the proper place */
92        /* System messages */
93        if @message_num < 20000
94        BEGIN
95            select @result = description from master.dbo.sysmessages
96            where langid = @lang_id
97                and error = @message_num
98    
99            /* Get english if the current language is missing */
100           if @result is null
101               select @result = description from master.dbo.sysmessages
102               where error = @message_num
103                   and (langid is NULL or langid = 0)
104       END
105       else
106       /* User messages */
107       BEGIN
108           /* There is no proper alternate language for user messages */
109           select @result = description from sysusermessages
110           where langid = @lang_id
111               and error = @message_num
112   
113           /* this is in here for compatibility with older revs which */
114           /* by mistake used to add langid as 0 in sysusermessages   */
115           if @result is null and @lang_id is NULL
116               select @result = description from sysusermessages
117               where (langid = 0 or langid is NULL)
118                   and error = @message_num
119   
120       END
121   
122       /* Warn the user if the message can't be found */
123       if @result is null
124       begin
125           /* 17202, "Message number %1! does not exist in the %2! language." */
126           select @msg = description from master.dbo.sysmessages
127           where error = 17202
128               and langid = @@langid
129   
130           if @language is null
131               select @language = @@language
132   
133           if @msg is null
134               select @msg = "Message number %1! does not exist in the %2! language."
135   
136           print @msg, @message_num, @language
137   
138           return (1)
139       end
140   
141       return (0)
142   


exec sp_procxmode 'sp_getmessage', 'AnyMode'
go

Grant Execute on sp_getmessage to public
go
DEFECTS
 MINU 4 Unique Index with nullable columns master..syslanguages master..syslanguages
 MINU 4 Unique Index with nullable columns master..sysmessages master..sysmessages
 MINU 4 Unique Index with nullable columns sybsystemprocs..sysusermessages sybsystemprocs..sysusermessages
 MTYP 4 Assignment type mismatch @lang_id: smallint = int 32
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 61
 QTYP 4 Comparison type mismatch smallint = int 61
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 103
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 117
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 128
 QTYP 4 Comparison type mismatch smallint = int 128
 MGTP 3 Grant to public master..syslanguages  
 MGTP 3 Grant to public master..sysmessages  
 MGTP 3 Grant to public sybsystemprocs..sp_getmessage  
 MGTP 3 Grant to public sybsystemprocs..sysusermessages  
 MUCO 3 Useless Code Useless Brackets 41
 MUCO 3 Useless Code Useless Brackets 138
 MUCO 3 Useless Code Useless Brackets 141
 QAFM 3 Var Assignment from potentially many rows 38
 QAFM 3 Var Assignment from potentially many rows 59
 QAFM 3 Var Assignment from potentially many rows 65
 QAFM 3 Var Assignment from potentially many rows 95
 QAFM 3 Var Assignment from potentially many rows 101
 QAFM 3 Var Assignment from potentially many rows 126
 QISO 3 Set isolation level 26
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error}
39
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error, langid}
60
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error, langid}
66
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error, langid}
96
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error, langid}
102
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique
(error, dlevel, langid)
Intersection: {error, langid}
127
 MTR1 2 Metrics: Comments Ratio Comments: 34% 11
 MTR2 2 Metrics: Cyclomatic Complexity Cyclo: 21 = 23dec - 4exi + 2 11
 MTR3 2 Metrics: Query Complexity Complexity: 82 11

DEPENDENCIES
PROCS AND TABLES USED
reads table sybsystemprocs..sysusermessages  
reads table master..sysmessages (1)  
reads table master..syslanguages (1)  
calls proc sybsystemprocs..sp_validlang  
   reads table master..syslanguages (1)  

CALLERS
called by proc sybsystemprocs..sp_renamedb  
called by proc sybsystemprocs..sp_passwordpolicy  
   called by proc sybsystemprocs..sp_downgrade  
called by proc sybsystemprocs..sp_primarykey  
called by proc sybsystemprocs..sp_help_metrics  
   called by proc sybsystemprocs..sp_metrics  
called by proc sybsystemprocs..sp_displaylevel  
called by proc sybsystemprocs..sp_placeobject  
called by proc sybsystemprocs..sp_role  
called by proc sybsystemprocs..sp_validateconfigname  
   called by proc sybsystemprocs..sp_monitorconfig  
      called by proc sybsystemprocs..sp_sysmon_mdcache  
         called by proc sybsystemprocs..sp_sysmon_analyze  
            called by proc sybsystemprocs..sp_sysmon  
   called by proc sybsystemprocs..sp_helpconfig  
   called by proc sybsystemprocs..sp_countmetadata  
called by proc sybsystemprocs..sp_extendsegment  
called by proc sybsystemprocs..sp_volchanged  
called by proc sybsystemprocs..sp_unbindmsg  
called by proc sybsystemprocs..sp_monitor_disable_usage  
called by proc sybsystemprocs..sp_droptype  
called by proc sybsystemprocs..sp_monitor_list  
called by proc sybsystemprocs..sp_modifythreshold  
called by proc sybsystemprocs..sp_encryption  
   called by proc sybsystemprocs..sp_downgrade  
called by proc sybsystemprocs..sp_monitor_list_montypes  
   called by proc sybsystemprocs..sp_monitor_list  
called by proc sybsystemprocs..sp_shmdumpconfig  
called by proc sybsystemprocs..sp_addremotelogin  
called by proc sybsystemprocs..sp_jdbc_primarykey  
called by proc sybsystemprocs..sp_lock  
called by proc sybsystemprocs..sp_showtext_usage  
   called by proc sybsystemprocs..sp_showtext_output  
      called by proc sybsystemprocs..sp_showtext  
         called by proc sybsystemprocs..sp_helptext_usage  
            called by proc sybsystemprocs..sp_helptext  
         called by proc sybsystemprocs..sp_helptext  
   called by proc sybsystemprocs..sp_showtext  
called by proc sybsystemprocs..sp_errorlog_showhelp  
   called by proc sybsystemprocs..sp_errorlog  
called by proc sybsystemprocs..sp_depends_cols  
   called by proc sybsystemprocs..sp_depends  
called by proc sybsystemprocs..sp_monitor_procstack_usage  
called by proc sybsystemprocs..sp_helpartition  
   called by proc sybsystemprocs..sp_help  
called by proc sybsystemprocs..sp_helpgroup  
   called by proc sybsystemprocs..sp_helpuser  
called by proc sybsystemprocs..sp_ijdbc_tables  
called by proc sybsystemprocs..sp_spaceusage_showhelp  
   called by proc sybsystemprocs..sp_spaceusage  
called by proc sybsystemprocs..sp_helpindex  
   called by proc sybsystemprocs..sp_help  
called by proc sybsystemprocs..sp_ijdbc_getindexinfo  
called by proc sybsystemprocs..sp_foreignkey  
called by proc sybsystemprocs..sp_shmdumpdisp  
   called by proc sybsystemprocs..sp_shmdumpconfig  
called by proc sybsystemprocs..sp_spaceusage_showhelp_display  
   called by proc sybsystemprocs..sp_spaceusage_showhelp_all  
      called by proc sybsystemprocs..sp_spaceusage_showhelp  
called by proc sybsystemprocs..sp_dropuser  
called by proc sybsystemprocs..sp_monitor_help  
called by proc sybsystemprocs..sp_odbc_getprocedurecolumns  
called by proc sybsystemprocs..sp_logiosize  
called by proc sybsystemprocs..sp_dboption  
called by proc sybsystemprocs..sp_modifylogin  
called by proc sybsystemprocs..sp_ddlgen_help  
called by proc sybsystemprocs..sp_ijdbc_getversioncolumns  
called by proc sybsystemprocs..sp_plan_dbccdb  
called by proc sybsystemprocs..sp_listsuspect_db  
called by proc sybsystemprocs..sp_defaultloc  
called by proc sybsystemprocs..sp_objectsegment  
called by proc sybsystemprocs..sp_serverinfo  
   called by proc sybsystemprocs..sp_inform  
called by proc sybsystemprocs..sp_dropkey  
called by proc sybsystemprocs..sp_helpserver  
called by proc sybsystemprocs..sp_check_remote_tempdb  
called by proc sybsystemprocs..sp_droplanguage  
called by proc sybsystemprocs..sp_spaceusage_object_genoutput  
   called by proc sybsystemprocs..sp_spaceusage_object  
      called by proc sybsystemprocs..sp_spaceusage  
called by proc sybsystemprocs..sp_setlockpromote  
   called by proc sybsystemprocs..sp_setpglockpromote  
   called by proc sybsystemprocs..sp_setrowlockpromote  
called by proc sybsystemprocs..sp_cmp_qplans  
   called by proc sybsystemprocs..sp_copy_qplan  
      called by proc sybsystemprocs..sp_copy_all_qplans  
called by proc sybsystemprocs..sp_serveroption  
called by proc sybsystemprocs..sp_helpsort  
called by proc sybsystemprocs..sp_maplogin  
called by proc sybsystemprocs..sp_familylock  
called by proc sybsystemprocs..sp_spaceusage_tranlog_archdata  
   called by proc sybsystemprocs..sp_spaceusage_tranlog  
      called by proc sybsystemprocs..sp_spaceusage  
called by proc sybsystemprocs..sp_indsuspect  
called by proc sybsystemprocs..sp_addsegment  
called by proc sybsystemprocs..sp_monitor_connection_usage  
called by proc sybsystemprocs..sp_grantlogin  
called by proc sybsystemprocs..sp_helpjava  
called by proc sybsystemprocs..sp_compatmode  
called by proc sybsystemprocs..sp_addgroup  
called by proc sybsystemprocs..sp_revokelogin  
called by proc sybsystemprocs..sp_dropdevice  
called by proc sybsystemprocs..sp_aux_encr_verify_downgrade  
called by proc sybsystemprocs..sp_sproc_columns  
called by proc sybsystemprocs..sp_monitor_archive_usage  
called by proc sybsystemprocs..sp_listsuspect_page  
called by proc sybsystemprocs..sp_dropgroup  
called by proc sybsystemprocs..sp_helprotect  
called by proc sybsystemprocs..sp_merge_dup_inline_default  
called by proc sybsystemprocs..sp_forceonline_page  
   called by proc sybsystemprocs..sp_forceonline_db  
called by proc sybsystemprocs..sp_countmetadata  
called by proc sybsystemprocs..sp_clearstats  
called by proc sybsystemprocs..sp_ijdbc_fkeys  
   called by proc sybsystemprocs..sp_ijdbc_exportkey  
   called by proc sybsystemprocs..sp_ijdbc_importkey  
   called by proc sybsystemprocs..sp_ijdbc_getcrossreferences  
called by proc sybsystemprocs..sp_drop_resource_limit  
called by proc sybsystemprocs..sp_logdevice  
called by proc sybsystemprocs..sp_dropalias  
called by proc sybsystemprocs..sp_odbc_fkeys  
called by proc sybsystemprocs..sp_addumpdevice  
called by proc sybsystemprocs..sp_jdbc_getindexinfo  
called by proc sybsystemprocs..sp_monitorconfig  
called by proc sybsystemprocs..sp_mon_archive_data  
   called by proc sybsystemprocs..sp_mon_archive_monTable  
      called by proc sybsystemprocs..sp_mon_archive_deadlock  
called by proc sybsystemprocs..sp_ijdbc_primarykey  
called by proc sybsystemprocs..sp_deviceattr  
called by proc sybsystemprocs..sp_tab_suspectptn  
called by proc sybsystemprocs..sp_ijdbc_getprocedurecolumns  
called by proc sybsystemprocs..sp_changedbowner  
called by proc sybsystemprocs..sp_addlanguage  
called by proc sybsystemprocs..sp_ijdbc_getcolumnprivileges  
called by proc sybsystemprocs..sp_jdbc_columns  
called by proc sybsystemprocs..sp_addserver  
called by proc sybsystemprocs..sp_monitor_report_usage  
called by proc sybsystemprocs..sp_dropremotelogin  
called by proc sybsystemprocs..sp_ijdbc_stored_procedures  
called by proc sybsystemprocs..sp_monitor_disable  
called by proc sybsystemprocs..sp_chgattribute  
called by proc sybsystemprocs..sp_dropmessage  
called by proc sybsystemprocs..sp_setrepdbmode  
called by proc sybsystemprocs..sp_add_resource_limit  
called by proc sybsystemprocs..sp_start_rep_agent  
called by proc sybsystemprocs..sp_jdbc_fkeys  
   called by proc sybsystemprocs..sp_jdbc_getcrossreferences  
   called by proc sybsystemprocs..sp_jdbc_importkey  
   called by proc sybsystemprocs..sp_jdbc_exportkey  
called by proc sybsystemprocs..sp_jdbc_getversioncolumns  
called by proc sybsystemprocs..sp_recompile  
called by proc sybsystemprocs..sp_add_time_range  
called by proc sybsystemprocs..sp_config_rep_agent  
called by proc sybsystemprocs..sp_helplog  
called by proc sybsystemprocs..sp_helpsegment  
called by proc sybsystemprocs..sp_addlogin  
called by proc sybsystemprocs..sp_jdbc_tables  
called by proc sybsystemprocs..sp_locklogin  
   called by proc sybsystemprocs..sp_addlogin  
   called by proc sybsystemprocs..sp_droplogin  
called by proc sybsystemprocs..sp_setrepcol  
called by proc sybsystemprocs..sp_bindmsg  
called by proc sybsystemprocs..sp_spaceusage_runcmd  
   called by proc sybsystemprocs..sp_spaceusage  
called by proc sybsystemprocs..sp_addtabledef  
called by proc sybsystemprocs..sp_monitor_enable_usage  
called by proc sybsystemprocs..sp_dropthreshold  
called by proc sybsystemprocs..sp_forceonline_object  
called by proc sybsystemprocs..sp_droplogin  
called by proc sybsystemprocs..sp_cmp_all_qplans  
called by proc sybsystemprocs..sp_ldapadmin  
called by proc sybsystemprocs..sp_reptostandby  
called by proc sybsystemprocs..sp_addexternlogin  
called by proc sybsystemprocs..sp_monitor_deadlock_count_by  
   called by proc sybsystemprocs..sp_monitor_deadlock  
      called by proc sybsystemprocs..sp_monitor  
called by proc sybsystemprocs..sp_setsuspect_error  
called by proc sybsystemprocs..sp_ijdbc_columns  
called by proc sybsystemprocs..sp_setrepproc  
called by proc sybsystemprocs..sp_spaceusage_showhelp_archive  
   called by proc sybsystemprocs..sp_spaceusage_showhelp_all  
called by proc sybsystemprocs..sp_addalias  
called by proc sybsystemprocs..sp_monitor_procstack  
called by proc sybsystemprocs..sp_bindrule  
called by proc sybsystemprocs..sp_forceonline_db  
called by proc sybsystemprocs..sp_setreptable  
called by proc sybsystemprocs..sp_commonkey  
called by proc sybsystemprocs..sp_dropserver  
called by proc sybsystemprocs..sp_helpdevice  
called by proc sybsystemprocs..sp_spaceusage_showhelp_report  
   called by proc sybsystemprocs..sp_spaceusage_showhelp_all  
called by proc sybsystemprocs..sp_dropexternlogin  
called by proc sybsystemprocs..sp_help  
called by proc sybsystemprocs..sp_bindefault  
called by proc sybsystemprocs..sp_drop_time_range  
called by proc sybsystemprocs..sp_spaceusage_object_archdata  
   called by proc sybsystemprocs..sp_spaceusage_object  
called by proc sybsystemprocs..sp_helplanguage  
called by proc sybsystemprocs..sp_helpconfig  
called by proc sybsystemprocs..sp_depends  
called by proc sybsystemprocs..sp_help_qpgroup  
called by proc sybsystemprocs..sp_spaceusage_object_populate  
   called by proc sybsystemprocs..sp_spaceusage_object  
called by proc sybsystemprocs..sp_helpremotelogin  
called by proc sybsystemprocs..sp_password  
   called by proc sybsystemprocs..sp_addlogin  
called by proc sybsystemprocs..sp_displaylogin  
called by proc sybsystemprocs..sp_stop_rep_agent  
called by proc sybsystemprocs..sp_ijdbc_getbestrowidentifier  
called by proc sybsystemprocs..sp_setrepdefmode  
called by proc sybsystemprocs..sp_defaultdb  
   called by proc sybsystemprocs..sp_modifylogin  
called by proc sybsystemprocs..sp_helpuser  
called by proc sybsystemprocs..sp_oledb_getprocedurecolumns  
called by proc sybsystemprocs..sp_jdbc_getprocedurecolumns  
called by proc sybsystemprocs..sp_fkeys  
called by proc sybsystemprocs..sp_rename  
called by proc sybsystemprocs..sp_tempdb  
called by proc sybsystemprocs..sp_dumpoptimize  
called by proc sybsystemprocs..sp_setlangalias  
called by proc sybsystemprocs..sp_defaultlanguage  
   called by proc sybsystemprocs..sp_modifylogin  
called by proc sybsystemprocs..sp_setsuspect_granularity  
called by proc sybsystemprocs..sp_autoconnect  
called by proc sybsystemprocs..sp_fixindex  
called by proc sybsystemprocs..sp_dropsegment  
called by proc sybsystemprocs..sp_jdbc_stored_procedures  
called by proc sybsystemprocs..sp_logintrigger  
   called by proc sybsystemprocs..sp_modifylogin  
called by proc sybsystemprocs..sp_monitor_archive  
   called by proc sybsystemprocs..sp_monitor_deadlock  
called by proc sybsystemprocs..sp_errorlog  
called by proc sybsystemprocs..sp_showtext_output  
called by proc sybsystemprocs..sp_dboption_flmode  
   called by proc sybsystemprocs..sp_dboption  
called by proc sybsystemprocs..sp_unbindefault  
called by proc sybsystemprocs..sp_monitor_deadlock_usage  
   called by proc sybsystemprocs..sp_monitor_deadlock  
called by proc sybsystemprocs..sp_jdbc_getfunctioncolumns  
called by proc sybsystemprocs..sp_addthreshold  
called by proc sybsystemprocs..sp_remoteoption  
called by proc sybsystemprocs..sp_helpconstraint  
called by proc sybsystemprocs..sp_changegroup  
called by proc sybsystemprocs..sp_displayroles  
called by proc sybsystemprocs..sp_help_query_tuning  
   called by proc sybsystemprocs..sp_query_tuning  
called by proc sybsystemprocs..sp_addtype  
called by proc sybsystemprocs..sp_setreplicate  
called by proc sybsystemprocs..sp_addmessage  
called by proc sybsystemprocs..sp_setsuspect_threshold  
called by proc sybsystemprocs..sp_helpdb  
called by proc sybsystemprocs..sp_jdbc_getcolumnprivileges  
called by proc sybsystemprocs..sp_jdbc_getbestrowidentifier  
called by proc sybsystemprocs..sp_unbindrule  
called by proc sybsystemprocs..sp_configure  
   called by proc sybsystemprocs..sp_setlockpromote  
   called by proc sybsystemprocs..sp_configure  
called by proc sybsystemprocs..sp_droplockpromote  
   called by proc sybsystemprocs..sp_dropglockpromote  
   called by proc sybsystemprocs..sp_droprowlockpromote  
called by proc sybsystemprocs..sp_showpsexe  
called by proc sybsystemprocs..sp_helpcomputedcolumn  
   called by proc sybsystemprocs..sp_help  
   called by proc sybsystemprocs..sp_helpindex  
called by proc sybsystemprocs..sp_bindcache  
   called by proc sybsystemprocs..sp_unbindcache  
called by proc sybsystemprocs..sp_adduser  
called by proc sybsystemprocs..sp_helpkey  
   called by proc sybsystemprocs..sp_help  
called by proc sybsystemprocs..sp_spaceusage_tranlog_genoutput  
   called by proc sybsystemprocs..sp_spaceusage_tranlog