fix(jdbc): simplify driver selection and table edits

This commit is contained in:
t8y2 committed 2026-06-11 22:13:27 +08:00
1 parent 70f7b464b7
commit c7fb855000
6 files changed
+96 -26

No files matched your search

@@ -179,7 +179,8 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
const isSaving = ref(false);
const saveError = ref("");
const useTransaction = computed(() => editable.value && supportsDataGridTransaction(databaseType.value) && (!!customSaveHandler?.value || (!!connectionId.value && !!database.value && !!tableMeta.value)));
const hasBackendSaveTarget = computed(() => !!connectionId.value && !!tableMeta.value);
const useTransaction = computed(() => editable.value && supportsDataGridTransaction(databaseType.value) && (!!customSaveHandler?.value || hasBackendSaveTarget.value));
if (hasPendingChanges.value && useTransaction.value) {
transactionActive.value = true;
@@ -648,7 +649,7 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
}
async function recordDataGridHistory(statements: string[], rollbackStatements: string[], elapsed: number, historyResult?: { affected_rows?: number; success?: boolean; error?: string }) {
if (!connectionId.value || !database.value || !tableMeta.value) return;
if (!connectionId.value || !tableMeta.value) return;
const connName = connectionStore.getConfig(connectionId.value)?.name || "";
const success = historyResult?.success ?? true;
const details = {
@@ -664,7 +665,7 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
await historyStore.add({
connection_id: connectionId.value,
connection_name: connName,
database: database.value,
database: database.value ?? "",
sql: statements.join("\n"),
execution_time_ms: elapsed,
success,
@@ -757,17 +758,17 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
rollbackStatements: rollbackStmts,
});
if (useTransaction.value && connectionId.value && database.value) {
if (useTransaction.value && hasBackendSaveTarget.value) {
try {
apiResult = await api.executeInTransaction(connectionId.value, database.value, stmts, preparedSave?.executionSchema);
apiResult = await api.executeInTransaction(connectionId.value!, database.value ?? "", stmts, preparedSave?.executionSchema);
} catch (e: any) {
saveError.value = await recordFailedDataGridHistory(stmts, rollbackStmts, start, e);
isSaving.value = false;
return;
}
} else if (connectionId.value && database.value) {
} else if (hasBackendSaveTarget.value) {
try {
apiResult = await api.executeBatch(connectionId.value, database.value, stmts);
apiResult = await api.executeBatch(connectionId.value!, database.value ?? "", stmts, preparedSave?.executionSchema);
} catch (e: any) {
saveError.value = await recordFailedDataGridHistory(stmts, rollbackStmts, start, e);
isSaving.value = false;