InstallShield高级应用--检查是否安装ORACLE或SQL Server
InstallShield高级应用--检查是否安装ORACLE或SQL Server
实现原理:判断是否存在,是通过查找注册表是否含有相应标识来判断的。
注意:XP与WIN7系统注册表保存方式不一样,32位与64位操作系统注册表保存方式也不一样,需要分别判断。在此只判断32位操作系统的情况。
源码:
////检查是否有安装Oracle
function NUMBER CheckOracleISExist()
STRING svOraclePath,nvValue;
NUMBER nKeyType,nvType, nvSize;
begin
// defaut regedit root
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
//oralce regedit path
if(RegDBGetKeyValueEx("SOFTWARE\\ORACLE\\ALL_HOMES","DEFAULT_HOME",nvType,nvValue,nvSize) = 0) then
return 0;
endif;
return -1;
end;
// SQL Server 2000, SQL Server 2005, SQL Server 2008,
// SQL Server 2005 Express,SQL Server 2008 Express
//检查是否有安装SQL Server
function NUMBER CheckSQLServer()
STRING nvValue;
NUMBER nvType, nvSize;
begin
//return -1;
// defaut regedit root
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
// SQL Server 2000
if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server","InstalledInstances",nvType,nvValue,nvSize) = 0) then
return 0;
endif;
//SQL Server 2005 Version
if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2005 Redist\\BOL\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then
return 0;
endif;
//SQL Server 2008 Express
//if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2008 Redist\\SQLNCLI10\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then
// return 0;
//endif;
// Express
if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server\SQLEXPRESS\setup","SQLPath",nvType,nvValue,nvSize) = 0) then
return 0;
endif;
return -1;
end;
InstallShield高级应用--检查是否安装ORACLE或SQL Server的更多相关文章
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- Oracle 和SQL Server 中的SQL语句使用区别
最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHA ...
- MySQL、Oracle和SQL Server的分页查询语句
假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: SELECT * FROM s ...
- Datatypes translation between Oracle and SQL Server
Datatypes translation between Oracle and SQL Server part 1: character, binary strings Datatypes tran ...
- 在英文版操作系统中安装的MS SQL server,中文字段无法匹配
在英文版的操作系统中安装的MS SQL server,会出现中文字段无法被匹配到.其原因在于英文环境下安装的MS SQL server的排序规则不包括中文. 所以解决办法就是更改MS SQL serv ...
- Oracle与SQL SERVER编程差异分析(入门)
网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...
- [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)
原帖由 qingyun 于 2010-6-21 15:44 发表 在写pl/sql的时候,有个很重要的注意点:比如:begin update 某个sqlserver的表@dblink名字 .... ...
- Oracle与SQL Server事务处理的比较
事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异.事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的 ...
- ORACLE和SQL SERVER的数据同步常用方法
ORACLE和SQL SERVER的数据同步常用方法 1. 自己编程,或者第三方工具2. 在sqlserver中,使用linkedserver,访问oracle,然后编写job进行数据同步3. 在or ...
随机推荐
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(八)
使用 HttpResponse 对象 HttpResponse 对象是与 HttpRequest 对象相对应的,用来表示构建中的响应.它当中提供了方法和属性可供我们自定义响应,有一些在使用 MVC 视 ...
- 1043: [HAOI2008]下落的圆盘 - BZOJ
Description有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求.Input n ri xi y1 ... rn xn y ...
- Extjs4 treePanel异步加载菜单(后台从数据库读取)
运行环境:springMVC+mybatis 一.建表 说明:0表示此节点为非叶子节点,即此节点还包括了子节点:1表示此节点为叶子节点,即此节点没有子节点.:关于图标iconCls是从Extjs的文件 ...
- [DP] 堆盒子问题
给一堆盒子,知道每个盒子的三围(长宽高),盒子正面朝你,不能旋转摆放,按照大的放在小的下面的原则堆起来,必须是 strictly larger,同样大小的盒子不行,问怎么样堆到最大的高度? 思路:动态 ...
- notepad++ 开启/关闭 记住最后打开的文件
开启记住最后打开的文件 1) 6.3以前版本如下设置: 设置-->首选项-->其他 把左下角的 "记住最后打开文件" 勾选. 2) 6.3以后版本如下设置: 设置--& ...
- 深入理解计算机各种类型大小(sizeof)
深入理解计算机各种类型大小(sizeof) // Example of the sizeof keyword size_t i = sizeof( int ); struct align_dep ...
- Android 国际化文字
本例演示中英文切换 在resource文件夹添加values-zh,这个文件夹对应中文环境的values文件夹,然后添加strings.xml: <?xml version="1.0& ...
- android dialog 原来dialog对话框也有自己的按键监听事件 onKeyDown方法
探讨在一个activity中按menu键时弹出自己定义的dialog(自定义菜单对话框)时,再按一次手机的menu键发现这个自定义的dialog菜单并没有关闭,原来是这个dialog内部也有onKey ...
- dtp--eclipse的安装数据源管理的一个插件的安装方法
1. 下载eclipse dtp 插件 http://download.eclipse.org/datatools/updates/1.11 help——>install new softwa ...
- Android:控件布局(绝对布局)AbsoluteLayout
绝对布局也叫坐标布局,指定元素的绝对位置,因为适应性很差,一般很少用到.可以使用RelativeLayout替代. 常用属性: android:layout_x --------组件x坐标 andr ...