在InstallShield项目中使用安装脚本创建SQL连接

在InstallShield项目中使用安装脚本创建SQL连接

问题描述:

在InstallShiled安装项目中,我们有一定的要求,即我们需要验证给定的SQL Server上是否存在特定的数据库。在InstallShield项目中使用安装脚本创建SQL连接

对于我们使用以下安装脚本:

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; 

通过上面安装脚本它给了以下错误:

--------------------------- 
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 
--------------------------- 

任何想法,我在这里做什么了吗?

经过详细的挖掘,我找到了这个从here修复。

非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是最好的解决方案,因为它的工作在这两种环境。