提交 d6012715 编写于 作者: J jurgen

SLQ editor invalidate connection before statement execute.

Statements highlight fixed
上级 15a70d73
......@@ -1260,7 +1260,7 @@ public class CoreMessages extends NLS {
public static String pref_page_sql_editor_label_commit_type;
public static String pref_page_sql_editor_label_error_handling;
public static String pref_page_sql_editor_label_invalidate_before_execute;
public static String pref_page_sql_editor_label_sql_timeout;
public static String pref_page_target_button_use_datasource_settings;
......
......@@ -826,6 +826,7 @@ pref_page_sql_editor_group_scripts=Scripts
pref_page_sql_editor_label_commit_after_line=Commit after line
pref_page_sql_editor_label_commit_type=Commit type
pref_page_sql_editor_label_error_handling=Error handling
pref_page_sql_editor_label_invalidate_before_execute=Invalidate connection before execute
pref_page_sql_editor_label_sql_timeout=SQL statement timeout
pref_page_target_button_use_datasource_settings=Datasource "{0}" settings
pref_page_target_link_show_datasource_settings=Datasource settings
......
......@@ -531,7 +531,7 @@ dialog_select_datasource_error_message=\u0421\u043E\u0437\u0434\u0430\u0439\u044
dialog_select_datasource_error_title=\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
dialog_select_datasource_title=\u0412\u044B\u0431\u043E\u0440 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445
dialog_cursor_view_monitor_rows_fetched=\ \u0441\u0442\u0440\u043E\u043A \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E
confirm_keep_statement_open_message=\u041E\u0431\u044B\u0447\u043D\u043E DBeaver \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0430\u043B\u0442\u0441\u0435\u0442\u044B \u0441\u0440\u0430\u0437\u0443 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0431\u043E\u0440\u043A\u0438. \u041D\u043E \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043E\u043F\u0446\u0438\u044E "\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u043A\u0443\u0440\u0441\u043E\u0440 \u0432 SQL-\u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435" \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445. \u0423\u0447\u0438\u0442\u044B\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441\u044B \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F. \u0425\u043E\u0442\u0438\u0442\u0435 \u043B\u0438 \u0412\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u044D\u0442\u0443 \u043E\u043F\u0446\u0438\u044E? (\u0422\u0430\u0431\u043B\u0438\u0446\u0430 \u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430)
confirm_keep_statement_open_message=\u041E\u0431\u044B\u0447\u043D\u043E DBeaver \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u0441\u0440\u0430\u0437\u0443 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041D\u043E \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043E\u043F\u0446\u0438\u044E "\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C \u043A\u0443\u0440\u0441\u043E\u0440 \u0432 SQL-\u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435" \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445. \u0423\u0447\u0438\u0442\u044B\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441\u044B \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F. \u0425\u043E\u0442\u0438\u0442\u0435 \u043B\u0438 \u0412\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u044D\u0442\u0443 \u043E\u043F\u0446\u0438\u044E? (\u0422\u0430\u0431\u043B\u0438\u0446\u0430 \u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430)
confirm_keep_statement_open_toggleMessage=\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C
dialog_data_label_value=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435:
dialog_value_view_button_cancel=&\u041E\u0442\u043C\u0435\u043D\u0430
......@@ -679,7 +679,7 @@ pref_page_query_manager_group_storage=\u0425\u0440\u0430\u043D\u0435\u043D\u0438
pref_page_query_manager_checkbox_store_log_file=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043B\u043E\u0433 \u0432\u043E \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u0444\u0430\u0439\u043B
pref_page_query_manager_logs_folder=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043B\u043E\u0433\u043E\u0432
pref_page_sql_editor_checkbox_fetch_resultsets=\u0418\u0437\u0432\u043B\u0435\u043A\u0430\u0442\u044C \u0440\u0435\u0437\u0430\u043B\u0442\u0441\u0435\u0442\u044B
pref_page_sql_editor_checkbox_fetch_resultsets=\u0418\u0437\u0432\u043B\u0435\u043A\u0430\u0442\u044C \u0432\u044B\u0431\u043E\u0440\u043A\u0438
pref_page_sql_editor_checkbox_put_new_scripts=\u041F\u043E\u043C\u0435\u0449\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0441\u043A\u0440\u0438\u043F\u0442\u044B \u0432 \u043F\u0430\u043F\u043A\u0438
pref_page_sql_editor_combo_item_each_line_autocommit=\u041F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 (\u0430\u0432\u0442\u043E\u043A\u043E\u043C\u0438\u0442)
pref_page_sql_editor_combo_item_each_spec_line=\u041F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0439 \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438
......@@ -694,6 +694,7 @@ pref_page_sql_editor_group_scripts=\u0421\u043A\u0440\u0438\u043F\u0442\u044B
pref_page_sql_editor_label_commit_after_line=\u041A\u043E\u043C\u0438\u0442 \u043F\u043E\u0441\u043B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438
pref_page_sql_editor_label_commit_type=\u0422\u0438\u043F \u043A\u043E\u043C\u0438\u0442\u0430
pref_page_sql_editor_label_error_handling=\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043E\u0448\u0438\u0431\u043E\u043A
pref_page_sql_editor_label_invalidate_before_execute=\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0434 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043C
pref_page_sql_editor_label_sql_timeout=\u0422\u0430\u0439\u043C\u0430\u0443\u0442 SQL \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439
pref_page_ui_general_checkbox_automatic_updates=\u0410\u0432\u0442\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0439
pref_page_ui_general_group_general=\u041E\u0431\u0449\u0435\u0435
......
......@@ -451,6 +451,7 @@ public class DBeaverCore implements DBPApplication {
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.SCRIPT_FETCH_RESULT_SETS, false);
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.SCRIPT_AUTO_FOLDERS, false);
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE, false);
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.STATEMENT_TIMEOUT, 10 * 1000);
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.MEMORY_CONTENT_MAX_SIZE, 10000);
RuntimeUtils.setDefaultPreferenceValue(store, PrefConstants.READ_EXPENSIVE_PROPERTIES, true);
......
......@@ -59,6 +59,7 @@ public class SQLQueryJob extends DataSourceJob
private SQLEditorBase editor;
private List<SQLStatementInfo> queries;
private DBDDataReceiver dataReceiver;
private boolean connectionInvalidated = false;
private SQLScriptCommitType commitType;
private SQLScriptErrorHandling errorHandling;
......@@ -294,6 +295,12 @@ public class SQLQueryJob extends DataSourceJob
// Prepare statement
closeStatement();
// Check and invalidate connection
if (!connectionInvalidated && getDataSource().getContainer().getPreferenceStore().getBoolean(PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE)) {
getDataSource().invalidateConnection(context.getProgressMonitor());
connectionInvalidated = true;
}
boolean hasParameters = false;
// Bind parameters
if (!CommonUtils.isEmpty(sqlStatement.getParameters())) {
......
......@@ -510,14 +510,7 @@ public class SQLEditor extends SQLEditorBase
curJobRunning++;
final long curTime = System.currentTimeMillis();
if (lastUIUpdateTime <= 0 || (curTime - lastUIUpdateTime >= SCRIPT_UI_UPDATE_PERIOD)) {
UIUtils.runInUI(null, new Runnable() {
@Override
public void run()
{
selectAndReveal(query.getOffset(), query.getLength());
setStatus(query.getQuery(), false);
}
});
selectStatementInEditor(query);
lastUIUpdateTime = System.currentTimeMillis();
}
}
......@@ -530,6 +523,9 @@ public class SQLEditor extends SQLEditorBase
if (isDisposed()) {
return;
}
if (result.hasError()) {
selectStatementInEditor(result.getStatement());
}
if (isSingleQuery) {
UIUtils.runInUI(null, new Runnable() {
@Override
......@@ -541,6 +537,18 @@ public class SQLEditor extends SQLEditorBase
}
}
private void selectStatementInEditor(final SQLStatementInfo query)
{
UIUtils.runInUI(null, new Runnable() {
@Override
public void run()
{
selectAndReveal(query.getOffset(), query.getLength());
setStatus(query.getQuery(), false);
}
});
}
private void processQueryResult(SQLQueryResult result)
{
if (!result.hasError()) {
......
......@@ -39,6 +39,7 @@ public final class PrefConstants
public static final String SCRIPT_FETCH_RESULT_SETS = "script.fetch.resultset"; //$NON-NLS-1$
public static final String SCRIPT_AUTO_FOLDERS = "script.auto.folders"; //$NON-NLS-1$
public static final String STATEMENT_INVALIDATE_BEFORE_EXECUTE = "statement.invalidate.before.execute"; //$NON-NLS-1$
public static final String STATEMENT_TIMEOUT = "statement.timeout"; //$NON-NLS-1$
public static final String MEMORY_CONTENT_MAX_SIZE = "content.memory.maxsize"; //$NON-NLS-1$
public static final String CONTENT_HEX_ENCODING = "content.hex.encoding"; //$NON-NLS-1$
......
......@@ -46,6 +46,7 @@ public class PrefPageSQLEditor extends TargetPrefPage
{
public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.main.sqleditor"; //$NON-NLS-1$
private Button invalidateBeforeExecuteCheck;
private Spinner executeTimeoutText;
private Combo commitTypeCombo;
......@@ -69,6 +70,7 @@ public class PrefPageSQLEditor extends TargetPrefPage
{
AbstractPreferenceStore store = dataSourceDescriptor.getPreferenceStore();
return
store.contains(PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE) ||
store.contains(PrefConstants.STATEMENT_TIMEOUT) ||
store.contains(PrefConstants.SCRIPT_COMMIT_TYPE) ||
store.contains(PrefConstants.SCRIPT_ERROR_HANDLING) ||
......@@ -93,8 +95,9 @@ public class PrefPageSQLEditor extends TargetPrefPage
{
Composite commonGroup = UIUtils.createControlGroup(composite, CoreMessages.pref_page_sql_editor_group_common, 2, GridData.FILL_HORIZONTAL, 0);
{
UIUtils.createControlLabel(commonGroup, CoreMessages.pref_page_sql_editor_label_sql_timeout);
invalidateBeforeExecuteCheck = UIUtils.createLabelCheckbox(commonGroup, CoreMessages.pref_page_sql_editor_label_invalidate_before_execute, false);
UIUtils.createControlLabel(commonGroup, CoreMessages.pref_page_sql_editor_label_sql_timeout);
executeTimeoutText = new Spinner(commonGroup, SWT.BORDER);
executeTimeoutText.setSelection(0);
executeTimeoutText.setDigits(0);
......@@ -193,6 +196,7 @@ public class PrefPageSQLEditor extends TargetPrefPage
protected void loadPreferences(IPreferenceStore store)
{
try {
invalidateBeforeExecuteCheck.setSelection(store.getBoolean(PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE));
executeTimeoutText.setSelection(store.getInt(PrefConstants.STATEMENT_TIMEOUT));
commitTypeCombo.select(SQLScriptCommitType.valueOf(store.getString(PrefConstants.SCRIPT_COMMIT_TYPE)).ordinal());
......@@ -221,6 +225,7 @@ public class PrefPageSQLEditor extends TargetPrefPage
protected void savePreferences(IPreferenceStore store)
{
try {
store.setValue(PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE, invalidateBeforeExecuteCheck.getSelection());
store.setValue(PrefConstants.STATEMENT_TIMEOUT, executeTimeoutText.getSelection());
store.setValue(SQLPreferenceConstants.ENABLE_AUTO_ACTIVATION, csAutoActivationCheck.getSelection());
......@@ -249,6 +254,7 @@ public class PrefPageSQLEditor extends TargetPrefPage
@Override
protected void clearPreferences(IPreferenceStore store)
{
store.setToDefault(PrefConstants.STATEMENT_INVALIDATE_BEFORE_EXECUTE);
store.setToDefault(PrefConstants.STATEMENT_TIMEOUT);
store.setToDefault(SQLPreferenceConstants.ENABLE_AUTO_ACTIVATION);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册