PDA

View Full Version : سوال: نمایش میزان پیشرفت آپلود و دانلود شدن فایل در دیتابیس با progessbar



ali190
دوشنبه 29 اسفند 1390, 09:26 صبح
باسلام و عرض خسته نباشید
پیشاپیش عید نوروز رو خدمت همتون تبریک عرض میکنم
میخواستم بدونم چطور میتونم میزان پیشرفت ذخیره شدن و همچنین فراخوانی یک فایل رو از دیتابیس رو با استفاده از progessBar نمایش بدم.
ممنونم
یاعلی

ali190
دوشنبه 29 اسفند 1390, 16:36 عصر
سلام
ببخشید این امر آیا امکانپذیر هست یا نه؟

vof.ir
سه شنبه 01 فروردین 1391, 05:10 صبح
با سلام بله، زمانی که دارید فایل را خورده خورده به داخل یک استیم میریزید که بخواهید بعدش تحویل دیتایس بدهید، میشه اندازه گرفت که چقدرش مانده

ali190
سه شنبه 01 فروردین 1391, 10:25 صبح
سلام
من فایل ها رو با کد زیر در دیتابیس ذخیره میکنم:

Private dbstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\mydb.mdb"
Public Sub SaveFile()
Try
Dim filebyte As Byte()
Dim con As OleDbConnection
Dim cmd As OleDbCommand
filebyte = IO.File.ReadAllBytes(txtfilepath.Text)
con = New OleDbConnection(dbstr)
cmd = New OleDbCommand("Insert into tblFiles Values(@filepath,@data)", con)
cmd.Parameters.Add("@filepath", OleDbType.VarChar).Value = txtfilepath.Text
cmd.Parameters.Add("@data", OleDbType.Binary).Value = filebyte
con.Open()
cmd.ExecuteNonQuery()
con.Close()
MsgBox("File saved into database", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Exclamation)
End Try
End Sub
آیا با این کد میشه این محاسبات رو انجام داد ، یا باید استراتژی رو عوض کرد؟
ممنونم
یاعلی

vof.ir
چهارشنبه 02 فروردین 1391, 03:16 صبح
با این روش فکر نمی کنم، روشی که من مد نظرم بود، به این صورت هست که یک فایل را با استفاده از یک بافر به صورت چند مرحله ای میخوانند و در دیتابیس درج میکنند، اونجوری شاید بشه درصد پیشرفت پراگس بار را به تعداد خالی و پر شدن های بافر و حجم بافر، متصل کرد!

ali190
چهارشنبه 02 فروردین 1391, 11:57 صبح
سلام
امکانش هست یه نمونه قرار بدید
ممنونم
یاعلی

vof.ir
جمعه 04 فروردین 1391, 21:36 عصر
متاسفانه، مثالی را که باید، پیدا نکردم ،
اما به این صورت بود که، یک فایل را به صورت چند مرحله ای توسط یک بافر ، درون یک استریم میریخت، بعد تمام آن را به عنوان یک پارامتر به یک کوئری پاس می داد
و...
البته، این روشی که عرض کردم، فقط بخش خواندن فایل را پشتیبانی می کند برای نمایش واقعی درصد پیشرفت کار، چرا که بعد از این مرحله، بخش درج فایل در پایگاه داده باقی مانده است!!!