У меня 4 шт. 2 имеют полную настройку SQ Server 2012, 1, как и все настройки базы данных, и 1 вообще не имеют настройки SQL. 3 с установкой SQL подключается к той, которую я вызываю на сервере, на котором установлена база данных. Тот, у кого нет SQL, установленного на нем вообще, не подключает исключение. Вот моя строка подключения.Подключение SQL Server 2012 без части sql, установленной на клиенте
Провайдер = SQLNCLI11; Встроенная безопасность = ""; Persist Security Info = False; User ID = sa; password = Xxxx1234; OLE DB Services = -2; Initial Catalog = score_data; Источник данных = 192.168.9.25,1433; Начальное имя файла = ""; Размер пакета = 4096; Автоматический перевод = Истина; Сервер SPN = "";
Вот мой Delphi код, используемый для создания этой строки и подключить
function TFrmTb2.ConnectToSqlDB(Var DataBase : TADOConnection; Catalog : String; Var Msg : ShortString) : Boolean;
var
cntStr : String;
begin
msg := '';
CntStr := DataBase.Name;
if not DataBase.Connected then
begin
if Not DataBase.Connected then
begin
with FrmTb2 do
begin //Edit ConfigHdwe2016Nw.Ini in tne Score2016NW Directory section SQL
CntStr := 'Provider='+ReadIniStr(IniHdwe,'SQL','Provider')+';';//SQLNCLI11.1';//SQLNCLI10.1;';
CntStr := CntStr + 'Integrated Security='+ReadIniStr(IniHdwe,'SQL','Integrated Security')+';';//"";';
CntStr := CntStr + 'Persist Security Info='+ReadIniStr(IniHdwe,'SQL','Persist Security Info')+';';//False;';
CntStr := CntStr + 'User ID='+ReadIniStr(IniHdwe,'SQL','User ID')+';';//shithead;';
CntStr := CntStr + 'password='+ReadIniStr(IniHdwe,'SQL','password')+';';//shithead;';
CntStr := CntStr + 'OLE DB Services='+ReadIniStr(IniHdwe,'SQL','OLE DB Services')+';';// -2;';
CntStr := CntStr + 'Initial Catalog='+Catalog+';';
CntStr := CntStr + 'Data Source='+ReadIniStr(IniHdwe,'SQL','Data Source')+';';//\SQLEXPRESS;';
CntStr := CntStr + 'Initial File Name='+ReadIniStr(IniHdwe,'SQL','Initial File Name')+';';//"";';
CntStr := CntStr + 'Packet Size='+ReadIniStr(IniHdwe,'SQL','Packet Size')+';';//4096;';
CntStr := CntStr + 'Auto Translate='+ReadIniStr(IniHdwe,'SQL','Auto Translate')+';';//True;';
CntStr := CntStr + 'Server SPN='+ReadIniStr(IniHdwe,'SQL','Server SPN')+';';//""';
end;
// ShowMessage(CntStr);
DataBase.ConnectionString := CntStr;
try
DataBase.Connected := True;
if DataBase.Connected then
begin
// ShowMessage('After Conection');
result := True;
end
else
begin
result := False;
ShowMessage('Unable to Connect to Score2016Nw Database Bad Ip or Connection Missing1');
end;
except
result := False;
ShowMessage('Unable to Connect to Score2016Nw Database Bad Ip or Connection Missing2');
end;
end
else
result := True;
end
else
result := True; // we are still conected to the sql database
end;
Моя сеть человек говорит мне, что падение порт огня 1433 открыт (это аппаратное wirewall и у меня нет доступа) , Я проверил и перепроверял, что на подсервере ip2 активен = Да; Включено = Да; IP-адрес = 255.255.255.0 (Маска подсети); TCP Port = 1433 и IPALL Dynamic Ports = '' (Пустой) и TCP-порт = 1433. Я прочитал примерно каждую запись, которую я могу найти, и ничего не говоря о установке SQL Server Express 2012 на клиентах, заставит ее работать, чтобы поговорить с подключиться к базе данных. Есть ли какие-либо инструменты, которые я мог бы использовать для поиска проблемы, или мне нужно будет установить SQL Server на всех клиентов (какая боль)
Когда вы говорите «Выдает исключение», вам действительно нужно сообщить нам, что это за исключение. Я предполагаю, что это говорит вам, что не может найти поставщика. –
ShowMessage ('Невозможно подключиться к базе данных Score2016Nw Bad Ip или Connection Missing2'); как в моем коде. –
Это настраиваемое сообщение об ошибке, генерируемое вашим собственным кодом, которое нам не помогает. Вы избегаете исключения, почему бы вам не прочитать сообщение об исключении и сообщить, что он говорит нам? В любом случае, мы не можем копировать вашу точную ошибку с тем, что вы указали в своем вопросе, кроме провайдера, который не установлен, как я опишу в своем ответе. –