杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2405|回复: 0

InstallShield 检查是否安装ORACLE或SQL Server

[复制链接]
发表于 2017-3-1 18:15:08 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
实现原理:判断是否存在,是通过查找注册表是否含有相应标识来判断的。

注意:XP与WIN7系统注册表保存方式不一样,32位与64位操作系统注册表保存方式也不一样,需要分别判断。在此只判断32位操作系统的情况。

源码:
  1. ////检查是否有安装Oracle
  2. function NUMBER CheckOracleISExist()
  3. STRING svOraclePath,nvValue;
  4. NUMBER nKeyType,nvType, nvSize;
  5. begin
  6. // defaut regedit root
  7. RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
  8. //oralce regedit path
  9. if(RegDBGetKeyValueEx("SOFTWARE\\ORACLE\\ALL_HOMES","DEFAULT_HOME",nvType,nvValue,nvSize) = 0) then
  10. return 0;
  11. endif;
  12. return -1;
  13. end;

  14. // SQL Server 2000, SQL Server 2005, SQL Server 2008,
  15. // SQL Server 2005 Express,SQL Server 2008 Express
  16. //检查是否有安装SQL Server
  17. function NUMBER CheckSQLServer()
  18. STRING nvValue;
  19. NUMBER nvType, nvSize;
  20. begin
  21. //return -1;
  22. // defaut regedit root
  23. RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
  24. // SQL Server 2000
  25. if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server","InstalledInstances",nvType,nvValue,nvSize) = 0) then
  26. return 0;
  27. endif;
  28. //SQL Server 2005 Version
  29. if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2005 Redist\\BOL\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then
  30. return 0;
  31. endif;
  32. //SQL Server 2008 Express
  33. //if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server 2008 Redist\\SQLNCLI10\\2052\\CurrentVersion","Version",nvType,nvValue,nvSize) = 0) then
  34. // return 0;
  35. //endif;
  36. // Express
  37. if(RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Microsoft SQL Server\SQLEXPRESS\setup","SQLPath",nvType,nvValue,nvSize) = 0) then
  38. return 0;
  39. endif;
  40. return -1;
  41. end;
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-19 19:59 , Processed in 0.100753 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表