View Full Version : سوال: فضاي اشغال شده
A.Nemati
دوشنبه 24 تیر 1387, 16:22 عصر
چطور ميتونم فضاي اشغال شده يك فيلد از يك ركورد رو بدست بيارم؟ نكته اينكه اين فيلد از نوع Blob است.
mjdeveloper
چهارشنبه 26 تیر 1387, 00:30 صبح
اگر از Ado استفاده می کنید به این صورت می تونید فضای اشغال شده یا همون حجم داده Blob رو بدست بیارید.
توجه کنید که YourTable نام جدول شماست و YourFeild نام فیلد Blob هست. پس ابتدا فیلدهای adodataset رو با دابل کلیک روی اون بهش Add کنید.
این تیکه کد حجم رو به Byte به شما میده.
موفق باشید.
Uses AdoDB,DB;
var
mem:TADOBlobStream;
begin
mem:=TADOBlobStream.Create(YourTableYourField,bmRe ad);
try
label1.Caption := inttostr(mem.Size) + ' Byte';
finally
mem.free;
end;
A.Nemati
شنبه 05 مرداد 1387, 17:58 عصر
ممنون. البته دو راه براي اين مسئله پيدا كردم.
1- در SQL تابعي بنام DataLen وجود داره كه به خوبي ميتونه كمك كنه
2- يه برنامه كوچيك نوشتم كه با استفاده از Length(AdoDataSet.FieldByName(FieldName).AsString) ميتونه براي تمامي انواع فيلدها بجز فيلدهاي عددي جواب درستي برميگردونه. جالبه!. در فيلدهاي عددي هم AdoDataSet.FieldByName(FieldName).DataSize جوابگو هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.