Создайте соединение SQL с помощью Install Script в проекте InstallShield
В проекте установки InstallShiled у нас есть определенное требование, что нам нужно проверить, существует ли какая-либо конкретная база данных на данном SQL Server или нет.
Для этого мы используем ниже Install Script:
szADOConnObjID = "ADODB.Connection";
set pADOConnObj = CreateObject(szADOConnObjID);
szConnString = "driver={SQL Server};"; // For TLS 1.2 Only use driver={SQL Server Native Client 11.0};
szConnString = szConnString + "server=HPSDEV67;";
szConnString = szConnString + "Initial Catalog=master;";
szConnString = szConnString + "Integrated Security=True";
MessageBox("SQL Connection String: " + szConnString, INFORMATION);
try
MessageBox("Trying with Windows Authentication first", INFORMATION);
if (pADOConnObj.State==0)then
pADOConnObj.Open(szConnString);
MessageBox("Connection Success", INFORMATION);
endif;
catch
MessageBox("Windows Authentication Catch",INFORMATION);
MessageBox(Err.Description , SEVERE);
endcatch;
С вышеупомянутым Install Script выдает ошибку ниже:
---------------------------
Sample SQL Connect - InstallShield Wizard
---------------------------
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
---------------------------
OK
---------------------------
Есть идеи, что я тут делаю не так?
2 ответа
Решение
После копания в деталях я нашел здесь исправление.
Для не-TLS 1.2
szConnString = "Provider=SQLOLEDB;"
szConnString = szConnString + "data source=SQLServerName;"
szConnString = szConnString + "Initial Catalog=master;"
szConnString = szConnString + "Integrated Security=SSPI"
Для TLS 1.2
szConnString = "Provider=SQLNCLI11;"
szConnString = szConnString + "SERVER=SQLServerName;"
szConnString = szConnString + "database=master;"
szConnString = szConnString + "Trusted_Connection=Yes"
msgbox "SQL Connection String: " + szConnString, INFORMATION
Для TLS 1.2 лучшее решение, потому что он работает в обеих средах.
Microsoft выпустила новый драйвер (MSOLEDBSQL) в начале этого года (2018) и будет продолжать предоставлять обновления только для этого драйвера. https://blogs.msdn.microsoft.com/sqlnativeclient/2018/03/30/released-microsoft-ole-db-driver-for-sql-server/