<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_☆会飞的鱼☆</title><subtitle type="text">点滴积累，不断成长</subtitle><id>http://feed.cnblogs.com/blog/u/59253/rss</id><updated>2012-05-11T04:06:32Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/59253/rss"/><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495685.html</id><title type="text">InstallShield高级应用系列目录</title><summary type="text">InstallShield高级应用系列目录</summary><published>2012-05-11T03:29:00Z</published><updated>2012-05-11T03:29:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495685.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495685.html"/><content type="html">&lt;p&gt;&amp;nbsp;InstallShield高级应用系列目录&lt;/p&gt;&lt;p&gt;&amp;nbsp;1 &lt;a title="InstallShield高级应用----判断是否是本机 " href="http://www.cnblogs.com/chhuic/archive/2011/06/04/2072706.html"&gt;InstallShield高级应用--判断是否是本机&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495604.html"&gt;InstallShield高级应用--获取本机所有的SQL服务&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html"&gt;InstallShield高级应用--获取机机所有ORACLE服务列表&lt;/a&gt;&lt;/p&gt;&lt;p&gt;8 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495611.html"&gt;InstallShield高级应用--打开文件对话框&lt;/a&gt;&lt;/p&gt;&lt;p&gt;7 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495614.html"&gt;InstallShield高级应用--测试ORACL是否可连接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;6 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495620.html"&gt;InstallShield高级应用--测试SQL Server是否可连接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495624.html"&gt;InstallShield高级应用--测试Access是否可连接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495631.html"&gt;InstallShield高级应用--检查是否安装ORACLE或SQL Server&lt;/a&gt;&lt;/p&gt;&lt;p&gt;9 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495638.html"&gt;InstallShield高级应用--文件操作&lt;/a&gt;&lt;/p&gt;&lt;p&gt;10 &lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495645.html"&gt;InstallShield高级应用--检测系统ServerPack版本，SP2前不支持则 abort&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495685.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495685.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495645.html</id><title type="text">InstallShield高级应用--检测系统ServerPack版本，SP2前不支持则 abort</title><summary type="text">InstallShield高级应用--检测系统ServerPack版本，SP2前不支持则 abort</summary><published>2012-05-11T03:18:00Z</published><updated>2012-05-11T03:18:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495645.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495645.html"/><content type="html">&lt;p&gt;//检测系统ServerPack版本，SP2前不支持则 abort&lt;br /&gt;function CheckServerPackVersion() &lt;br /&gt;BOOL bCheckSP;&lt;br /&gt;begin&lt;br /&gt;if(SYSINFO.WINNT.nServicePack &amp;lt;2) then&lt;br /&gt;bCheckSP =FALSE;&lt;br /&gt;if ((SYSINFO.nOSMajor == 5) &amp;amp;&amp;amp; (SYSINFO.nOSMinor == 1)) then //Windows XP : 5.1&lt;br /&gt;bCheckSP = TRUE; &lt;br /&gt;elseif ((SYSINFO.nOSMajor == 5) &amp;amp;&amp;amp; (SYSINFO.nOSMinor == 2)) then // Windows 2003 &lt;br /&gt;bCheckSP = TRUE; &lt;br /&gt;endif; &lt;br /&gt;if(bCheckSP = TRUE) then&lt;br /&gt;switch (SELECTED_LANGUAGE)&lt;br /&gt;case ISLANG_CHINESE_PRC:&lt;br /&gt;MessageBox("安装程序需要 ServicePack 2 (含) 以上版本支持。", WARNING);&lt;br /&gt;case ISLANG_ENGLISH: &lt;br /&gt;MessageBox("For This setup the ServicePack version must be more than 2(Include) .", WARNING);&lt;br /&gt;default:&lt;br /&gt;MessageBox("For This setup the ServicePack version must be more than 2(Include).", WARNING);&lt;br /&gt;endswitch;&lt;br /&gt;abort;&lt;br /&gt;endif;&lt;br /&gt;endif; &lt;/p&gt;&lt;p&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495645.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495645.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495638.html</id><title type="text">InstallShield高级应用--文件操作</title><summary type="text">主要包含三个：1 检查文件是否存在；2 获得目录的前一级目录；3 获得文件名称；</summary><published>2012-05-11T03:16:00Z</published><updated>2012-05-11T03:16:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495638.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495638.html"/><content type="html">&lt;p&gt;主要包含三个：&lt;/p&gt;&lt;p&gt;1 检查文件是否存在；&lt;/p&gt;&lt;p&gt;2 获得目录的前一级目录；&lt;/p&gt;&lt;p&gt;3 获得文件名称；&lt;br /&gt;&lt;/p&gt;&lt;p&gt;//检查文件是否存在，若不存在则返回FALSE&lt;br /&gt;function BOOL ExistFile(szFileFullPath)&lt;br /&gt;BOOL bExists;&lt;br /&gt;STRING szFilePath,szFileName,svResult;&lt;br /&gt;begin &lt;br /&gt;bExists = FALSE;&lt;br /&gt;szFilePath =szFileFullPath;&lt;br /&gt;szFileName =""; &lt;br /&gt;GetFileName(szFilePath,szFileName);&lt;br /&gt;GetPreDir(szFilePath); &lt;br /&gt;if(szFileName != "") then&lt;br /&gt;if(FindFile(szFilePath,szFileName,svResult) = 0) then&lt;br /&gt;bExists =TRUE;&lt;br /&gt;endif;&lt;br /&gt;endif;&lt;br /&gt;return bExists;&lt;br /&gt;end; &lt;/p&gt;&lt;p&gt;//获得目录的前一级目录 &lt;br /&gt;function GetPreDir(szDir) &lt;br /&gt;number iLen,i; &lt;br /&gt;STRING szSubStr;&lt;br /&gt;begin &lt;br /&gt;szSubStr = szDir;&lt;br /&gt;i =1;&lt;br /&gt;iLen = StrLength(szDir);&lt;br /&gt;if(iLen&amp;gt;5) then&lt;br /&gt;while(i&amp;lt;iLen)&lt;br /&gt;if(szDir[iLen -i] = "\\") then&lt;br /&gt;StrSub (szSubStr,szDir,0,iLen -i); &lt;br /&gt;i = iLen;&lt;br /&gt;endif; &lt;br /&gt;i++;&lt;br /&gt;endwhile; &lt;br /&gt;szDir =szSubStr;&lt;br /&gt;endif;&lt;br /&gt;end;&lt;br /&gt;//获得文件名称&lt;br /&gt;function GetFileName(szFileFullPath,szFileName)&lt;br /&gt;number iLen,i; &lt;br /&gt;begin&lt;br /&gt;szFileName ="";&lt;br /&gt;iLen = StrLength(szFileFullPath); &lt;br /&gt;i =iLen-1;&lt;br /&gt;while(i&amp;gt;0)&lt;br /&gt;if(szFileFullPath[i] = "\\") then&lt;br /&gt;StrSub (szFileName,szFileFullPath,i+1,iLen - i); &lt;br /&gt;return;&lt;br /&gt;endif; &lt;br /&gt;i--;&lt;br /&gt;endwhile; &lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495638.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495638.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495631.html</id><title type="text">InstallShield高级应用--检查是否安装ORACLE或SQL Server</title><summary type="text">InstallShield高级应用--检查是否安装ORACLE或SQL Server</summary><published>2012-05-11T03:14:00Z</published><updated>2012-05-11T03:14:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495631.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495631.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;实现原理：判断是否存在，是通过查找注册表是否含有相应标识来判断的。&lt;/p&gt;&lt;p&gt;注意：XP与WIN7系统注册表保存方式不一样，32位与64位操作系统注册表保存方式也不一样，需要分别判断。在此只判断32位操作系统的情况。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源码：&lt;/p&gt;&lt;p&gt;////检查是否有安装Oracle &lt;br /&gt;function NUMBER CheckOracleISExist() &lt;br /&gt;STRING svOraclePath,nvValue;&lt;br /&gt;NUMBER nKeyType,nvType, nvSize;&lt;br /&gt;begin&lt;br /&gt;// defaut regedit root&lt;br /&gt;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); &lt;br /&gt;//oralce regedit path &lt;br /&gt;if(RegDBGetKeyValueEx("SOFTWARE\\ORACLE\\ALL_HOMES","DEFAULT_HOME",nvType,nvValue,nvSize) = 0) then&lt;br /&gt;return 0;&lt;br /&gt;endif;&lt;br /&gt;return -1;&lt;br /&gt;end; &lt;/p&gt;&lt;p&gt;// SQL Server 2000, SQL Server 2005, SQL Server 2008,&lt;br /&gt;// SQL Server 2005 Express,SQL Server 2008 Express &lt;br /&gt;//检查是否有安装SQL Server &lt;br /&gt;function NUMBER CheckSQLServer() &lt;br /&gt;STRING nvValue;&lt;br /&gt;NUMBER nvType, nvSize;&lt;br /&gt;begin&lt;br /&gt;//return -1;&lt;br /&gt;// defaut regedit root&lt;br /&gt;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); &lt;br /&gt;// SQL Server 2000 &lt;br /&gt;if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server","InstalledInstances",nvType,nvValue,nvSize) = 0) then&lt;br /&gt;return 0;&lt;br /&gt;endif;&lt;br /&gt;//SQL Server 2005 Version&lt;br /&gt;if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2005 Redist\\BOL\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then&lt;br /&gt;return 0;&lt;br /&gt;endif; &lt;br /&gt;//SQL Server 2008 Express &lt;br /&gt;//if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2008 Redist\\SQLNCLI10\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then&lt;br /&gt;// return 0;&lt;br /&gt;//endif; &lt;br /&gt;// Express&lt;br /&gt;if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server\SQLEXPRESS\setup","SQLPath",nvType,nvValue,nvSize) = 0) then&lt;br /&gt;return 0;&lt;br /&gt;endif;&lt;br /&gt;return -1;&lt;br /&gt;end; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495631.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495631.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495624.html</id><title type="text">InstallShield高级应用--测试Access是否可连接</title><summary type="text">InstallShield高级应用--测试Access是否可连接</summary><published>2012-05-11T03:12:00Z</published><updated>2012-05-11T03:12:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495624.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495624.html"/><content type="html">&lt;p&gt;实现原理：Access数据库连接是使用Microsoft Access Driver (*.mdb)实现的。&lt;/p&gt;&lt;p&gt;通过Access连接数据库字符串，使用&amp;#8220;ADODB.Connection&amp;#8220;对象，连接到Access数据库，&lt;/p&gt;&lt;p&gt;再使用&amp;#8220;ADODB.Recordset&amp;#8221;对象，通过查询一张已存在的表TBL_test，判断是否成功。&lt;/p&gt;&lt;p&gt;注意：当前电脑必包含ADODB.Connection和ADODB.Recordset这二个对象。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源码：&lt;/p&gt;&lt;p&gt;prototype BOOL DB_CheckAccessConn(STRING,NUMBER,BYREF STRING);&lt;br /&gt;//============================================================//&lt;br /&gt;//function : DB_CheckAccessConn //&lt;br /&gt;// //&lt;br /&gt;//purpose: 测试Access是否可连接 //&lt;br /&gt;// //&lt;br /&gt;//Argment: szDBPath:Access数据库绝对路径 // &lt;/p&gt;&lt;p&gt;//return: TRUE -连接成功 FALSE - 连接失败 //&lt;br /&gt;//Remark: 本验证使用 Microsoft Access Driver (*.mdb) 验证 //&lt;br /&gt;// DRIVER={Microsoft Access Driver (*.mdb)}; //&lt;br /&gt;// DBQ=数据库名.mdb;UID= sa;PWD=sa//&lt;br /&gt;//============================================================// &lt;/p&gt;&lt;p&gt;function BOOL DB_CheckAccessConn(szDBPath,szError) &lt;br /&gt;OBJECT pADOConnObj, pADORecordSetObj;&lt;br /&gt;STRING szADOConnObjID, szADORecordSetObjID, szConnString, szSQL,svDriver; &lt;br /&gt;STRING svServerName,szDatabase,svUserName, svUserPassword;&lt;br /&gt;BOOL bExists;&lt;br /&gt;begin&lt;br /&gt;bExists = FALSE;&lt;br /&gt;svDriver = "Microsoft Access Driver (*.mdb)";&lt;br /&gt;try&lt;br /&gt;// Create ADO Connection Object to connect to the SQL server &lt;br /&gt;szADOConnObjID = "ADODB.Connection";&lt;br /&gt;set pADOConnObj = CreateObject(szADOConnObjID); &lt;/p&gt;&lt;p&gt;// Create the SQL string to complete the connection&lt;br /&gt;szConnString = "driver={" + svDriver + "};";&lt;br /&gt;szConnString = szConnString + "DBQ=" + szDBPath + ";";&lt;br /&gt;szConnString = szConnString + "uid=sa;";&lt;br /&gt;szConnString = szConnString + "pwd=sa;"; &lt;/p&gt;&lt;p&gt;// Open the ADO Connection&lt;br /&gt;pADOConnObj.Open(szConnString); &lt;/p&gt;&lt;p&gt;&lt;br /&gt;// Create ADO Recordset object for the return&lt;br /&gt;szADORecordSetObjID = "ADODB.Recordset";&lt;br /&gt;set pADORecordSetObj = CreateObject(szADORecordSetObjID);&lt;/p&gt;&lt;p&gt;// Set some ADO Recordset properties&lt;br /&gt;pADORecordSetObj.CursorType = 3;&lt;br /&gt;pADORecordSetObj.ActiveConnection = pADOConnObj; &lt;/p&gt;&lt;p&gt;// Create the SQL string to retrieve the database if it exists &lt;br /&gt;szSQL = "SELECT * FROM TBL_test";&lt;br /&gt;&lt;/p&gt;&lt;p&gt;// Use the recordset to see if the database exists &lt;br /&gt;pADORecordSetObj.Open(szSQL);&lt;br /&gt;if (pADORecordSetObj.RecordCount &amp;gt;= 0) then&lt;br /&gt;bExists = TRUE;&lt;br /&gt;endif; &lt;/p&gt;&lt;p&gt;pADORecordSetObj.Close();&lt;br /&gt;pADOConnObj.Close();&lt;br /&gt;catch &lt;br /&gt;//nErr =Err.Number; &lt;/p&gt;&lt;p&gt;Sprintf(szError,"Error!Number:%d；",Err.Number);&lt;br /&gt;szError = szError +"Desc:"+Err.Description;&lt;br /&gt;szError ="DB:"+ szError;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;bExists = FALSE;&lt;br /&gt;//Clean up&lt;br /&gt;set pADOConnObj = NOTHING; &lt;br /&gt;set pADORecordSetObj = NOTHING;&lt;br /&gt;endcatch;&lt;br /&gt;set pADOConnObj = NOTHING; &lt;br /&gt;set pADORecordSetObj = NOTHING;&lt;br /&gt;return bExists;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495624.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495624.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495620.html</id><title type="text">InstallShield高级应用--测试SQL Server是否可连接</title><summary type="text">InstallShield高级应用--测试SQL Server是否可连接高级应用，测试SQL Server是否可连接。包含SQL 2000,SQL2005,SQL 2008</summary><published>2012-05-11T03:10:00Z</published><updated>2012-05-11T03:10:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495620.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495620.html"/><content type="html">&lt;p&gt;&amp;nbsp;实现原理：SQLServer数据库连接是使用SQL Server实现的。&lt;/p&gt;&lt;p&gt;通过SQLServer连接数据库字符串，使用&amp;#8220;ADODB.Connection&amp;#8220;对象，连接到Access数据库，&lt;/p&gt;&lt;p&gt;再使用&amp;#8220;ADODB.Recordset&amp;#8221;对象，通过查询一张已存在的表Select name from sysdatabases where name='master'，判断是否成功。&lt;/p&gt;&lt;p&gt;注意：当前电脑必包含ADODB.Connection和ADODB.Recordset这二个对象。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源码：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;prototype BOOL DB_CheckSQLServerCon(BYREF STRING,STRING,BYREF STRING,BYREF STRING,BYREF STRING);&lt;br /&gt;//============================================================//&lt;br /&gt;//function : DB_CheckSQLServerCon //&lt;br /&gt;// //&lt;br /&gt;//purpose: 测试SQL Server是否可连接 //&lt;br /&gt;// //&lt;br /&gt;//Argment: svServerName-SQL Server连接服务名称 // &lt;br /&gt;// svUserName-登录帐号 //&lt;br /&gt;// svUserPassword-登录密码 // &lt;br /&gt;// szError-错误提示信息 //&lt;br /&gt;//return: TRUE -连接成功 FALSE - 连接失败 //&lt;br /&gt;//Remark: 本验证使用 SQL Server 验证 //&lt;br /&gt;//============================================================//&lt;br /&gt;function BOOL DB_CheckSQLServerCon(svServerName,szDatabase,svUserName, svUserPassword,szError) &lt;br /&gt;OBJECT pADOConnObj, pADORecordSetObj;&lt;br /&gt;STRING szADOConnObjID, szADORecordSetObjID, szConnString, szSQL,svDriver;&lt;br /&gt;BOOL bExists;&lt;br /&gt;begin&lt;br /&gt;bExists = FALSE;&lt;br /&gt;svDriver = "SQL Server";&lt;br /&gt;try&lt;br /&gt;// Create ADO Connection Object to connect to the SQL server &lt;br /&gt;szADOConnObjID = "ADODB.Connection";&lt;br /&gt;set pADOConnObj = CreateObject(szADOConnObjID); &lt;/p&gt;&lt;p&gt;// Create the SQL string to complete the connection&lt;br /&gt;szConnString = "driver={" + svDriver + "};";&lt;br /&gt;szConnString = szConnString + "server=" + svServerName + ";";&lt;br /&gt;szConnString = szConnString + "uid=" + svUserName + ";";&lt;br /&gt;szConnString = szConnString + "pwd=" + svUserPassword + ";"; &lt;br /&gt;if(szDatabase !="") then&lt;br /&gt;szConnString = szConnString + "database=" + szDatabase + ";"; &lt;br /&gt;endif;&lt;/p&gt;&lt;p&gt;// Open the ADO Connection&lt;br /&gt;pADOConnObj.Open(szConnString); &lt;br /&gt;pADOConnObj.Close();&lt;br /&gt;bExists = TRUE;&lt;/p&gt;&lt;p&gt;/*// Create ADO Recordset object for the return&lt;br /&gt;szADORecordSetObjID = "ADODB.Recordset";&lt;br /&gt;set pADORecordSetObj = CreateObject(szADORecordSetObjID);&lt;/p&gt;&lt;p&gt;// Set some ADO Recordset properties&lt;br /&gt;pADORecordSetObj.CursorType = 3;&lt;br /&gt;pADORecordSetObj.ActiveConnection = pADOConnObj;&lt;/p&gt;&lt;p&gt;// Create the SQL string to retrieve the database if it exists&lt;br /&gt;szSQL = "Select name from sysdatabases where name='" + "master" + "'";&lt;/p&gt;&lt;p&gt;// Use the recordset to see if the database exists &lt;br /&gt;pADORecordSetObj.Open(szSQL);&lt;br /&gt;if (pADORecordSetObj.RecordCount = 1) then&lt;br /&gt;bExists = TRUE;&lt;br /&gt;endif; */&lt;br /&gt;catch &lt;br /&gt;//nErr =Err.Number; &lt;br /&gt;Sprintf(szError,"Error!Number:%d；",Err.Number);&lt;br /&gt;szError = szError +"Desc:"+Err.Description; &lt;br /&gt;bExists = FALSE;&lt;br /&gt;//Clean up&lt;br /&gt;set pADOConnObj = NOTHING; &lt;br /&gt;endcatch;&lt;br /&gt;set pADOConnObj = NOTHING;&lt;br /&gt;return bExists;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495620.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495620.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495614.html</id><title type="text">InstallShield高级应用--测试ORACL是否可连接</title><summary type="text">InstallShield高级应用，测试ORACL是否可连接</summary><published>2012-05-11T03:08:00Z</published><updated>2012-05-11T03:08:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495614.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495614.html"/><content type="html">&lt;p&gt;&amp;nbsp;实现原理：Oracle数据库连接是使用Microsoft ODBC for Oracle实现的。&lt;/p&gt;&lt;p&gt;通过Oracle连接数据库字符串，使用&amp;#8220;ADODB.Connection&amp;#8220;对象，连接到Access数据库，通过是否可连接成功判断&lt;/p&gt;&lt;p&gt;注意：当前电脑必包含ADODB.Connection个对象。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源码：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;EXPORT prototype BOOL DB_CheckOraclerCon(BYREF STRING,BYREF STRING,BYREF STRING,BYREF STRING); &lt;br /&gt;//Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;&lt;br /&gt;//Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;&lt;br /&gt;//============================================================//&lt;br /&gt;//function : DB_CheckOraclerCon //&lt;br /&gt;// //&lt;br /&gt;//purpose: 测试ORACL是否可连接 //&lt;br /&gt;// //&lt;br /&gt;//Argment: svServerName-Oracle连接服务名称 //&lt;br /&gt;// svUserName-登录帐号 //&lt;br /&gt;// svUserPassword-登录密码 //&lt;br /&gt;//return: TRUE -连接成功 FALSE - 连接失败 //&lt;br /&gt;//Remark: 本验证使用 Microsoft ODBC for Oracle 验证 //&lt;br /&gt;//============================================================//&lt;br /&gt;function BOOL DB_CheckOraclerCon(svServerName,svUserName,svUserPassword,szError)&lt;br /&gt;OBJECT pADOConnObj, pADORecordSetObj,pDBConObj;&lt;br /&gt;STRING szADOConnObjID, szADORecordSetObjID, szConnString, szSQL,svDriver;&lt;br /&gt;BOOL bExists;&lt;br /&gt;begin&lt;br /&gt;svDriver = "Microsoft ODBC for Oracle";&lt;br /&gt;bExists = FALSE;&lt;br /&gt;try&lt;br /&gt;// Create ADO Connection Object to connect to the SQL server &lt;br /&gt;szADOConnObjID = "ADODB.Connection";&lt;br /&gt;set pADOConnObj = CreateObject(szADOConnObjID); &lt;/p&gt;&lt;p&gt;// Create the Oracle string to complete the connection&lt;br /&gt;szConnString = "driver={" + svDriver + "};";&lt;br /&gt;szConnString = szConnString + "server=" + svServerName + ";";&lt;br /&gt;szConnString = szConnString + "uid=" + svUserName + ";";&lt;br /&gt;szConnString = szConnString + "pwd=" + svUserPassword + ";";&lt;br /&gt;//szConnString = szConnString + "database=master";&lt;/p&gt;&lt;p&gt;// Open the ADO Connection&lt;br /&gt;pADOConnObj.Open(szConnString);&lt;br /&gt;bExists = TRUE;&lt;br /&gt;catch&lt;br /&gt;Sprintf(szError,"Error:Number:%d；",Err.Number);&lt;br /&gt;szError = szError +"Desc:"+Err.Description; &lt;br /&gt;bExists = FALSE;&lt;br /&gt;//Clean up&lt;br /&gt;set pADOConnObj = NOTHING;&lt;br /&gt;endcatch;&lt;br /&gt;set pADOConnObj = NOTHING;&lt;br /&gt;return bExists;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495614.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495614.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495611.html</id><title type="text">InstallShield高级应用--打开文件对话框</title><summary type="text">InstallShield高级应用，打开文件对话框，若异常则打开文件夹对话框。</summary><published>2012-05-11T03:07:00Z</published><updated>2012-05-11T03:07:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495611.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495611.html"/><content type="html">&lt;p&gt;打开文件对话框，若异常则打开文件夹对话框。&lt;/p&gt;&lt;p&gt;实现方法如下&lt;/p&gt;&lt;p&gt;&lt;br /&gt;export prototype number OpenFileDialog(byref string); &lt;/p&gt;&lt;p&gt;//Open File Dialog User Com object "UserAccounts.CommonDialog"&lt;br /&gt;function OpenFileDialog(szFileFullPath)&lt;br /&gt;OBJECT ObjDialog; &lt;br /&gt;begin&lt;br /&gt;try&lt;br /&gt;set ObjDialog = CreateObject("UserAccounts.CommonDialog") ; &lt;br /&gt;ObjDialog.Filter = "Access File(*.mdb)|*.mdb";//|All Files(*.*)|*.*" ;&lt;br /&gt;//ObjDialog.FilterIndex = 1;&lt;br /&gt;//ObjDialog.InitialDir = "c:\\";&lt;br /&gt;//Open File Dialog&lt;br /&gt;if ObjDialog.ShowOpen() then&lt;br /&gt;szFileFullPath = ObjDialog.FileName;&lt;br /&gt;endif; &lt;br /&gt;catch &lt;br /&gt;set ObjDialog = NOTHING; &lt;br /&gt;return -1;&lt;br /&gt;endcatch; &lt;/p&gt;&lt;p&gt;set ObjDialog = NOTHING;&lt;br /&gt;return 0;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495611.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495611.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html</id><title type="text">InstallShield高级应用--获取机机所有ORACLE服务列表</title><summary type="text">InstallShield高级应用--获取机机所有ORACLE服务列表</summary><published>2012-05-11T03:06:00Z</published><updated>2012-05-11T03:06:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html"/><content type="html">//=====================================================================//&lt;br /&gt;// //&lt;br /&gt;// function GetOracleServerList //&lt;br /&gt;// 获取机机所有ORACLE服务列表//&lt;br /&gt;// purpose get the local oracle servers from the tnsnames.ora //&lt;br /&gt;// from the path %oraclepath%\nerwork\admin // &lt;br /&gt;// //&lt;br /&gt;// argment //&lt;br /&gt;// //&lt;br /&gt;// return local oracle server list //&lt;br /&gt;// //&lt;br /&gt;// author chenhuicong 2010-12-18 //&lt;br /&gt;// //&lt;br /&gt;//=====================================================================// &lt;p&gt;&lt;br /&gt;EXPORT prototype LIST GetOracleServerList();&lt;/p&gt;&lt;p&gt;function LIST GetOracleServerList()&lt;br /&gt;NUMBER nvHomeCount,nKeyType, nvSize,nFileHandle; &lt;br /&gt;LIST listID; &lt;br /&gt;STRING svOraclePath,svLine,svOraFileName,svOracleItem;&lt;br /&gt;INT iVal, iLength,iItemLen; &lt;br /&gt;begin &lt;br /&gt;//ora filename&lt;br /&gt;svOraFileName = "tnsnames.ora"; &lt;br /&gt;// defaut regedit root&lt;br /&gt;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); &lt;/p&gt;&lt;p&gt;//oralce regedit path &lt;br /&gt;if(RegDBGetKeyValueEx ("SOFTWARE\\ORACLE\\ALL_HOMES\\ID0", "PATH",nKeyType, svOraclePath, nvSize) = 0) then&lt;br /&gt;//oracle path &lt;br /&gt;svOraclePath= svOraclePath^"network\\admin\\";&lt;br /&gt;// Create a list to store lines from the file.&lt;br /&gt;listID = ListCreate (STRINGLIST);&lt;br /&gt;// Set the file mode to normal.&lt;br /&gt;OpenFileMode (FILE_MODE_NORMAL);&lt;br /&gt;// Open the file for editing.&lt;br /&gt;if(OpenFile (nFileHandle, svOraclePath, svOraFileName) = 0 ) then &lt;br /&gt;try&lt;br /&gt;// Get lines from the file into the list.&lt;br /&gt;while (GetLine (nFileHandle, svLine) = 0) &lt;br /&gt;if(svLine[0] != "#" &amp;amp;&amp;amp; svLine[0] != " " &amp;amp;&amp;amp; svLine[0] != "(") then&lt;br /&gt;iVal = 0;&lt;br /&gt;iLength = StrLength (svLine); &lt;br /&gt;while (iVal &amp;lt;= iLength)&lt;br /&gt;if(svLine[iVal] = "=" || svLine[iVal] = " ") then&lt;br /&gt;svLine[iVal] = NOTHING;&lt;br /&gt;endif; &lt;br /&gt;iVal++;&lt;br /&gt;endwhile; &lt;br /&gt;if(iLength &amp;gt; 0 ) then &lt;br /&gt;ListAddString (listID, svLine, AFTER); &lt;br /&gt;endif;&lt;/p&gt;&lt;p&gt;endif;&lt;br /&gt;endwhile;&lt;br /&gt;// Close the file.&lt;br /&gt;CloseFile (nFileHandle); &lt;br /&gt;// Remove the list from memory.&lt;br /&gt;//ListDestroy (listID); &lt;br /&gt;catch&lt;br /&gt;CloseFile (nFileHandle); &lt;br /&gt;//ListDestroy (listID);&lt;br /&gt;endcatch; &lt;br /&gt;endif;&lt;br /&gt;endif; &lt;/p&gt;&lt;p&gt;return listID;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495608.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chhuic/archive/2012/05/11/2495604.html</id><title type="text">InstallShield高级应用--获取本机所有的SQL服务</title><summary type="text">本实例是实现InstallShield 获取本机所有的SQL服务的方法，一般情况都可以成功获取。</summary><published>2012-05-11T03:04:00Z</published><updated>2012-05-11T03:04:00Z</updated><author><name>☆会飞的鱼☆</name><uri>http://www.cnblogs.com/chhuic/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495604.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495604.html"/><content type="html">//=====================================================================//&lt;br /&gt;// //&lt;br /&gt;// function GetSQLServers //&lt;br /&gt;// //获取本机所有的SQL服务&lt;br /&gt;// purpose get the local SQL servers // &lt;br /&gt;// //&lt;br /&gt;// argment //&lt;br /&gt;// //&lt;br /&gt;// return local SQL server list //&lt;br /&gt;// //&lt;br /&gt;// author chenhuicong 2010-12-24 //&lt;br /&gt;// //&lt;br /&gt;//=====================================================================// &lt;p&gt;&lt;br /&gt;EXPORT prototype LIST GetSQLServers();&lt;/p&gt;&lt;p&gt;function LIST GetSQLServers() &lt;br /&gt;OBJECT objSqlServers,objItem,objAQLDMOApp; &lt;br /&gt;string szSQLDMOSQLServer,szSQLDMOApp,szItem,szSQLServiceName1,szSQLServiceName; &lt;br /&gt;LIST listID; &lt;br /&gt;NUMBER nItemCnt,nStep,nType,nSize,nResult;&lt;br /&gt;begin&lt;br /&gt;/*nStep =0;&lt;br /&gt;szSQLDMOApp ="SQLDMO.Application";&lt;br /&gt;set objAQLDMOApp = CreateObject(szSQLDMOApp); &lt;br /&gt;try&lt;br /&gt;set objItem = objAQLDMOApp.ListAvailableSQLServers(); &lt;br /&gt;nItemCnt = objItem.Count; &lt;br /&gt;nStep =1;&lt;br /&gt;while(nStep &amp;lt; 5)&lt;br /&gt;szItem = objItem.Item(nStep); &lt;br /&gt;if(szItem[0] = "(" ) then&lt;br /&gt;ListAddString (listID, szItem, AFTER);&lt;br /&gt;endif; &lt;br /&gt;nStep++;&lt;br /&gt;endwhile;&lt;br /&gt;catch&lt;br /&gt;listID = NOTHING;&lt;br /&gt;objItem = NOTHING;&lt;br /&gt;endcatch; &lt;/p&gt;&lt;p&gt;if(szSQLServiceName1="") then&lt;br /&gt;szSQLServiceName="MSSQL"; &lt;br /&gt;ListAddString (listID, szSQLServiceName, AFTER);&lt;br /&gt;elseif(szSQLServiceName1!="MSSQLSERVER") then&lt;br /&gt;szSQLServiceName="MSSQL$"+szSQLServiceName1; &lt;br /&gt;ListAddString (listID, szSQLServiceName, AFTER);&lt;br /&gt;else&lt;br /&gt;szSQLServiceName=szSQLServiceName1; &lt;br /&gt;ListAddString (listID, szSQLServiceName, AFTER);&lt;br /&gt;endif;&lt;br /&gt;*/&lt;/p&gt;&lt;p&gt;listID = ListCreate (STRINGLIST);&lt;br /&gt;//获取服务器名称 &lt;br /&gt;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);&lt;br /&gt;nResult=RegDBGetKeyValueEx( "SOFTWARE\\Microsoft\\Microsoft SQL Server", "InstalledInstances", nType, szSQLServiceName1, nSize ); &lt;br /&gt;if(nResult &amp;lt; 0) then &lt;br /&gt;szSQLServiceName="MSSQL" ;&lt;br /&gt;else&lt;br /&gt;ListAddString (listID, "(local)", AFTER);&lt;br /&gt;endif; &lt;br /&gt;nResult=RegDBGetKeyValueEx( "SOFTWARE\\Microsoft\\Microsoft SQL Server\\SQLEXPRESS\\Setup", "SQLPath", nType, szSQLServiceName1, nSize ); &lt;br /&gt;if(nResult &amp;lt; 0) then &lt;br /&gt;szSQLServiceName="MSSQL" ;&lt;br /&gt;else&lt;br /&gt;ListAddString (listID, "(local)\\Express", AFTER);&lt;br /&gt;endif; &lt;br /&gt;return listID;&lt;br /&gt;end; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/chhuic/aggbug/2495604.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chhuic/archive/2012/05/11/2495604.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
