存储过程和进度条 vb应该是单进程的,如果我要执行一个存储过程(就算需要30秒吧),此时程序应该被这个进程占用,进度条将无法实现.................请问哪位高人有解决办法。在线等待! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用doevents+timer控件或许能实现 Public Function FuncGetData(ByVal FromPeriod As String, ByVal ToPeriod As String) As Boolean Dim cn As ADODB.Connection Dim cmd As ADODB.Command Dim connStr As String FuncGetData = False On Error GoTo ErrHandler connStr = connStrBudget Set cn = New ADODB.Connection cn.Open connStr Set cmd = New ADODB.Command With cmd .CommandText = "Proc_MI_Account_Sales_GP" .CommandType = adCmdStoredProc .CommandTimeout = 120 .ActiveConnection = cn .Parameters.Refresh .Parameters("@FromPeriod").Value = Replace(FromPeriod, "/", "") .Parameters("@ToPeriod").Value = Replace(ToPeriod, "/", "") End With cmd.Execute '就是這句執行時間太長 FuncGetData = True Set cmd = Nothing Set cn = Nothing Exit FunctionErrHandler: Set cmd = Nothing Set cn = Nothing Err.Raise vbObjectError, "clsGetData - FuncGetData", Err.DescriptionEnd Function cmd.Execute这个语句执行时间过长,DoEvents常用于循环语句中,对于这种不能用吧。 With cmd .CommandText = "Proc_MI_Account_Sales_GP" .CommandType = adCmdStoredProc .CommandTimeout = 120 .ActiveConnection = cn .Parameters.Refresh .Parameters("@FromPeriod").Value = Replace(FromPeriod, "/", "") .Parameters("@ToPeriod").Value = Replace(ToPeriod, "/", "") End With cmd.Execute 改寫成: cn.Execute "Proc_MI_Account_Sales_GP " & Replace(FromPeriod, "/", "") & " " & Replace(ToPeriod, "/", ""),,adAsyncExecute while cn.State = (adStateOpen Or adStateExecuting) StatusBar.Value = Format(StatusBar.Value,"0.0") doEvents wend 会JS的来,今日问题一 在客户端页面的DLL组件,如何获得所在页面的Document对象? webbrowser二次引导不同网页的问题的问题,紧急,50分 【放分】请问,大家是如何有效管理各类下载资料的?偶现在看到一堆压缩文件就头疼! 请问VB中引用和部件有什么区别? VB连接SQL数据库,高手帮帮忙,在线等,谢谢 如何得到机子的正确计算机名称. 有关数组,str$函数和表格的几个问题 新手问题5分 如何让ComboBox 控件里的内容显示完毕 为什么下的.RAR文件在VB中打开的是乱码、? 求助——关于C语言的数据类型与VB的对照(用与VB调用C编写的Dll)
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim connStr As String
FuncGetData = False
On Error GoTo ErrHandler
connStr = connStrBudget
Set cn = New ADODB.Connection
cn.Open connStr
Set cmd = New ADODB.Command
With cmd
.CommandText = "Proc_MI_Account_Sales_GP"
.CommandType = adCmdStoredProc
.CommandTimeout = 120
.ActiveConnection = cn
.Parameters.Refresh
.Parameters("@FromPeriod").Value = Replace(FromPeriod, "/", "")
.Parameters("@ToPeriod").Value = Replace(ToPeriod, "/", "")
End With
cmd.Execute '就是這句執行時間太長 FuncGetData = True
Set cmd = Nothing
Set cn = Nothing
Exit FunctionErrHandler:
Set cmd = Nothing
Set cn = Nothing
Err.Raise vbObjectError, "clsGetData - FuncGetData", Err.DescriptionEnd Function
.CommandText = "Proc_MI_Account_Sales_GP"
.CommandType = adCmdStoredProc
.CommandTimeout = 120
.ActiveConnection = cn
.Parameters.Refresh
.Parameters("@FromPeriod").Value = Replace(FromPeriod, "/", "")
.Parameters("@ToPeriod").Value = Replace(ToPeriod, "/", "")
End With
cmd.Execute
改寫成:
cn.Execute "Proc_MI_Account_Sales_GP " & Replace(FromPeriod, "/", "") & " " & Replace(ToPeriod, "/", ""),,adAsyncExecute
while cn.State = (adStateOpen Or adStateExecuting)
StatusBar.Value = Format(StatusBar.Value,"0.0")
doEvents
wend