Install Shield制作安装包技巧(SQL篇)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值