fix(sqlserver): invalidate stale connection tests

This commit is contained in:
zipg
2026-07-14 15:31:09 +08:00
committed by GitHub
parent 96f1e8bb9a
commit 9a2a3cd08a
8 changed files with 17 additions and 35 deletions
@@ -1158,7 +1158,6 @@ async function installSqlServerLegacyCompatibilityComponentIfNeeded(): Promise<b
if (await api.isAgentInstalled(SQLSERVER_LEGACY_COMPATIBILITY_DRIVER_KEY)) return true;
const label = t("connection.sqlServerLegacyCompatibilityComponent");
testResult.value = { ok: true, message: t("connection.sqlServerLegacyCompatibilityComponentInstalling") };
beginAgentDriverInstall(SQLSERVER_LEGACY_COMPATIBILITY_DRIVER_KEY, label);
try {
await api.installAgent(SQLSERVER_LEGACY_COMPATIBILITY_DRIVER_KEY);
@@ -1176,6 +1175,8 @@ async function onSqlServerLegacyCompatibilityModeChange(event: Event) {
if (form.value.db_type !== "sqlserver") return;
const input = event.target instanceof HTMLInputElement ? event.target : null;
const enabled = input?.checked === true;
// The connection test may still be using the previous compatibility mode.
resetTestState();
if (!enabled) {
form.value.url_params = setSqlServerLegacyCompatibilityMode(form.value.url_params, false);
return;
@@ -1185,7 +1186,7 @@ async function onSqlServerLegacyCompatibilityModeChange(event: Event) {
try {
await installSqlServerLegacyCompatibilityComponentIfNeeded();
form.value.url_params = setSqlServerLegacyCompatibilityMode(form.value.url_params, true);
testResult.value = { ok: true, message: t("connection.sqlServerLegacyCompatibilityModeEnabled") };
testResult.value = null;
} catch {
form.value.url_params = setSqlServerLegacyCompatibilityMode(form.value.url_params, false);
if (input) input.checked = false;
+2 -5
View File
@@ -334,12 +334,9 @@ export default {
testing: "Testing...",
copyTestResult: "Copy test result",
sqlServerLegacyCompatibilityMode: "Legacy compatibility mode",
sqlServerLegacyCompatibilityModeEnable: "Use SQL Server legacy compatibility connection",
sqlServerLegacyCompatibilityModeEnabled: "SQL Server legacy compatibility mode is enabled.",
sqlServerLegacyCompatibilityModeHint:
"Applies to unencrypted, login-only encrypted, or TLS 1.0 legacy compatibility scenarios. If the compatibility component is not installed, DBX installs it before enabling this mode.\nSome native SQL Server features may be unavailable when fallback uses the compatibility component.\nUse it only on trusted networks, VPNs, or SSH tunnels",
sqlServerLegacyCompatibilityModeEnable: "Enable",
sqlServerLegacyCompatibilityModeHint: "For SQL Server instances limited to TLS 1.0, login-only encryption, or no encryption.\nSome features may be limited; use only on trusted networks.",
sqlServerLegacyCompatibilityComponent: "SQL Server legacy compatibility component",
sqlServerLegacyCompatibilityComponentInstalling: "Installing SQL Server legacy compatibility component...",
saveAndConnect: "Save & Connect",
save: "Save",
editTitle: "Edit Connection",
+2 -5
View File
@@ -314,12 +314,9 @@ export default withEnglishFallback({
testing: "Probando...",
copyTestResult: "Copiar resultado de prueba",
sqlServerLegacyCompatibilityMode: "Modo de compatibilidad heredado",
sqlServerLegacyCompatibilityModeEnable: "Usar conexión de compatibilidad heredada de SQL Server",
sqlServerLegacyCompatibilityModeEnabled: "El modo de compatibilidad heredado de SQL Server está activado.",
sqlServerLegacyCompatibilityModeHint:
"Aplica a escenarios sin cifrado, con cifrado solo en el login o con compatibilidad heredada TLS 1.0. Si el componente de compatibilidad no está instalado, DBX lo instala antes de activar este modo.\nAl usar el componente de compatibilidad como fallback, algunas funciones nativas de SQL Server pueden no estar disponibles.\nÚsalo solo en redes de confianza, VPN o túneles SSH",
sqlServerLegacyCompatibilityModeEnable: "Activar",
sqlServerLegacyCompatibilityModeHint: "Para instancias de SQL Server limitadas a TLS 1.0, cifrado solo al iniciar sesión o sin cifrado.\nAlgunas funciones pueden estar limitadas; úsalo solo en redes de confianza.",
sqlServerLegacyCompatibilityComponent: "Componente de compatibilidad heredada de SQL Server",
sqlServerLegacyCompatibilityComponentInstalling: "Instalando componente de compatibilidad heredada de SQL Server...",
saveAndConnect: "Guardar y conectar",
save: "Guardar",
editTitle: "Editar conexión",
+2 -5
View File
@@ -313,12 +313,9 @@ export default withEnglishFallback({
testing: "Verifica in corso...",
copyTestResult: "Copia risultato test",
sqlServerLegacyCompatibilityMode: "Modalità compatibilità legacy",
sqlServerLegacyCompatibilityModeEnable: "Usa connessione di compatibilità legacy SQL Server",
sqlServerLegacyCompatibilityModeEnabled: "La modalità compatibilità legacy di SQL Server è abilitata.",
sqlServerLegacyCompatibilityModeHint:
"Si applica a scenari non crittografati, con crittografia solo al login o con compatibilità legacy TLS 1.0. Se il componente di compatibilità non è installato, DBX lo installa prima di abilitare questa modalità.\nQuando il fallback usa il componente di compatibilità, alcune funzionalità native di SQL Server potrebbero non essere disponibili.\nUsala solo su reti attendibili, VPN o tunnel SSH",
sqlServerLegacyCompatibilityModeEnable: "Abilita",
sqlServerLegacyCompatibilityModeHint: "Per istanze di SQL Server limitate a TLS 1.0, crittografia solo all'accesso o nessuna crittografia.\nAlcune funzionalità potrebbero essere limitate; usala solo su reti attendibili.",
sqlServerLegacyCompatibilityComponent: "Componente di compatibilità legacy SQL Server",
sqlServerLegacyCompatibilityComponentInstalling: "Installazione componente di compatibilità legacy SQL Server...",
saveAndConnect: "Salva & Connetti",
save: "Salva",
editTitle: "Modifica Connessione",
+2 -5
View File
@@ -307,12 +307,9 @@ export default withEnglishFallback({
testing: "テスト中...",
copyTestResult: "テスト結果をコピー",
sqlServerLegacyCompatibilityMode: "レガシー互換モード",
sqlServerLegacyCompatibilityModeEnable: "SQL Server レガシー互換接続を使用",
sqlServerLegacyCompatibilityModeEnabled: "SQL Server レガシー互換モードが有効です。",
sqlServerLegacyCompatibilityModeHint:
"非暗号化、ログイン時のみ暗号化、または TLS 1.0 レガシー互換シナリオに適用されます。互換コンポーネントが未インストールの場合、DBX はこのモードを有効にする前にインストールします。\n互換コンポーネントへフォールバックした場合、一部の SQL Server ネイティブ機能を利用できないことがあります。\n信頼できるネットワーク、VPN、SSH トンネルでのみ使用してください",
sqlServerLegacyCompatibilityModeEnable: "有効にする",
sqlServerLegacyCompatibilityModeHint: "TLS 1.0、ログイン時のみの暗号化、または暗号化なしに限定された SQL Server への接続に使用します。\n一部の機能が制限される場合があるため、信頼できるネットワークでのみ使用してください。",
sqlServerLegacyCompatibilityComponent: "SQL Server レガシー互換コンポーネント",
sqlServerLegacyCompatibilityComponentInstalling: "SQL Server レガシー互換コンポーネントをインストールしています...",
saveAndConnect: "保存して接続",
save: "保存",
editTitle: "接続を編集",
+2 -5
View File
@@ -314,12 +314,9 @@ export default withEnglishFallback({
testing: "Testando...",
copyTestResult: "Copiar resultado do teste",
sqlServerLegacyCompatibilityMode: "Modo de compatibilidade legado",
sqlServerLegacyCompatibilityModeEnable: "Usar conexão de compatibilidade legada do SQL Server",
sqlServerLegacyCompatibilityModeEnabled: "O modo de compatibilidade legado do SQL Server está ativado.",
sqlServerLegacyCompatibilityModeHint:
"Aplica-se a cenários sem criptografia, com criptografia apenas no login ou compatibilidade legada TLS 1.0. Se o componente de compatibilidade não estiver instalado, o DBX o instala antes de ativar este modo.\nQuando o fallback usa o componente de compatibilidade, alguns recursos nativos do SQL Server podem ficar indisponíveis.\nUse apenas em redes confiáveis, VPNs ou túneis SSH",
sqlServerLegacyCompatibilityModeEnable: "Ativar",
sqlServerLegacyCompatibilityModeHint: "Para instâncias do SQL Server limitadas a TLS 1.0, criptografia apenas no login ou sem criptografia.\nAlguns recursos podem ser limitados; use apenas em redes confiáveis.",
sqlServerLegacyCompatibilityComponent: "Componente de compatibilidade legada do SQL Server",
sqlServerLegacyCompatibilityComponentInstalling: "Instalando componente de compatibilidade legada do SQL Server...",
saveAndConnect: "Salvar e Conectar",
save: "Salvar",
editTitle: "Editar Conexão",
+2 -4
View File
@@ -336,11 +336,9 @@ export default withEnglishFallback({
testing: "测试中...",
copyTestResult: "复制测试结果",
sqlServerLegacyCompatibilityMode: "旧版兼容模式",
sqlServerLegacyCompatibilityModeEnable: "使用 SQL Server 旧版兼容连接",
sqlServerLegacyCompatibilityModeEnabled: "已启用 SQL Server 旧版兼容模式。",
sqlServerLegacyCompatibilityModeHint: "适用于非加密、仅登录阶段加密或 TLS 1.0 旧版兼容场景。若兼容组件未安装,DBX 会先安装再启用该模式\n若回退到兼容组件,部分 SQL Server 原生能力可能不可用\n请仅在可信内网、VPN 或 SSH 隧道中使用",
sqlServerLegacyCompatibilityModeEnable: "启用",
sqlServerLegacyCompatibilityModeHint: "用于连接仅支持 TLS 1.0、仅登录阶段加密或不加密的 SQL Server;\n部分功能可能受限,请仅在可信网络中使用",
sqlServerLegacyCompatibilityComponent: "SQL Server 旧版兼容组件",
sqlServerLegacyCompatibilityComponentInstalling: "正在安装 SQL Server 旧版兼容组件...",
saveAndConnect: "保存并连接",
save: "保存",
editTitle: "编辑连接",
+2 -4
View File
@@ -314,11 +314,9 @@ export default withEnglishFallback({
testing: "測試中……",
copyTestResult: "複製測試結果",
sqlServerLegacyCompatibilityMode: "舊版相容模式",
sqlServerLegacyCompatibilityModeEnable: "使用 SQL Server 舊版相容連線",
sqlServerLegacyCompatibilityModeEnabled: "已啟用 SQL Server 舊版相容模式。",
sqlServerLegacyCompatibilityModeHint: "適用於非加密、僅登入階段加密或 TLS 1.0 舊版相容場景。若相容元件未安裝,DBX 會先安裝再啟用此模式\n若回退到相容元件,部分 SQL Server 原生能力可能無法使用\n請僅在可信內網、VPN 或 SSH 隧道中使用",
sqlServerLegacyCompatibilityModeEnable: "啟用",
sqlServerLegacyCompatibilityModeHint: "用於連線僅支援 TLS 1.0、僅登入階段加密或未加密的 SQL Server;\n部分功能可能受限,請僅在可信網路中使用",
sqlServerLegacyCompatibilityComponent: "SQL Server 舊版相容元件",
sqlServerLegacyCompatibilityComponentInstalling: "正在安裝 SQL Server 舊版相容元件...",
saveAndConnect: "儲存並連線",
save: "儲存",
editTitle: "編輯連線",