使用installshield项目中的安装脚本创建SQL连接 [英] Create SQL connection using install script in installshield project

查看:99
本文介绍了使用installshield项目中的安装脚本创建SQL连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在InstallShiled安装项目中,我们需要验证在给定的SQL Server上是否存在任何特定的DataBase。



我们在下面使用安装脚本:



In InstallShiled setup project we have certain requirement that we need to validate any specific DataBase is exist or not on given SQL Server.

For that we are using below 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=SQLServerName;";
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;





使用上面的安装脚本,它给出了以下错误:



With above Install Script it gives below error:

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





任何我在这里做错了什么?



我尝试了什么: < br $>




Any idea what am I doing something wrong here?

What I have tried:

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=SQLServerName;";
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;

推荐答案

也许你错过了database = master;和Trusted_connection = Yes,请参见此处的示例:

Installshield自定义对话框,自定义操作和代码 [ ^ ]
Maybe you are missing "database=master;" and "Trusted_connection=Yes", see the example here:
Installshield custom dialog, custom actions, and code[^]


在详细挖掘后,我发现了这里



对于非TLS 1.2

After digging in detail I found fix for this from here.

For Non-TLS 1.2
szConnString = "Provider=SQLOLEDB;"
szConnString = szConnString + "data source=SQLServerName;"
szConnString = szConnString + "Initial Catalog=master;"
szConnString = szConnString + "Integrated Security=SSPI"





For TLS 1.2



For 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是最佳解决方案,因为它在两个环境中都有效。


这篇关于使用installshield项目中的安装脚本创建SQL连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆