چطور مي توانم در ديتا بيس فيلد عكس را حذف كنم ؟
متاسفانه بعد از حذف ركورد (فايل بيت مپ) حذف نمي شود و به مرور زمان حجم فايل (دي بي تي) بالا مي رود و اندازه گيگا بايتي پيدا مي كند . لطفا بنده را راهنمايي فرماييد .
Printable View
چطور مي توانم در ديتا بيس فيلد عكس را حذف كنم ؟
متاسفانه بعد از حذف ركورد (فايل بيت مپ) حذف نمي شود و به مرور زمان حجم فايل (دي بي تي) بالا مي رود و اندازه گيگا بايتي پيدا مي كند . لطفا بنده را راهنمايي فرماييد .
سلام
قبل از اینکه اون فیلد رو حذف کنی. می تونی یک عکس 0 کیلوبایتی
جایگزین اون قبلی کنی. یا یک نوشته جایگزینش کن و بعد فیلد رو حذف کن(کاراکتر به راحتی حذف میشه)
موفق باشی.
سلام
فکر کنم این جوری بشه :
ADOTable1Ax.Clear; ( نام فیلد : Ax )
موفق باشی ...
به محمود جان هم كه پيدا شدن
فايل عكس پاك مي شود متاسفانه در فايل (tableXXX.dbt) حجم آن كم نمي شود . يعني بطور فيزيكي حذف نمي شود . درضمن بانك اطلاعاتي من پارادوكس و يا ديتابيس ويندوز است .
سلام
احتمالآ روش ذخيره كردن عكس ها توي ديتابيس غلط هست!
با سلام :sad:
در صورت امكان يك نمونه برنامه ذخيره سازي عكس براي من بفرستيد .
روش من به شكل زير است :
;([table1.appendrecord([dbimage1.pictuer
;table1.post
با سلام :sad:
در صورت امكان يك نمونه برنامه ذخيره سازي عكس براي من بفرستيد .
روش من به شكل زير است :
;([table1.appendrecord([dbimage1.pictuer
;table1.post
سلام
من این رو توی یکی از تاپیک های بسیار قدیمی پیدا کرده بود.
احتمالآ بدرد بخوره. اگر بدرد نخور بگو تا چند روش دیگه بهت بگم.
کد:Procedure CopyGraphic2Filed(Graphic:TGraphic;Fld:TField);
var ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
try
Graphic.SaveToStream(ms);
ms.Seek(0,0);
if ms.size>0 then TBlobField(Fld).LoadFromStream(ms);
Finally
ms.Free;
end;
end;
بایکد:Procedure CopyFilde2pic(Fld:TBlobField;Pic:Tpicture);
var
TmpFileName:string;
Buf:array[0..255] of char;
FileNameSize:integer;
begin
FileNameSize:=GetTempPath(length(buf),buf);
if FileNameSize>0 then
TmpFileName:=string(buf)+'$$$.'+GetGraphicExt(Fld. Value)
else
TmpFileName:='c:\$$$.'+GetGraphicExt(Fld.Value);
Fld.SaveToFile(TmpFileName);
pic.LoadFromFile(TmpFileName);
deletefile(TmpFileName);
end;
آيا راهي وجود دارد در ديتا بيس به جاي فايل( بيت مپ) فايل (جي پي جي) ذخيره كرد .
البته نسخه اي دلفي من 5 است.
سلام
فرمت استاندارد عكس در دلفي. بيتمپ هست.
اگر بتوني با همون بيتمپ ذخيره كني خيلي بهتره.
يا مي توني لينك عكس رو ذخيره كني.
مشكلي داشتي. بگو.
سلام
یه راه بهتر از ذخیره کردن عکس ذخیره کردن مسیر عکسه
چندتا مزیت داره
1. حجم کمتری رو می گیره
2. راحتر و سریعتر ذخیره و بازخوانی می شه(توی Database)
3. هر فرمتی رو هم می شه ذخیره کرد
4. راحتر ذخیره می شه
5. راحتر حذف می شه
6. راحتر فراخوانی می شه
7. راحتر تعویض می شه
8. کار باهاش چون String راحتر
9. کمتر اذیت می کنه
10. دنگ و فنگ و غرتی بازیش (شاید هم قرتی بازیش) کمتره
11. ....
اگه در موردش سوال داشتي در خدمتم
سلامنقل قول:
یه راه بهتر از ذخیره کردن عکس ذخیره کردن مسیر عکسه
چندتا مزیت داره
1. حجم کمتری رو می گیره
2. راحتر و سریعتر ذخیره و بازخوانی می شه(توی Database)
3. هر فرمتی رو هم می شه ذخیره کرد
4. راحتر ذخیره می شه
5. راحتر حذف می شه
6. راحتر فراخوانی می شه
7. راحتر تعویض می شه
8. کار باهاش چون String راحتر
9. کمتر اذیت می کنه
10. دنگ و فنگ و غرتی بازیش (شاید هم قرتی بازیش) کمتره
موفقم. چون خودم یه بار از همین شیوه استفاده کردم.خیلی خوب بود.
این هم کدش برای ذخیره کردن :
این هم برای باز خوانیش :کد:Table1.Append;
Table1.FieldValues['esme field'] := 'http://forum.p30world.com/images/Star/6.gif';
Table1.post;
اما مشکلش اینجاست که کمپننت ایمیج دلفی فایل های gif رو باز نمی کنه.کد:Table1.Last;
Image1.Picture.Loagfromfile(table1.fieldvalue['esme field']);
مگه اینکه یک فایل bmp باشه.و یا فرمتی باشه که این کمپننت بازش کنه.
موفق باشی. بای