Click here to Skip to main content
15,888,270 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
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:

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


Any idea what am I doing something wrong here?

What I have tried:

JavaScript
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;
Posted
Updated 23-Jun-17 23:39pm

Maybe you are missing "database=master;" and "Trusted_connection=Yes", see the example here:
Installshield custom dialog, custom actions, and code[^]
 
Share this answer
 
v2
Comments
Bharat Leel 24-Jun-17 5:35am    
Thanks, it fixed my solution at some extend, while digging more finally I found solution that I also need to replace Driver with Provider.
After digging in detail I found fix for this from here.

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


For TLS 1.2
JavaScript
szConnString = "Provider=SQLNCLI11;"
szConnString = szConnString + "SERVER=SQLServerName;"
szConnString = szConnString + "database=master;"
szConnString = szConnString + "Trusted_Connection=Yes"
msgbox "SQL Connection String: " + szConnString, INFORMATION


For TLS 1.2 is best solution because it's working in both environment.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900