zoukankan      html  css  js  c++  java
  • 系统升级程序和客户端升级程序

    客户端使用的升级程序:

    系统升级程序:

    数据库结构:

    存储过程:

    (查询系统的版本信息)

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    --////////////////////////////////////////////////////////////////////////////////////////
    --Description : 查询系统的版本信息.
    --Created  By : Jara 2012/04/27
    --Modified By :
    --////////////////////////////////////////////////////////////////////////////////////////
    ALTER  PROCEDURE [dbo].[P$Get_SystemVer]
    @SystemID    varchar(30),
    @SystemSVer  varchar(30) OUTPUT,
    @ExeFileName varchar(50) OUTPUT
    AS

    SELECT @SystemID  =LTrim(RTrim(@SystemID))
    SELECT @SystemSVer=''

    SELECT @ExeFileName=LTrim(RTrim([FileName]))
      FROM SystemData
      WHERE SystemID = @SystemID AND Upper(Right(RTrim([FileName]),4)) = '.EXE'

    SELECT @SystemSVer=DBO.F$Get_VerStr(B.VerNo1, B.VerNo2, B.VerNo3, B.VerNo4)
      FROM SystemInfo B
      WHERE B.SystemID=@SystemID

    SELECT X.*
    FROM
    (
      SELECT A.SystemID, A.[FileName], IsNull(A.CommonID,'') AS CommonID,
           dbo.F$Get_FilePath('FilePath') + A.SystemID + '//' AS Directory,
           DBO.F$Get_VerStr(B.VerNo1, B.VerNo2, B.VerNo3, B.VerNo4) AS VerNo,
           Convert(varchar(1),'N') AS UpdateStatus
      FROM SystemData A INNER JOIN SystemInfo B ON A.SystemID=B.SystemID
      WHERE A.SystemID=@SystemID AND A.CommonID IS NULL
      UNION ALL
      SELECT A.SystemID, A.[FileName], IsNull(A.CommonID,'') AS CommonID,
           dbo.F$Get_FilePath('FilePath') + A.CommonID + '//' AS Directory,
           DBO.F$Get_VerStr(B.VerNo1, B.VerNo2, B.VerNo3, B.VerNo4) AS VerNo,
           Convert(varchar(1),'N') AS UpdateStatus
      FROM SystemData A INNER JOIN CommonDLL B ON A.CommonID=B.CommonID AND A.[FileName] = B.[FileName]
      WHERE A.SystemID=@SystemID AND A.CommonID IS NOT NULL
    ) X ORDER BY X.CommonID, X.[FileName]

    (获取共享DLL升级新版本信息)

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    --////////////////////////////////////////////////////////////////////////////////////////
    --Description : 获取共享DLL升级新版本信息.
    --Created  By : JARA 2009/06/02
    --Modified By :
    --////////////////////////////////////////////////////////////////////////////////////////
    ALTER   PROC [dbo].[P$NewDLLVer]
    @CommonID varchar(30),
    @FileName varchar(100)
    AS
    DECLARE @VerNo1  tinyint,
            @VerNo2  tinyint,
            @VerNo3  tinyint,
            @VerNo4  tinyint,
            @VerNo_1 tinyint,
            @VerNo_2 tinyint,
            @VerNo_3 tinyint,
            @VerNo_4 tinyint

    SELECT @VerNo1=VerNo1, @VerNo2=VerNo2, @VerNo3=VerNo3, @VerNo4=VerNo4
      FROM CommonDLL
      WHERE CommonID=@CommonID AND [FileName]=@FileName

    SELECT @VerNo_1=VerNo1,@VerNo_2=VerNo2,@VerNo_3=VerNo3,@VerNo_4=VerNo4
      FROM dbo.F$Get_NewVer(@VerNo1,@VerNo2,@VerNo3,@VerNo4)

    UPDATE CommonDLL SET VerNo1=@VerNo_1,VerNo2=@VerNo_2,VerNo3=@VerNo_3,VerNo4=@VerNo_4
      WHERE CommonID=@CommonID AND [FileName]=@FileName

    (获取系统升级新版本信息)

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    --////////////////////////////////////////////////////////////////////////////////////////
    --Description : 获取系统升级新版本信息.
    --Created  By : JARA 2009/06/02
    --Modified By :
    --////////////////////////////////////////////////////////////////////////////////////////
    ALTER PROCEDURE [dbo].[P$NewSystemVer]
    @SystemID varchar(30)
    AS
    DECLARE @VerNo1  tinyint,
            @VerNo2  tinyint,
            @VerNo3  tinyint,
            @VerNo4  tinyint,
            @VerNo_1 tinyint,
            @VerNo_2 tinyint,
            @VerNo_3 tinyint,
            @VerNo_4 tinyint
    SELECT @VerNo1=VerNo1, @VerNo2=VerNo2, @VerNo3=VerNo3, @VerNo4=VerNo4
      FROM SystemInfo
      WHERE SystemID=@SystemID

    SELECT @VerNo_1=VerNo1,@VerNo_2=VerNo2,@VerNo_3=VerNo3,@VerNo_4=VerNo4
      FROM dbo.F$Get_NewVer(@VerNo1,@VerNo2,@VerNo3,@VerNo4)

    UPDATE SystemInfo SET VerNo1=@VerNo_1,VerNo2=@VerNo_2,VerNo3=@VerNo_3,VerNo4=@VerNo_4
      WHERE SystemID=@SystemID

    SQL函数:

    (获取新版本号)

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    --////////////////////////////////////////////////////////////////////////////////////////
    --Description : 获取新版本号
    --Created  By : JARA 2009/06/09
    --Modified By :
    --////////////////////////////////////////////////////////////////////////////////////////
    ALTER  FUNCTION [dbo].[F$Get_NewVer](@VerNo1 tinyint,@VerNo2 tinyint,@VerNo3 tinyint,@VerNo4 tinyint)
    RETURNS @Ver_Table Table(VerNo1 tinyint,VerNo2 tinyint,VerNo3 tinyint,VerNo4 tinyint)
    AS 
    BEGIN

    DECLARE @VerNo_1 tinyint,
            @VerNo_2 tinyint,
            @VerNo_3 tinyint,
            @VerNo_4 tinyint

    SELECT @VerNo_4=@VerNo4+1

            IF(@VerNo_4>99)
     BEGIN
            SET @VerNo4=0
     SELECT @VerNo_3=@VerNo3+1

      IF(@VerNo_3>99)
      BEGIN
      SET @VerNo3=0
      SELECT @VerNo_2=@VerNo2+1

       IF(@VerNo_2>99)
       BEGIN
       SET @VerNo2=0
       SELECT @VerNo_1=@VerNo1+1
        
        IF(@VerNo_1<=99)
        BEGIN
        SELECT @VerNo1=@VerNo_1
        END
     
       END
       ELSE
       BEGIN
       SELECT @VerNo2=@VerNo_2
       END

      END
      ELSE
      BEGIN
      SELECT @VerNo3=@VerNo_3
      END

     END
     ELSE
     BEGIN
     SELECT @VerNo4=@VerNo_4
     END

    INSERT INTO @Ver_Table(VerNo1,VerNo2,VerNo3,VerNo4) VALUES(@VerNo1,@VerNo2,@VerNo3,@VerNo4)
    RETURN
    END


     以上即可实现程序的更新和客户端的自动更新。

  • 相关阅读:
    通过intent启动Activity
    ubuntu12.04的NFS配置
    内核添加对yaffs2文件系统的支持
    linux内核移植到S5pv210
    nand驱动移植
    tiny210V2 Uboot kernel filesystem 烧写和启动
    linux C++通过ntp协议获取网络时间
    tiny210移植linux内核(3.0.8)杂项
    Ubuntu系统中Sogou输入法面板问题解决方案
    Ubuntu系统中登陆阿里云服务器的方法
  • 原文地址:https://www.cnblogs.com/jara/p/3405697.html
Copyright © 2011-2022 走看看