没有合适的资源?快使用搜索试试~ 我知道了~
软件自动升级-VB编程SQL Server上传下载exe
4星 · 超过85%的资源 需积分: 10 25 下载量 6 浏览量
2008-11-08
03:20:55
上传
评论
收藏 7KB TXT 举报
温馨提示
试读
7页
利用SQL Server上传下载exe实现VB编写的软件自动升级
资源推荐
资源详情
资源评论
Option Explicit
'---------------------------------------------------
' 这是一个用于将EXE文件从SQL SERVER中上传或下传的程序
' 读取命令行参数:EXE文件名及版本号
' 使用与EXE同名的INI为登录SQL SERVER
' 完成后以*****为命令行参数调用相应的EXE
'---------------------------------------------------
'数据库定义,要先增加一个名称与应用程序相同的记录
'Create TABLE [dbo].[xt_应用程序] (
'[应用程序] [tinyint] NOT NULL ,
'[名称] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
'[主版本] [tinyint] NOT NULL ,
'[次版本] [tinyint] NOT NULL ,
'[修正版本] [tinyint] NOT NULL ,
'[文件] [image] NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Public gConn As New ADODB.Connection
'------------------------------------
'主程序
'------------------------------------
Sub Main()
Dim Arrini() As String, i As Integer, ServerName As String, DataBase As String, UserName As String, Password As String
Dim Exename() As String, d As Date
On Error GoTo Errshow
Exename = GetCommandLine(3)
传送提示.Show '请自行加入一个窗体,显示传送的信息
d = Now()
Do Until DateDiff("s", d, Now) > 3
'---------------------------------------------------
' 这是一个用于将EXE文件从SQL SERVER中上传或下传的程序
' 读取命令行参数:EXE文件名及版本号
' 使用与EXE同名的INI为登录SQL SERVER
' 完成后以*****为命令行参数调用相应的EXE
'---------------------------------------------------
'数据库定义,要先增加一个名称与应用程序相同的记录
'Create TABLE [dbo].[xt_应用程序] (
'[应用程序] [tinyint] NOT NULL ,
'[名称] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
'[主版本] [tinyint] NOT NULL ,
'[次版本] [tinyint] NOT NULL ,
'[修正版本] [tinyint] NOT NULL ,
'[文件] [image] NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Public gConn As New ADODB.Connection
'------------------------------------
'主程序
'------------------------------------
Sub Main()
Dim Arrini() As String, i As Integer, ServerName As String, DataBase As String, UserName As String, Password As String
Dim Exename() As String, d As Date
On Error GoTo Errshow
Exename = GetCommandLine(3)
传送提示.Show '请自行加入一个窗体,显示传送的信息
d = Now()
Do Until DateDiff("s", d, Now) > 3
DoEvents
Loop
'获取配置文件的信息 请在此加入读取的变量:servername,database,username,password
'Arrini = GetIni(App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename(0) & ".ini")
gConn.Open "Data Source=" & ServerName & ";Initial Catalog=" & DataBase & ";", UserName, Password
If GetRevision(Exename(0), Val(Exename(1)), Val(Exename(2)), Val(Exename(3))) Then
Exename(0) = App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename(0) & ".exe *****"
Call Shell(Exename(0), vbNormalFocus)
End If
gConn.Close
Unload 传送提示
Exit Sub
Errshow:
Unload 传送提示
ShowErr "call by " & App.Title
End Sub
'----------------------------------
'获取指定程序的版本号
'----------------------------------
Private Function GetRevision(ByVal Exename As String, ByVal Major As Byte, ByVal Minor As Byte, ByVal Revision As Byte) As Boolean
Dim Rec As ADODB.Recordset, FileName As String
On Error GoTo Errshow
Set Rec = New ADODB.Recordset
Rec.Open "select 应用程序,主版本,次版本,修正版本,文件 from xt_应用程序 where 名称 = '" & Exename & "'", gConn, adOpenDynamic, adLockOptimistic
If Not Rec.EOF Then
FileName = App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename & ".exe"
Loop
'获取配置文件的信息 请在此加入读取的变量:servername,database,username,password
'Arrini = GetIni(App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename(0) & ".ini")
gConn.Open "Data Source=" & ServerName & ";Initial Catalog=" & DataBase & ";", UserName, Password
If GetRevision(Exename(0), Val(Exename(1)), Val(Exename(2)), Val(Exename(3))) Then
Exename(0) = App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename(0) & ".exe *****"
Call Shell(Exename(0), vbNormalFocus)
End If
gConn.Close
Unload 传送提示
Exit Sub
Errshow:
Unload 传送提示
ShowErr "call by " & App.Title
End Sub
'----------------------------------
'获取指定程序的版本号
'----------------------------------
Private Function GetRevision(ByVal Exename As String, ByVal Major As Byte, ByVal Minor As Byte, ByVal Revision As Byte) As Boolean
Dim Rec As ADODB.Recordset, FileName As String
On Error GoTo Errshow
Set Rec = New ADODB.Recordset
Rec.Open "select 应用程序,主版本,次版本,修正版本,文件 from xt_应用程序 where 名称 = '" & Exename & "'", gConn, adOpenDynamic, adLockOptimistic
If Not Rec.EOF Then
FileName = App.Path & IIf(Len(App.Path) > 3, "\", "") & Exename & ".exe"
剩余6页未读,继续阅读
资源评论
- mysea20042013-03-08最近版本更新不断,手工维护基本不可能,所以这个方法是比较有效的,研究一下,移植到oracle和delphi平台,好用再上传上来,大家分享
- 刘杨造梦程序开发建站2018-03-31这个 很不错 解决了我的问题
- areyong2018-07-18一时没看明白,删了,现在又想再下载看看
zhangyu05
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功