Я работаю над приложением на Delphi 10.2, и оно подключается к базе данных SQL Server 2014.Что я могу сделать, чтобы проверить соединение с базой данных, имеющей строку соединения, до запуска приложения?
Я использовал ADoconnection
в качестве интерфейса для соединения с вышеупомянутой базой данных, сделал некоторое кодирование с помощью try-catch илипопробуйте, кроме как исключить нежелательные ошибки SQL Server, и с помощью шкалы индикатора, чтобы указать на продвижение моей процедуры запуска (которая прогрессирует с активацией запроса и созданием формы).
Поэтому, когда строка подключения не в порядке, Я получу ошибку
Ошибка входа для пользователя 'admin98'
(admin98 - это имя пользователя SQL Server);и когда строка подключения в порядке, индикаторная линейка прогрессирует, и на полпути у меня снова та же самая ошибка.
ПРИМЕЧАНИЕ: я использовал freeInstance
или NewInstance
или другие подобные вещи, но это не такне работает.
Это функция, которая подключается к базе данных и ловит ошибки, если встречает
function DBConnect: Boolean;
var
conStr : string;
begin
conStr:= 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admin'+Fstart_.year_combobox.Text+';PassWord=000;Initial Catalog=student'+Fstart_.year_combobox.Text+';Data Source='+Fstart_.StringTemp+';';
DataModule1.ADOConnection1.Close;
DataModule1.ADOConnection1.ConnectionString:= conStr;
DataModule1.ADOConnection1.LoginPrompt:= False;
if (NOT DataModule1.ADOConnection1.Connected) then
begin
try
DataModule1.ADOConnection1.Open;
Result:= True;
Except on E:Exception do
begin
if e.Message = 'Login failed for user '+chr(39)+'admin'+Fstart_.year_combobox.Text+chr(39) then
//showmessage
if e.Message = '[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied' then
//showmessage
DataModule1.ADOConnection1.Close;
DataModule1.ADOConnection1.ConnectionString:= '';
Result:= False;
end;
end;
end;
end;
Дело в том, что она должна работать, и я не должен перезапускать приложение, поэтому янеобходимо либо выполнить тестирование перед установлением соединения, либо сбросить все соединение.
Я ожидаю успешного соединения, но снова получаю сообщение об ошибке, даже когда я изменяю значение поля со списком, и я знаю, что пользователь существует в SQL Server