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

📄 executeprocedurepanel.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                try {                    setInProcess(true);                    DatabaseConnection dc = (DatabaseConnection)                                    connectionsCombo.getSelectedItem();                    if (dc == null) {                        GUIUtilities.displayErrorMessage(                                "No database connection is available.");                        return;                    }                    int index = procedureCombo.getSelectedIndex();                    DatabaseProcedure proc =                            (DatabaseProcedure)proceduresModel.getElementAt(index);                    if (proc == null) {                        return;                    }                    //resultsPanel.clearErrorPanel();                    int type = objectTypeCombo.getSelectedIndex();                    String text = type == 0 ? " function " : " procedure ";                    setActionMessage("Executing" + text + proc.getName() + "...");                    if (querySender == null) {                        querySender = new QuerySender(dc);                    } else {                        querySender.setDatabaseConnection(dc);                    }                    SqlStatementResult result = querySender.executeProcedure(proc);                    Hashtable results = (Hashtable)result.getOtherResult();                    if (results == null) {                        setErrorMessage(result.getErrorMessage());                    }                    else {                        setPlainMessage("Statement executed successfully.");                        int updateCount = result.getUpdateCount();                        if (updateCount > 0) {                            setPlainMessage(updateCount +                                     updateCount > 1 ? " rows affected." : " row affected.");                        }                        String SPACE = " = ";                        Enumeration keys = results.keys();                        while (keys.hasMoreElements()) {                            String key = keys.nextElement().toString();                            setPlainMessage(key + SPACE + results.get(key));                        }                    }                }                catch(Exception exc) {                    exc.printStackTrace();                }                finally {                    setInProcess(false);                }            }        });    }    private void setActionMessage(final String message) {        GUIUtils.invokeAndWait(new Runnable() {            public void run() {                resultsPanel.setActionMessage(message);            }        });            }        private void setPlainMessage(final String message) {        GUIUtils.invokeAndWait(new Runnable() {            public void run() {                resultsPanel.setPlainMessage(message);            }        });    }    private void setErrorMessage(final String message) {        GUIUtils.invokeAndWait(new Runnable() {            public void run() {                resultsPanel.setErrorMessage(message);            }        });    }        // ---------------------------------------------    // ConnectionListener implementation    // ---------------------------------------------        /**     * Indicates a connection has been established.     *      * @param the encapsulating event     */    public void connected(ConnectionEvent connectionEvent) {        enableCombos(true);        connectionsModel.addElement(connectionEvent.getSource());    }    /**     * Indicates a connection has been closed.     *      * @param the encapsulating event     */    public void disconnected(ConnectionEvent connectionEvent) {        connectionsModel.removeElement(connectionEvent.getSource());        if (connectionsModel.getSize() == 0) {            enableCombos(false);        }        // TODO: NEED TO CHECK OPEN CONN            }    /**     * Returns the display name for this view.     *     * @return the display name     */    public String getDisplayName() {        return TITLE + (count++);    }    /**     * Indicates the panel is being removed from the pane     */    public boolean tabViewClosing() {        cleanup();        return true;    }            class ParameterTableModel extends AbstractTableModel {                private String UNKNOWN = "UNKNOWN";        private String RETURN = "RETURN";        private String RESULT = "RESULT";        private String IN = "IN";        private String INOUT = "INOUT";        private String OUT = "OUT";                private String[] columns = {"Parameter", "Data Type", "Mode", "Value"};        private ProcedureParameter[] values;                public ParameterTableModel() {}                public ParameterTableModel(ProcedureParameter[] _procParams) {            values = _procParams;        }                public int getRowCount() {            if (values == null) {                return 0;            }                        return values.length;        }                public int getColumnCount() {            return 4;        }                public void clear() {            values = null;        }                public void setValues(ProcedureParameter[] _procParams) {            values = _procParams;        }                public Object getValueAt(int row, int col) {            if (values == null) {                return "";            }            ProcedureParameter param = values[row];                        switch (col) {                                case 0:                    return param.getName();                                    case 1:                                        if (param.getSize() > 0)                        return param.getSqlType() + "(" + param.getSize() + ")";                    else                        return param.getSqlType();                                    case 2:                    int mode = param.getType();                                        switch (mode) {                                                case DatabaseMetaData.procedureColumnIn:                            return IN;                        case DatabaseMetaData.procedureColumnOut:                            return OUT;                        case DatabaseMetaData.procedureColumnInOut:                            return INOUT;                        case DatabaseMetaData.procedureColumnUnknown:                            return UNKNOWN;                        case DatabaseMetaData.procedureColumnResult:                            return RESULT;                        case DatabaseMetaData.procedureColumnReturn:                            return RETURN;                        default:                            return UNKNOWN;                    }                                    case 3:                    String value = param.getValue();                    return value == null ? Constants.EMPTY : value;                                    default:                    return UNKNOWN;                                }                    }                public void setValueAt(Object value, int row, int col) {            ProcedureParameter param = values[row];                        switch (col) {                                case 0:                    param.setName((String)value);                    break;                                    case 1:                    param.setSqlType((String)value);                    break;                                    case 2:                    if (value == IN) {                        param.setType(DatabaseMetaData.procedureColumnIn);                    }                    else if (value == OUT) {                        param.setType(DatabaseMetaData.procedureColumnOut);                    }                    else if (value == INOUT) {                        param.setType(DatabaseMetaData.procedureColumnInOut);                    }                    else if (value == UNKNOWN) {                        param.setType(DatabaseMetaData.procedureColumnUnknown);                    }                    else if (value == RESULT) {                        param.setType(DatabaseMetaData.procedureColumnResult);                    }                    else if (value == RETURN) {                        param.setType(DatabaseMetaData.procedureColumnReturn);                    }                case 3:                    param.setValue((String)value);                                }                        fireTableCellUpdated(row, col);                    }                public String getColumnName(int col) {            return columns[col];        }                public boolean isCellEditable(int row, int col) {                        if (col != 3) {                return false;            }                        ProcedureParameter param = values[row];            int mode = param.getType();            switch (mode) {                                case DatabaseMetaData.procedureColumnIn:                case DatabaseMetaData.procedureColumnInOut:                    return true;                                    case DatabaseMetaData.procedureColumnOut:                case DatabaseMetaData.procedureColumnUnknown:                case DatabaseMetaData.procedureColumnResult:                case DatabaseMetaData.procedureColumnReturn:                    return false;                                    default:                    return true;                                }                    }            } // class ParameterTableModel    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -