进度条和文件上传的问题,答对了有100分哦?

caobingyi 2008-08-07 08:48:06
我是用update 来提交文件的,文件的长度我也已经知道了,那么如何知道数据上传的进度?
下面的是部分代码:

Dim adofld As Field, DataArr() As Byte, file_num As Long
myRs.Open "select * from office", Mconnection, adOpenDynamic, adLockOptimistic
PathName = Trim(txtFileName.Text)
myRs.AddNew
Set adofld = myRs.Fields("files")
' adofld.Value = PathName

file_num = FreeFile '返回一个 Integer,代表下一个可供Open语句使用的文件号
Open PathName For Binary Access Read As file_num '打开磁盘文件
filelen = LOF(file_num) '求文件长度
'判断文件长度是否超过2M
If Format(filelen / 1024, "0") > 2048 Then
MsgBox "文件大小不能超过2M!"
Exit Sub
End If
ReDim DataArr(filelen) '根据文件长度定义动态数组大小
Get file_num, , DataArr '将一个已打开的磁盘文件读入数组变量之中
adofld.AppendChunk DataArr() '将数组内容存入image型字段中
Close file_num '关闭磁盘文件
myRs.Fields("filename") = CommonDialog1.FileTitle
myRs.Fields("mydate") = Format(Date, "yyyy-mm-dd")
myRs.Fields("person") = "小A"
myRs.Fields("remark") = CommonDialog1.FileName
'显示进度条
ProgressBar.Min = 0
ProgressBar.Max = filelen

myRs.Update
myRs.Close
txtFileName.Text = ""
MsgBox "上传成功!"
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aamiiLA 2008-08-08
  • 打赏
  • 举报
回复
up
lingshao0909 2008-08-08
  • 打赏
  • 举报
回复
顶不起来了吗?
evancss 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 langkew 的回复:]
cn2.Execute "delete from tablea where flag=1",,adAsyncExecute
[/Quote]
应该是
cn2.Execute "delete from tablea where flag=1",,adAsyncExecute

只是举了一个异步Connection的例子,不一定适合保存2进制数据
zhufenghappy 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lingshao0909 的回复:]
顶起来
[/Quote]
lingshao0909 2008-08-07
  • 打赏
  • 举报
回复
顶起来
lingshao0909 2008-08-07
  • 打赏
  • 举报
回复
关注,我也正在研究这个问题,希望解决
evancss 2008-08-07
  • 打赏
  • 举报
回复
能否在进度条上显示保存的字节数不太清楚,但使用下面方法应该可以使界面不至于停止响应

Dim WithEvents cn2 As ADODB.Connection
Dim bEnd as Boolean

Private Sub Command1_Click()
Set cn2 = New ADODB.Connection
cn2.Open ""

cn2.Execute "delete from tablea where flag=1"

do while not bEnd
doEvents
loop

cn2.close
End Sub

Private Sub cn2_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
bend = True
End Sub

Private Sub cn2_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
bend = False
End Sub
lingshao0909 2008-08-07
  • 打赏
  • 举报
回复
再顶起来

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧