نوشته شده توسط
Reza_Yarahmadi
خدمتتون عرض کردم (VarBinary(MAX تا 2GB قابلیت ذخیره سازی اطلاعات داره، اگر حجم اکثر فایلهای شما به 256KB نمیرسه از همون (VarBinary(MAX بصورت معمول استفاده کنید ولی اگه بیشتره بهتر اینه که از FileStream استفاده کنید.
اگه از نوع داده (VarBinary(MAX استفاده کنید (FileStream این قابلیت رو نداره) میتونید فایل رو بصورت پارت پارت ذخیره کنید. به این صورت که پارت اول رو با دستور Insert ذخیره و پارت های بعدی با دستور Update به فیلد مورد نظر اضافه میکنید. برای دستور Update بصورت زیر میشه عمل کرد
Update YourTable Set BinaryField.Write(@BinaryData, @Offset, @Length) Where ID = @ID
توی این حالت :
اگه وسط کار ارتباط قطع بشه میشه بعد از وصل مجدد عملیات ادامه پیدا کنه.
در وب میشه با استفاده از Ajax علاوه بر ذخیره سازی پارت پارت ، با استفاده از یک ProgressBar پیشرفت رو به کاربر نشون داد.
مدیر این بخش خواهشن راهنمایی بفرمایید، شاید من اشتباه انجام میدهم ولی در هر صورت درست اجرا نمیشه.
شما می فرمایید پارت به پارت، یادم رفت بگم فایلها معمولا pdf هستن.
بعدش شما می فرمایید:
VarChar واسه داده های رشته ای (متون لاتین) کاربرد داره.
فایل می خواهم آپلود کنم متن که نیست انگلیسی باشه یا فارسی.
من این کدی که گفته بودید برای update نوشتم بازم کار نکرد:
"Update Articles Set BinaryField.Write ArticleTitle=@ArticleTitle,ArticleText=@ArticleTex t,ArticleImage=@ArticleImage,FileName=@FileName Where ArticleID=" +
ID;
از این اصلا نمی خواهم استفاده کنم چون لازم ندارم:
با استفاده از یک ProgressBar پیشرفت رو به کاربر نشون داد.
در ضمن نوع داده را به (VarBinary(MAX تغییر می دهم اصلا کلان خطا میگیره و پیغام خطا :
Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query
پیغام خطا میگه که باید تبدیل بشه.
اگر از این طریق نمیشه، ممنون میشم از طریق FileStream خودتون توضیح بفرمایید. تو انجمن چیزی پیدا نکردم.
ممنون میشم هر چه سریع به این سوال من به صورت واضح پاسخ دهید