Install Shield制作安装包技巧(SQL篇)
生活随笔
收集整理的這篇文章主要介紹了
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;
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篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C++ rudiment][转]typ
- 下一篇: SQL Cookbook:二、查询结果排