Add SQL Binding Disconnected Scenario (#18440)

* disconnected scenario

* match parameters in mssql
This commit is contained in:
Vasu Bhog
2022-02-17 14:20:13 -08:00
committed by GitHub
parent 28ab7372d2
commit 0f385b386f
3 changed files with 20 additions and 19 deletions

View File

@@ -5,7 +5,7 @@
import * as vscode from 'vscode';
import * as path from 'path';
import { BindingType, IConnectionInfo } from 'vscode-mssql';
import { BindingType, ConnectionDetails, IConnectionInfo } from 'vscode-mssql';
import * as constants from '../common/constants';
import * as utils from '../common/utils';
import * as azureFunctionsUtils from '../common/azureFunctionsUtils';
@@ -169,6 +169,7 @@ export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined,
let connectionString: string = '';
let includePassword: string | undefined;
let connectionInfo: IConnectionInfo | undefined;
let connectionDetails: ConnectionDetails;
if (selectedConnectionStringMethod === constants.userConnectionString) {
// User chooses to enter connection string manually
connectionString = await vscode.window.showInputBox(
@@ -181,20 +182,12 @@ export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined,
) ?? '';
} else {
// Let user choose from existing connections to create connection string from
let connectionUri: string = '';
connectionInfo = await vscodeMssqlApi.promptForConnection(true);
if (!connectionInfo) {
// User cancelled return to selectedConnectionStringMethod prompt
continue;
}
try {
// TO DO: https://github.com/microsoft/azuredatastudio/issues/18012
connectionUri = await vscodeMssqlApi.connect(connectionInfo);
} catch (e) {
// display an mssql error due to connection request failing and go back to prompt for connection string methods
console.warn(e);
continue;
}
connectionDetails = { options: connectionInfo };
try {
// Prompt to include password in connection string if authentication type is SqlLogin and connection has password saved
if (connectionInfo.authenticationType === 'SqlLogin' && connectionInfo.password) {
@@ -205,12 +198,12 @@ export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined,
});
if (includePassword === constants.yesString) {
// set connection string to include password
connectionString = await vscodeMssqlApi.getConnectionString(connectionUri, true, false);
connectionString = await vscodeMssqlApi.getConnectionString(connectionDetails, true, false);
}
}
// set connection string to not include the password if connection info does not include password, or user chooses to not include password, or authentication type is not sql login
if (includePassword !== constants.yesString) {
connectionString = await vscodeMssqlApi.getConnectionString(connectionUri, false, false);
connectionString = await vscodeMssqlApi.getConnectionString(connectionDetails, false, false);
}
} catch (e) {
// failed to get connection string for selected connection and will go back to prompt for connection string methods