1 | public class DomainDetailsTab extends BasePreparedStatementTab↵ | | 1 | public class TriggerDetailsTab extends BasePreparedStatementTab↵
|
2 | {↵ | | 2 | {↵
|
|
3 | private static final StringManager s_stringMgr =↵ | | 3 | private static final StringManager s_stringMgr =↵
|
4 | StringManagerFactory.getStringManager(DomainDetailsTab.class);↵ | | 4 | StringManagerFactory.getStringManager(↵
|
|
5 | ↵ | | 5 | TriggerDetailsTab.class);↵
|
|
|
| | | 6 | /**↵
|
| | | 7 | * This interface defines locale specific strings. This should be↵
|
| | | 8 | * replaced with a property file.↵
|
| | | 9 | */↵
|
| | | 10 | private interface i18n↵
|
| | | 11 | {↵
|
| | | 12 | // i18n[TriggerDetailsTab.title=Details]↵
|
| | | 13 | String TITLE = s_stringMgr.getString("TriggerDetailsTab.title");↵
|
| | | 14 | // i18n[TriggerDetailsTab.hint=Display trigger details]↵
|
| | | 15 | String HINT = s_stringMgr.getString("TriggerDetailsTab.hint");↵
|
| | | 16 | }↵
|
|
6 | /** SQL that retrieves the data. */↵ | | 17 | /** SQL that retrieves the data. */↵
|
7 | private static String SQL =↵ | | 18 | private static String SQL =↵
|
8 | "select rdb$field_name, " +↵ | | 19 | "↵
|
9 | "rdb$validation_source, " +↵ | | |
|
10 | "rdb$computed_source, " +↵ | | |
|
11 | "rdb$default_source, " +↵ | | |
|
12 | "rdb$field_length, " +↵ | | |
|
13 | "rdb$field_scale, " +↵ | | |
|
14 | "rdb$field_type, " +↵ | | |
|
15 | "rdb$field_sub_type, " +↵ | | |
|
16 | "rdb$missing_source, " +↵ | | |
|
17 | "rdb$edit_string, " +↵ | | |
|
18 | "rdb$character_length, " +↵ | | |
|
19 | "rdb$collation_name, " +↵ | | |
|
20 | "rdb$character_set_name, " +↵ | | |
|
21 | "rdb$field_precision " +↵ | | |
|
22 | "rdb$description↵ | | 20 | SELECT T1.owner AS trigger_owner, " +↵
|
| | | 21 | " T1.trigname AS trigger_name, " +↵
|
| | | 22 | " case T1.event " +↵
|
| | | 23 | " when 'I' then 'INSERT' " +↵
|
| | | 24 | " when 'U' then 'UPDATE' " +↵
|
| | | 25 | " when 'D' then 'DELETE' " +↵
|
| | | 26 | " when 'S' then 'SELECT' " +↵
|
| | | 27 | " else T1.event " +↵
|
| | | 28 | " end AS triggering_event, " +↵
|
| | | 29 | " T2.owner AS table_owner, " +↵
|
| | | 30 | " T2.tabname AS table_name, " +↵
|
| | | 31 | " case T2.tabtype " +↵
|
| | | 32 | " when 'T' then 'TABLE' " +↵
|
23 | " +↵ | | 33 | " when 'V' then 'VIEW' " +↵
|
24 | "from rdb$fields f " +↵ | | 34 | "↵
|
25 | "left outer join rdb$character_sets cs on cs.rdb$character_set_id = f.rdb$character_set_id " +↵ | | |
|
26 | "left outer join rdb$collations cl on (cl.rdb$collation_id = f.rdb$collation_id and cl.rdb$character_set_id = f.rdb$character_set_id) " +↵ | | |
|
27 | "where " +↵ | | |
|
28 | ↵ | | 35 | else T2.tabtype " +↵
|
| | | 36 | " end AS table_type, " +↵
|
| | | 37 | " T1.old AS reference_before, " +↵
|
29 | " rdb$field_name = ?";↵ | | 38 | " T1.new ↵
|
30 | ↵ | | |
|
31 | /**↵ | | |
|
32 | * This interface defines locale specific strings. This should be↵ | | |
|
33 | * replaced with a property file.↵ | | |
|
34 | */↵ | | |
|
35 | private interface i18n↵ | | |
|
36 | {↵ | | |
|
37 | // i18n[firebird.details=Details]↵ | | |
|
38 | String TITLE = s_stringMgr.getString("firebird.details");↵ | | |
|
39 | // i18n[firebird.domainDetails=Display domain details]↵ | | |
|
40 | String HINT = s_stringMgr.getString("firebird.domainDetails");↵ | | |
|
41 | }↵ | | |
|
| | | 39 | AS reference_after " +↵
|
| | | 40 | "FROM informix.systriggers AS T1, " +↵
|
| | | 41 | " informix.systables AS T2 " +↵
|
| | | 42 | "WHERE T2.tabid = T1.tabid " +↵
|
| | | 43 | "and T1.trigname = ? ";↵
|
| | | 44 | ↵
|
42 | /** Logger for this class. */↵ | | 45 | /** Logger for this class. */↵
|
43 | private final static ILogger s_log =↵ | | 46 | private final static ILogger s_log =↵
|
44 | LoggerController.createLogger(DomainDetailsTab.class);↵ | | 47 | LoggerController.createLogger(TriggerDetailsTab.class);↵
|
|
45 | public DomainDetailsTab()↵ | | 48 | public TriggerDetailsTab()↵
|
46 | {↵ | | 49 | {↵
|
47 | super(i18n.TITLE, i18n.HINT, true);↵ | | 50 | super(i18n.TITLE, i18n.HINT, true);↵
|
48 | }↵ | | 51 | }↵
|
|
49 | protected PreparedStatement createStatement() throws SQLException↵ | | 52 | protected PreparedStatement createStatement() throws SQLException↵
|
50 | {↵ | | 53 | {↵
|
51 | ISession session = getSession();↵ | | 54 | ISession session = getSession();↵
|
52 | IDatabaseObjectInfo doi = getDatabaseObjectInfo();↵ | | 55 | IDatabaseObjectInfo doi = getDatabaseObjectInfo();↵
|
53 | if (s_log.isDebugEnabled()) {↵ | | 56 | if (s_log.isDebugEnabled()) {↵
|
54 | s_log.debug("Preparing SQL: "+SQL↵ | | 57 | s_log.debug("Trigger details SQL: "+SQL);↵
|
55 | );↵ | | 58 | s_log.debug("Trigger name: "+doi.getSimpleName());↵
|
56 | }↵ | | 59 | }↵
|
57 | PreparedStatement pstmt = session.getSQLConnection().prepareStatement(SQL);↵ | | 60 | PreparedStatement pstmt = session.getSQLConnection().prepareStatement(SQL);↵
|
58 | if (s_log.isDebugEnabled()) {↵ | | |
|
59 | s_log.debug("setString param: "+doi.getSimpleName());↵ | | |
|
60 | } ↵ | | |
|
61 | pstmt.setString(1, doi.getSimpleName());↵ | | 61 | pstmt.setString(1, doi.getSimpleName());↵
|
62 | return pstmt | | 62 | return pstmt
|