最近在做一个安装包,需要在软件卸载时将数据库删除,代码如下:
function DeleteDB(szLoginName, szPassword, svSQLsvr, szDBName)       STRING szSQL,szSyntal, szdatabase,szWaitTxt; 
       
begin
    
szWaitTxt=" 正在删除数据库....";  

SdShowMsg (szWaitTxt, TRUE); 
                                        
    szSyntal = TARGETDIR^"SQL Syntax\\Check_Delete_DB.sql";
  
   if (IsExistDB(szLoginName,szPassword,svSQLsvr, szDBName) == TRUE) then  
  
    szdatabase = "/E "+"/S "+svSQLsvr+" -i "+szSyntal;

if (LaunchAppAndWait("osql.exe", szdatabase,WAIT)<0) then; 

         MessageBox ("删除数据库失败!",SEVERE); 

         SdShowMsg (szWaitTxt, FALSE); 

         return FALSE; 

    endif;
    
    SdShowMsg (szWaitTxt, FALSE);  
    
    return TRUE;  
    
    endif;  
    
    SdShowMsg (szWaitTxt, FALSE);        return FALSE;end;       function IsExistDB(szLoginName, szPassword, svSQLsvr, szDBName)       BOOL bExist;       NUMBER i;       STRING szTemp;       VARIANT objSQL;begin       objSQL = CreateObject("SQLDMO.SQLServer"); 
       
       if IsObject(objSQL) then 
       
           objSQL.LoginSecure = TRUE; 
        
       objSQL.Connect(svSQLsvr, 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; 
          
       endif;       return bExist;end;Check_Delete_DB.sql内容很简单,如下:use master;
GO
  DROP   DATABASE   ITS;
GO但在InstallShield的OnMainUIAfter下调用的DeleteDB()后,然后用SQL Server Express的SQL Server管理器打开后发现ITS数据库仍在在里面,但下面的表和其他内容都被删除了,只留下了ITS数据库空壳在里面,不知什么原因,请各位大虾帮忙看下!只有一点分了,全部送上!!!