Skip to content

Commit 0b3fe3c

Browse files
committed
Improved DbExport Gu
1 parent 78f0c86 commit 0b3fe3c

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed
202 Bytes
Binary file not shown.

src/de/soderer/dbexport/DbExport.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -790,7 +790,9 @@ private static int connectionTest(final ConnectionTestDefinition connectionTestD
790790
if (testConnection != null) {
791791
try {
792792
System.out.println(DateUtilities.formatDate(DateUtilities.YYYY_MM_DD_HHMMSS, LocalDateTime.now()) + ": Closing database connection");
793-
testConnection.close();
793+
if (!testConnection.isClosed()) {
794+
testConnection.close();
795+
}
794796
} catch (final SQLException e) {
795797
System.out.println(DateUtilities.formatDate(DateUtilities.YYYY_MM_DD_HHMMSS, LocalDateTime.now()) + ": Error closing database connection: " + e.getMessage());
796798
returnCode = 1;

src/de/soderer/dbexport/DbExportGui.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import de.soderer.utilities.http.HttpUtilities;
5858
import de.soderer.utilities.swing.ApplicationConfigurationDialog;
5959
import de.soderer.utilities.swing.DualProgressDialog;
60+
import de.soderer.utilities.swing.ProgressDialog;
6061
import de.soderer.utilities.swing.QuestionDialog;
6162
import de.soderer.utilities.swing.SecurePreferencesDialog;
6263
import de.soderer.utilities.swing.SwingColor;
@@ -1229,8 +1230,16 @@ private void export(final DbExportDefinition dbExportDefinition, final DbExportG
12291230
// The worker parent is set later by the opened DualProgressDialog
12301231
final AbstractDbExportWorker worker = dbExportDefinition.getConfiguredWorker(null);
12311232

1232-
final DualProgressDialog<AbstractDbExportWorker> progressDialog = new DualProgressDialog<>(dbExportGui, DbExport.APPLICATION_NAME, null, worker);
1233-
final Result result = progressDialog.open();
1233+
final Result result;
1234+
if (dbExportDefinition.getSqlStatementOrTablelist().toLowerCase().startsWith("select ") ||
1235+
(!dbExportDefinition.getSqlStatementOrTablelist().contains("*")
1236+
&& !dbExportDefinition.getSqlStatementOrTablelist().contains("?"))) {
1237+
final ProgressDialog<AbstractDbExportWorker> progressDialog = new ProgressDialog<>(dbExportGui, DbExport.APPLICATION_NAME, null, worker);
1238+
result = progressDialog.open();
1239+
} else {
1240+
final DualProgressDialog<AbstractDbExportWorker> progressDialog = new DualProgressDialog<>(dbExportGui, DbExport.APPLICATION_NAME, null, worker);
1241+
result = progressDialog.open();
1242+
}
12341243

12351244
if (result == Result.CANCELED) {
12361245
new QuestionDialog(dbExportGui, DbExport.APPLICATION_NAME, LangResources.get("error.canceledbyuser")).setBackgroundColor(SwingColor.Yellow).open();

src/de/soderer/dbexport/worker/AbstractDbExportWorker.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,8 @@ public Boolean work() throws Exception {
370370

371371
try {
372372
export(connection, sqlStatement, nextOutputFilePath);
373+
} catch (final DbExportException e) {
374+
throw e;
373375
} catch (final Exception e) {
374376
throw new Exception("Error occurred while exporting\n" + sqlStatement + "\n" + e.getMessage(), e);
375377
}
@@ -794,6 +796,8 @@ private void export(final Connection connection, final String sqlStatement, Stri
794796

795797
if (new File(outputFilePath).exists()) {
796798
throw new DbExportException("Outputfile already exists: " + outputFilePath);
799+
} else if (!new File(outputFilePath).getParentFile().exists()) {
800+
throw new DbExportException("Outputfile parent directory does not exist: " + new File(outputFilePath).getParent());
797801
}
798802

799803
if (log) {

0 commit comments

Comments
 (0)