نمایش نتایج 1 تا 7 از 7

نام تاپیک: ذخیره عکس در بانک sql

  1. #1
    کاربر تازه وارد آواتار YkA1363
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوي
    پست
    64

    ذخیره عکس در بانک sql

    سلام
    یک ماه به جمع شما دوستان پیوستم و یک ماهه که دارم جستجو می کنم اما مشکلم حل نشد. یه برنامه برای دبیرخانه نوشتم و با این دستور اطلاعاتم رو داخل بانک sql2005 ذخیره می کنم:

    var
    str,id1,id2,id3,id4,id5:string;

    begin
    if tag=1 then
    begin
    str:= 'INSERT INTO [Database].[dbo].[QRecive]([Radif],[LetterDate],[LetterNo],[Title],[Attach], '+
    '[RegisterDate],[BayganiDate],[TextFrom],[TextTo],[TextTabaghe],[TextVaziyat], '+
    '[TextMahalBaygani],[PaperNo],[Link]) '+
    'VALUES ('+Edit1.Text+','+QuotedStr(MaskEdit1.Text)+','+Qu otedStr(Edit2.Text)+','+
    ''+QuotedStr(Edit3.Text)+','+QuotedStr(Edit4.Text) +','+QuotedStr(MaskEdit2.Text)+', '+
    ''+QuotedStr(MaskEdit3.Text)+','+id1+','+id2+','+
    ''+id3+','+id4+','+id5+','+Edit5.Text+','+Edit6.Te xt+')';

    . می خوام همراه این اطلاعات عکس نامه هم در همون رکورد ذخیره بشه. با توجه به راهنماییهای که در سایت دیدم خواستم از دستور زیر استفاده کنم که نشد از اساتید عزیز خواهشمندم جهت حل این مشکل راهنمایی لازم رو از بنده دریغ نکنند.
    var
    Stream:TStream;

    begin
    dm.QRecive.Edit;
    dm.QRecive.Insert;
    Stream := dm.QRecive.CreateBlobStream(dm.QReciveImage, bmWrite);
    try
    Image1.Picture.Graphic.SaveToStream(Stream);
    finally
    Stream.Free;
    end;
    end;

  2. #2

    نقل قول: ذخیره عکس در بانک sql

    سلام.
    دو تا پردازه برات میگذارم که خودم با اونا کار می کنم:

    procedure LoadPictureFromField(ADOContainer: TCustomADODataSet; BlobField: TBlobField; Img: TImage);
    var
    Stream:TStream;
    JPG: TJPEGImage;
    JPG_Error: boolean;
    begin
    Stream := TStream.Create;
    JPG := TJPEGImage.Create;
    Stream := ADOContainer.CreateBlobStream(BlobField,bmRead);
    if Stream.Size = 0 then
    begin
    Img.Picture.Assign(nil);
    exit;
    end;
    JPG_Error := false;
    try
    JPG.LoadFromStream(Stream);
    except
    JPG_Error := true;
    end;
    if not JPG_Error then
    begin
    Stream.Destroy;
    Img.Picture.Assign(JPG);
    JPG.Destroy;
    end
    else
    begin
    Stream.Destroy;
    JPG.Destroy;
    Img.Picture.Assign(BlobField); // when old type exists in DB started by 0x424D
    end;
    end;
    procedure SavePictureToField(ADOContainer: TADOStoredProc; Parameter: string; Img: TImage);
    var
    JPG : TJPEGImage;
    MemoryStream : TMemoryStream;
    begin
    if Img.Picture.Graphic <> nil then
    begin
    // SetPictureMinimalToSave(Img, 100);
    JPG := TJPEGImage.Create;
    MemoryStream := TMemoryStream.Create;
    JPG.Assign(Img.Picture.Graphic);
    JPG.SaveToStream(MemoryStream);
    ADOContainer.Parameters.paramByName(Parameter).Loa dFromStream(MemoryStream,ftVarBytes);
    MemoryStream.Destroy;
    JPG.Destroy;
    end
    else
    ADOContainer.Parameters.paramByName(Parameter).Val ue := null;
    end;


    نحوه فراخوانی ساده ای هم دارند.
    برای ذخیره:

    SavePictureToField(SP, '@Field', Image);


    برای بازیابی:

    LoadPictureFromField(SP, SPField, Image);


    این هم برای کم حجم کردن عکس قبل از ذخیره:

    procedure SetPictureMinimalToSave(IMG: TImage; Quality: TJPEGQualityRange = 100);
    var
    JPG: TJPEGImage; {U30: decrease size of picture fit to Image and JPG}
    BMP: TBitmap;
    begin
    BMP := TBitmap.Create;
    JPG := TJPEGImage.Create;
    BMP.Assign(IMG.Picture.Graphic);
    IMG.Picture.Assign(BMP);
    BMP.Width := IMG.Width;
    BMP.Height := IMG.Height;
    BMP.Canvas.StretchDraw(BMP.Canvas.ClipRect,IMG.Pic ture.Graphic);
    JPG.Assign(BMP);
    JPG.CompressionQuality := Quality;
    JPG.Compress;
    IMG.Picture.Assign(JPG);
    BMP.Destroy;
    JPG.Destroy;
    end;
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  3. #3
    کاربر تازه وارد آواتار YkA1363
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوي
    پست
    64

    نقل قول: ذخیره عکس در بانک sql

    procedure ها رو توی برنامم گذاشتم اما نتونستم نتیجه بگیرم لطف می کنید یک مثال برام بزارین ممنون می شم.

  4. #4

    نقل قول: ذخیره عکس در بانک sql

    ببینید مثلا یک SPبه نام SPExteraFieldsValueTBL دارید که فیلدی add شده به نام SPExteraFieldsValueTBLValueEFV از نوع BlobField داره.
    برای بازیابی :
    LoadPictureFromField(SPExteraFieldsValueTBL, SPExteraFieldsValueTBLValueEFV, Image1); // load to image1
    و برای ذخیره مثلا در SP به نام SPExteraFieldsValueUpdate دارای یک پارامتر به نام @ValueEFV و از نوع ftVarBytes :
    SavePictureToField(SPExteraFieldsValueUpdate, '@ValueEFV', Image1)// saving image1
    خیلی سخت نیست.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  5. #5
    کاربر تازه وارد آواتار YkA1363
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوي
    پست
    64

    نقل قول: ذخیره عکس در بانک sql

    نقل قول نوشته شده توسط You-See مشاهده تاپیک
    ببینید مثلا یک SPبه نام SPExteraFieldsValueTBL دارید که فیلدی add شده به نام SPExteraFieldsValueTBLValueEFV از نوع BlobField داره.
    برای بازیابی :
    LoadPictureFromField(SPExteraFieldsValueTBL, SPExteraFieldsValueTBLValueEFV, Image1); // load to image1
    و برای ذخیره مثلا در SP به نام SPExteraFieldsValueUpdate دارای یک پارامتر به نام @ValueEFV و از نوع ftVarBytes :
    SavePictureToField(SPExteraFieldsValueUpdate, '@ValueEFV', Image1)// saving image1
    خیلی سخت نیست.
    سلام
    برنامه دبیرخانه رو پارسال تحویل دادم اما عکسها رو توی بانک ذخیره نکردم.در حال حاضر روی یک برنامه دیگه دارم کار می کنم که چون روی شبکه قرار می گیره حتما باید عکسها داخل بانک ذخیره بشه.
    یک سوال داشتم منظور از SP چیه من متوجه نشدم میشه لطف کنید راهنماییم کنید.می خوام عکسام توی بانک sql2000 ذخیره بشه از adoquery استفاده می کنم.ممنون

  6. #6
    کاربر دائمی آواتار mohsen24000
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    شهر مقدس قم
    پست
    583

    نقل قول: ذخیره عکس در بانک sql

    sp مخفف Stored Procedure است که در این لینک بیشتر توضیح داده شده: http://en.wikipedia.org/wiki/Stored_procedure

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    360

    نقل قول: ذخیره عکس در بانک sql

    با سلام
    بنظر من ذخیره عکس در تیبل با توجه اینکه SQL Server در فیلدهایی از نوع varbinary(max) بیش از 2GB را نمی‌توان ذخیره کند ،منطقی نمی باشد.
    مایکروسافت برای حل مشکلات ذخیره فایل در SQL Server 2008 قابلیت جدیدی را ارائه داده کرده است به نام FileStream که در تاپیک https://barnamenevis.org/showthread.p...84%D9%81%DB%8C بحث شده است
    آخرین ویرایش به وسیله fahimi : سه شنبه 24 مرداد 1391 در 19:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •