1、检查SQL Server是否安装
  
  prototype CheckSQL();
  function CheckSQL()
   BOOL bSuccess;
   NUMBER nType, nvSize;
   STRING szVer;
   STRING szSetupVer, szSetupPath;
  begin
   RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
   szSetupPath = "SOFTWARE\\Microsoft\\MSSQLServer\\Setup";
   szSetupVer = "SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\CurrentVersion";
   //获取SQL Server版本
   nType = REGDB_STRING;
   if (RegDBGetKeyValueEx ( szSetupVer, "CurrentVersion" , nType , szVer , nvSize ) < 0) then
   bSuccess = FALSE;
   else
   //获取SQL Server安装路径
   if (RegDBGetKeyValueEx ( szSetupPath, "SQLPath" , nType , szSQLPATH , nvSize ) < 0) then
   bSuccess = FALSE;
   else
   bSuccess = TRUE;
   endif;
   endif;
  
   return bSuccess;
  end;
  
  2、检查SQL Server版本号,是否安装了SP3
  prototype CheckSQLVersion();
  function CheckSQLVersion()
   BOOL bSuccess;
   NUMBER nType, nvSize;
   STRING szVer;
   STRING szSetupVer;
  begin
   RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
   bSuccess = FALSE;
   szSetupVer = "SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\CurrentVersion";
   nType = REGDB_STRING;
   if (RegDBGetKeyValueEx ( szSetupVer, "CSDVersion" , nType , szVer , nvSize ) < 0) then
   bSuccess = FALSE;
   else
   if szVer = '8.00.761' then
   bSuccess = TRUE;
   endif;
   endif;
   return bSuccess;
  end;
  
  3、启动SQL Server服务器
  prototype StartSQLServr(STRING, STRING);
   //传入用户名,用户密码
  
  function StartSQLServr(szLoginName, szPassword)
   BOOL bSuccess;
   VARIANT objSQL;
  begin
   objSQL = CreateObject("SQLDMO.SQLServer");
   if IsObject(objSQL) then
   try
   try
   objSQL.Start(TRUE, "(Local)", szLoginName, szPassword);
   catch
   objSQL.Connect("(Local)", szLoginName, szPassword);
   endcatch;
   catch
   bSuccess = FALSE;
   return bSuccess;
   endcatch;
   else
   bSuccess = FALSE;
   return bSuccess;
   endif;
  
   if objSQL.VerifyConnection then
   bSuccess = TRUE;
   else
   bSuccess = FALSE;
   endif;
  
   return bSuccess;
  end;
  
  4、检查数据库是否已经存在
  prototype IsExistDB(STRING, STRING, STRING);
   //传入用户名,用户密码,数据库名
  function IsExistDB(szLoginName, szPassword, szDBName)
   BOOL bExist;
   NUMBER i;
   STRING szTemp;
   VARIANT objSQL;
  begin
   objSQL = CreateObject("SQLDMO.SQLServer");
  
   objSQL.Connect("(Local)", szLoginName, szPassword);
  
   bExist = FALSE;
   for i = 1 to objSQL.Databases.Count
   StrToUpper(szTemp, objSQL.Databases.Item(i).Name);
   if (szTemp == szDBName) then
   bExist = TRUE;
   return bExist;
   endif;
   endfor;
  
   return bExist;
  
  end;
  
  5、删除数据库
  prototype DeleteDB(STRING, STRING, STRING);
   //传入用户名,用户密码,数据库名
  function DeleteDB(szLoginName, szPassword, szDBName)
   STRING szSQL;
  
  begin
  
   szSQL = "declare @dttm varchar(55) \n"
   + "select @dttm=convert(varchar,getdate(),113)\n"
   + "raiserror('Beginning Check Database at %s ....',1,1,@dttm) with nowait \n"
   + "GO \n"
   + "use master \n"
   + "go \n"
   + "if exists (select * from sysdatabases where name='" + szDBName + "') \n"
   + "begin \n"
   + "raiserror('Dropping existing " + szDBName + " database ....',0,1) \n"
   + " DROP database " + szDBName + "\n"
   + "end \n"
   + " GO \n"
   + "CHECKPOINT \n"
   + "go \n";
  
  
   if !ExecuteSQL(szLoginName, szPassword, szSQL) then
   return FALSE;
   endif;
  
   return TRUE;
  
  end;

转载于:https://www.cnblogs.com/N0Game/archive/2009/06/16/1504363.html

Install Shield制作安装包技巧(SQL篇)相关推荐

  1. Qt软件发布(版本信息,Release版程序,代码打包,制作安装包)

    序言 当我们完成了Qt程序的开发,希望交予测试,或是正式发布的时候,需要将我们的程序进行层层封装,最终以一个安装包的形式呈现给用户.专业版的软件发布,以Qt软件为例,需要三个步骤:生成版本信息,生成R ...

  2. LabVIEW编程技巧:如何制作安装包程序

    目录 一.LabVIEW中制作安装程序的方法 二.生成应用程序(EXE程序) 二.制作安装包程序 三.总结 当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用 ...

  3. 利用WIX制作安装包(2)

    利用WIX制作安装包(2) 原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成 ...

  4. python制作安装包(setup.py)

    1.制作setup.py from distutils.core import setupsetup(name='Myblog',version='1.0',description='My Blog ...

  5. Debian、Ubuntu源码编译制作安装包(二)

    在<Debian.Ubuntu源码编译制作安装包(一)>文章中描述了dpkg基本制作安装包过程,本篇文章描述如何增加patch及解决出错问题. 章节预览: 5. 增加patch 6. 修改 ...

  6. 使用NSIS制作安装包(1)

    NSIS是一个基于脚本语言的制作安装包的免费工具,它使用起来也很方便,下面是制作安装.NET框架和语言包的脚本. NSIS的编译器和脚本编辑工具可以到nsis.sf.net上下载 !include W ...

  7. InstallAnywhere制作安装包

    目录 InstallAnywhere制作安装包 启动installAnywhere 选择"Open Existing Project" 选择"Open Recent Pr ...

  8. Install Shield制作安装软件

    Install Shield制作安装软件 摘要 : 本文介绍了利用Install Shield制作应用程序安装软件的方法.在文中作者除了对常用的一些技术进行介绍外,还对安装过程位图的显示.标题和背景的 ...

  9. vs2005制作安装包(自动安装.net framework 2.0)(小寿原创)

    vs2005制作安装包(自动安装.net framework 2.0)(小寿原创) 新建项目-> 其他项目类型->安装和部署->安装向导! 安装向导会提示你添加要安装的文件,这时你可 ...

最新文章

  1. 详解zabbix中文版安装部署
  2. 你应该知道的计算机网络知识
  3. Reg Infomation
  4. 用户 'XXX\SERVERNAME$' 登录失败。 原因: 找不到与提供的名称匹配的登录名。 [客户端: ]...
  5. asm java 反编译_dex-tools-2.1-SNAPSHOT 反编译Java class文件和Android dex文件到Java源码的利器 - 下载 - 搜珍网...
  6. JavaEE 企业级分布式高级架构师课程_汇总贴
  7. 什么是浏览器跨域访问操作,js如何实现?
  8. k8s Service之LoadBalancer和ExternalName
  9. “Paper + Code”才是研读论文的正确姿势 | PaperDaily #02
  10. 安装windows时loading files结束就重启_Boot Camp安装windows 10
  11. 剑指offer七:两个链表的第一个公共结点
  12. 蓝牙mesh组网-JDY-24M初步探索
  13. 直流电动机调速matlab,基于MATLAB龙门刨床直流电动机调速系统仿真研究
  14. linux驱动开发 ST7789 LCD驱动移植(I.MX6ULL平台)
  15. MYSQL 生成周末、节假日,日期表
  16. 鸿蒙和米家啥区别,魅族家居接入鸿蒙!
  17. 中国混合现实产业调研分析及发展战略研究报告2021-2027年版
  18. 租赁风控模型之决策树
  19. 2021年,我推荐你学习的编程语言,各类语言横向对比
  20. 关于redis的BussinessName取法

热门文章

  1. 新手学习C语言编程的8个致命错误,你中招了吗?
  2. C语言对电脑做的事儿啊,总有那么一丝恐怖,C语言操盘电脑两例
  3. 论游戏项目中的左与右
  4. python3进阶_Python3 进阶教程 2020全新版
  5. springboot 打包_springboot打包-体积太大怎么办
  6. php链接远程socket,php使用socket获取远程图片
  7. Ubuntu16.04通过wine环境安装微信与QQ等软件
  8. 关于视频光端机调制方式及介质特点的介绍
  9. 【渝粤教育】21秋期末考试混凝土结构10515k1
  10. 【渝粤教育】广东开放大学 文化经济实务 形成性考核 (49)