سلام
دوستان من میخوام یک هنگام واردکردن یک سری اطلاعات در بانک اطلاعاتی اکسس یک فایل پی دی اف هم اتچ کنم.
حالا نحوه ی اینکار رو نمی دونم به چه صورت باید انجام بدم.میشه توضیح بدید>؟
سلام
دوستان من میخوام یک هنگام واردکردن یک سری اطلاعات در بانک اطلاعاتی اکسس یک فایل پی دی اف هم اتچ کنم.
حالا نحوه ی اینکار رو نمی دونم به چه صورت باید انجام بدم.میشه توضیح بدید>؟
سلام
برای ذخیره فایل در بانک میتوانیم از کدی مشابه زیر استفاده کنیم:
Private Sub Command1_Click()
Dim bytDByte() As Byte
Dim sFl$
sFl$ = App.Path & "\mpdf.pdf"
Open sFl$ For Binary Access Read As #1
ReDim bytDByte(LOF(1))
Get #1, , bytDByte()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("obj").Value = bytDByte
Close
End Sub
و برای بازیابی آن از بانک:
Private Sub Command2_Click()
Dim bytDByte() As Byte
Dim sFl$
sFl$ = App.Path & "\extpdf.pdf"
Open sFl$ For Binary Access Read Write As #1
bytDByte = Adodc1.Recordset.Fields("obj").Value
Put #1, , bytDByte
Close
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
ممنون از جواب خوبتون ولی میشه در مورد خطوط برنامه یک توضیح مختصر بدید؟؟ فیلدی که برای فایل PDF نوعش باید چی باشه؟؟ اینطور که من فهمیدم این سورس نام فایل رو در بانک ذخیره می کنه و فایل باید در کنار بانک باشه که وقتی نام بانک خونده میشه فایل رو باز کنه؟؟
ممنون
آخرین ویرایش به وسیله vbhamed : چهارشنبه 06 مرداد 1395 در 15:20 عصر
در مورد خطوط برنامه یک توضیح مختصر بدید؟؟Dim bytDByte() As Byteآرایه ای از نوع بایت اعلان می کنیم
Open sFl$ For Binary Access Read As #1فایل را برای خواندن باز میکنیم
ReDim bytDByte(LOF(1))فضای بافری را برای آرایه به اندازه طول فایل در نظر میگیریم
Get #1, , bytDByte()فایل را در آرایه می ریزیم
Adodc1.Recordset.AddNewرکورد جدیدی ایجاد و آرایه را در بانک ذخیره میکنیم، obj نام نمونه فیلد مورد نظر است که بایستی با نام جدید جایگزین شود
Adodc1.Recordset.Fields("obj").Value = bytDByte
bytDByte = Adodc1.Recordset.Fields("obj").Valueمحتویات فیلد مشخص شده را در آرایه میریزیم
Put #1, , bytDByteداده ها را در فایل باز شده میریزیم
باید از نوع OLE باشد، برای ذخیره داده های باینریفیلدی که برای فایل PDF نوعش باید چی باشه؟؟
فایل کامل در بانک ذخیره میشود، برای ذخیره فقط مسیر فایل دو خط دستوری مانند زیر کافی است:اینطور که من فهمیدم این سورس نام فایل رو در بانک ذخیره می کنه و فایل باید در کنار بانک باشه که وقتی نام بانک خونده میشه فایل رو باز کنه؟؟Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("obj").Value = "C:\mpdf.pdf"
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
یک سوال دیگه هم داشتم: من چطوری می تونم یک فایل PDF را در نرم افزار Attach کنم؟؟ میشه اینم توضیح بدید؟آخه شما در برنامه فایل Mpdf را به صورت نرم افزاری Atach کردید! حالا من می خوام وقتی دارم اطلاعات رو در نرم افزار وارد می کنم خودم فایل PDF رو همونجا Attach نرم افزار کنم؟؟
تشکر
سلام علیکم
اگر منظورتون افزودن فایل به ریسورس است، تنها در زمان طراحی میتوانیم اینکار را انجام دهیم، کد بالا فایل را به دیتابیس ضمیمه میکند
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام خدمت همه عزیزان
محسن جان ممنونم از توضیحاتت
امکانش هست که پروسه دانلود آپلود فایل در دیتابیس رو با پروسزبار نمایش بدیم؟
ممنونم
یاعلی
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
ممنون از توضیحاتت
امکانش هست این دو قسمت (یعنی نمایش میزان دانلود و آپلود رو در پروسزبار) رو نمایش بدی؟
ممنونم
یاعلی
من برنامه Attach کردن فایل توسط نرم افزار رو نوشتم وو قتی یک فایل رو attach میکنی یک کپی در یک فولدر کنار فایل برنامه می سازه و اونجا کپی می کنه و بعد نام فایل PDF را در بانک ذخیره می کنه(خاصیت فیلد هم Text می باشد).حالا سوالم اینه که وقتی اسم فایل رو از بانک می خونم چجوری میشه فایل رو باز کرد؟؟؟
این روش هم کسی بلده به؟؟؟
سلام علیکم
اگر در کدی که در پست های قبل دادم استفاده میکنید، آیا نام فایلی که در کنار برنامه ایجاد میشود mpdf.pdf است؟؟، اگر اینطور است خب بایستی ابتدا مسیر فایل مورد نظرتان را جایگزین مسیر نمونه موجود در متغیر sFl کنید چراکه مسیر فعلی فقط یک نمونه است و اینکه فایلی در کنار برنامه ایجاد میشود به این دلیل است که چون فایلی با این نام در کنار برنامه وجود ندارد Open یک فایل با نام mpdf در کنار برنامه ایجاد میکند و اگر فضای آنرا را بررسی کنید 0 است
همچنین اگر قصد دارید دارید فایلی را به بانک ضمیمه کنید حتما بایستی نوع فیلد از نوع OLE-Object باشد برای ذخیره محتوی باینری، چرا که نوع Text محتوی رشته ای را نگهداری میکند
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام علیکمنوشته شده توسط ali190
خواهش میکنم
نمونه زیر را بررسی کنید
موفق باشید
آخرین ویرایش به وسیله محسن واژدی : پنج شنبه 25 خرداد 1391 در 19:40 عصر
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
ممنونم محسن جان از سورسی که قرار دادی
فقط یه مشکل کوچیک وجود داره
اونم اینکه میزان زمانی که در هنگام آپلود طول میکشه تا فایل در دیتابیس آپدیت بشه در پروسزبار نشون داده نمیشه
اونم میشه کاریش کرد؟
ممنونم
یاعلی
سلام علیکممیزان زمانی که در هنگام آپلود طول میکشه تا فایل در دیتابیس آپدیت بشه در پروسزبار نشون داده نمیشه اونم میشه کاریش کرد؟
حسابش نکرده ام
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
پس این قسمت (یعنی زمان صرف شده جهت آپدیت شدن رکورد قابل محاسبه نیست) قابل محاسبه کردن نیست
درسته؟
سلامپس این قسمت (یعنی زمان صرف شده جهت آپدیت شدن رکورد قابل محاسبه نیست) قابل محاسبه کردن نیست
درسته؟
در مورد زمان سپری شده چرا مشکلی نیست اما تخمین زمان باقیمانده را اتمام آپلود/دانلود کمی وقت می خواهد
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
یعنی میشه زمان آپدیت شدن رکورد رو در زمان آپلود شدن فایل رو هم به پروسزبار افزود
چون در نمونه قبلی همونطور که میبینید وقتی پروسزبار به پایان میرسه چند ثانیه طول میکشه تا رکورد آپدیت بشه
این موضوع در مورد فایلهای حجیم تر محسوستره
مثلاً شما یک فیم 180 مگی رو آپلود کنید ، حودون متوجه موضوع میشید
من میخوام از این روش در دیتابیس SqlServer استفاده کنم
با عرض معذرت زیاد متوجه منظورتان نشدم، در صورت امکان کمی بیشتر توضیح بدین!
تا آنجایی که بنده متوجه شدم، برای بدست آوردن زمان سپری شده میتوانیم یکبار پیش از شروع عملیات با توابعی مانند apiی GetTickCount مقدار ثانیه را ذخیره و پس از انجام عملیات مجدد مقدار ثانیه موجود را بدست آورده که در اینصورت اختلاف این دو زمان میشود زمان سپری شده ما!
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
ممنونم از پیگیریتون
ببیند هسته اصلی کد آپلود کردن در اینجاست:
Do
If bExit Then Exit Do
If (lFL& - Seek(iFF%)) < lBytes& Then ReDim bytDByte(lFL& - Seek(iFF%))
Get #1, , bytDByte
Adodc2.Recordset.Fields("xfile").AppendChunk bytDByte
lCurProg& = lCurProg& + 1
ProgressBar1.Value = lCurProg&
Caption = lCurProg& & "/" & lSplit& & " - " & (lFL& - Seek(iFF%)) & "/" & lFL& & " - Max bytDByte:" & UBound(bytDByte)
DoEvents
Loop Until EOF(iFF%) Or Seek(iFF%) >= lFL&
Adodc2.Recordset.UpdateBatch
Close iFF%
MsgBox "Uploading Completed...", vbInformation
حال این کد رو به دو بخش تقسیم میکنیم:
بخش اول که در این قسمت عملیات با پروسزبار نمایش داده میشود:
Do
If bExit Then Exit Do
If (lFL& - Seek(iFF%)) < lBytes& Then ReDim bytDByte(lFL& - Seek(iFF%))
Get #1, , bytDByte
Adodc2.Recordset.Fields("xfile").AppendChunk bytDByte
lCurProg& = lCurProg& + 1
ProgressBar1.Value = lCurProg&
Caption = lCurProg& & "/" & lSplit& & " - " & (lFL& - Seek(iFF%)) & "/" & lFL& & " - Max bytDByte:" & UBound(bytDByte)
DoEvents
اما در بخش دوم ما باید رکورد مورد نظر رو در دیتابیس Update کنیم
Loop Until EOF(iFF%) Or Seek(iFF%) >= lFL&
Adodc2.Recordset.UpdateBatch
Close iFF%
MsgBox "Uploading Completed...", vbInformation
این بخش از کد بهیچ وجه در پروسزبار به نمایش در نمیاد
شما وقتی این عملیات رو با یه فایل مثلاً 200 مگابایتی انجام میدید میبینید که بعد از این پروسزبار به انتها رسید حدوداً 14 ثانیه زمان بروزرسانی طول میکشه
که این زمان بسته به حجم فایل بیشتر هم میشه
امیدوارم تونسته باشم منظورم رو برسونم
بازهم ممنونم
یاعلی
سلام علیکم
مجددا ضمیمه قبلی را بررسی کنید، انشاء الله درسته
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
این همه نوشتید اگر از همون اول یه نمونه میزاشتید نیاز به اینهمه نامه نگاری نبود![]()
سلام
دوست عزیز اینجا سایت آموزشی است نه ماهیگیری !
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم !http://www.ArminaCo.com