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的更多相关文章

  1. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  2. Oracle 和SQL Server 中的SQL语句使用区别

    最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较  字符数据类型  CHA ...

  3. MySQL、Oracle和SQL Server的分页查询语句

    假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: SELECT * FROM s ...

  4. Datatypes translation between Oracle and SQL Server

    Datatypes translation between Oracle and SQL Server part 1: character, binary strings Datatypes tran ...

  5. 在英文版操作系统中安装的MS SQL server,中文字段无法匹配

    在英文版的操作系统中安装的MS SQL server,会出现中文字段无法被匹配到.其原因在于英文环境下安装的MS SQL server的排序规则不包括中文. 所以解决办法就是更改MS SQL serv ...

  6. Oracle与SQL SERVER编程差异分析(入门)

    网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...

  7. [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)

    原帖由 qingyun 于 2010-6-21 15:44 发表 在写pl/sql的时候,有个很重要的注意点:比如:begin  update  某个sqlserver的表@dblink名字 .... ...

  8. Oracle与SQL Server事务处理的比较

    事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异.事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的 ...

  9. ORACLE和SQL SERVER的数据同步常用方法

    ORACLE和SQL SERVER的数据同步常用方法 1. 自己编程,或者第三方工具2. 在sqlserver中,使用linkedserver,访问oracle,然后编写job进行数据同步3. 在or ...

随机推荐

  1. K2 Blackpearl 4.6.8 安装步骤详解

    由于某些原因,我幼小的心灵受到了很大的创伤,倍感世态之炎凉,久久不能愈合,也因此很久没再接触K2 Blackpearl了.偶然来了兴趣,想整个K2的环境,闲暇之余了解其新功能,温故知新,也希望从中能讨 ...

  2. Duilib介绍以及各个类的简介

    转自http://note.sdo.com/u/icez/n/mvO-X~jyVnpFnM01A0000m DirectUI意为直接在父窗口上绘图(Paint on parent dc directl ...

  3. shell复习---文件解压命令

    需要自己部署服务端,故在申请了空间之后,需要自己安装linux自己,自己安装Apache等,所以下载的压缩文件需要运行.网上找了一些解压命令不对,特别试了下面的方法有效,特别记录一下: 用ssh 登陆 ...

  4. SQL注入中的WAF绕过技术

    目录 1.大小写绕过 2.简单编码绕过 3.注释绕过 4.分隔重写绕过 5.Http参数污染(HPP) 6.使用逻辑运算符 or /and绕过 7.比较操作符替换 8.同功能函数替换 9.盲注无需or ...

  5. 谈谈js中for in 需要注意的地方

    js中for in 可以遍历对象或数组的显性属性,也就是说我们自己定义的属性是可以遍历的,那些原型上默认已有的属性,例如:Object.prototype.toString.Object.protot ...

  6. ural 1250

    有点坑的dfs  看懂题应该就会做了 神圣海必然围成一个圈  dfs将神圣还外围的全部去掉   简单题 #include <cstdio> #include <cstring> ...

  7. Unity3D调用第三方SDK(之一)从eclipse到Unity3D 友盟

    原地址:http://www.360doc.com/content/14/0120/14/11670799_346638215.shtml 篇展示在Unity3D中调用友盟SDK的实现方法. 首先附上 ...

  8. Zookeeper + Hadoop + Hbase部署备忘

    网上类似的文章很多,本文只是记录下来备忘.本文分四大步骤: 准备工作.安装zookeeper.安装hadoop.安装hbase,下面分别详细介绍: 一 准备工作 1. 下载 zookeeper.had ...

  9. JS 封装类

    function HighchartsObj(id, type) { var that = this; this.options = { chart : { renderTo : id, type : ...

  10. NFS - Network File System网络文件系统

    NFS(Network File System/网络文件系统): 设置Linux系统之间的文件共享(Linux与Windows中间文件共享采用SAMBA服务): NFS只是一种文件系统,本身没有传输功 ...