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

نام تاپیک: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

  1. #1

    Question قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    من یک بانک SQL دارم که روی server قرار دارد و کاربران از طریق برنامه دلفی که بر روی کلاینتها نصب می شود به آن دسترسی دارند . یکی از جدولهای بانک من یک فیلد از نوع Image دارد . چگونه می توانم از طریق برنامه در این فیلد عکس قرار دهم .

  2. #2
    درود


    procedure TForm1.Button2Click(Sender: TObject);
    Var
    MemStream: TMemoryStream;
    begin
    OpenDlg.Execute;
    Image2.Picture.LoadFromFile(OpenDlg.FileName);
    FileStream := TMemoryStream.Create;
    FileStream.LoadFromFile(OpenDlg.FileName);
    ADOTable1.Append;
    TBlobField(ADOTable1.FieldByName('FaxData')).LoadF romStream(FileStream);
    ADOTable1.Post;
    end;

  3. #3

    procedure TForm1.Button2Click(Sender: TObject);
    Var
    FileStream: TMemoryStream;
    begin
    if OpenDlg.Execute then begin
    FileStream := TMemoryStream.Create;
    try
    FileStream.LoadFromFile(OpenDlg.FileName);
    ADOTable1.Append;
    TBlobField(ADOTable1.FieldByName('FaxData')).LoadF romStream(FileStream);
    ADOTable1.Post;
    finally
    FileStream.Free;
    end;
    end;
    end;

    تصحیح چند خطای جزیی و چند تصحیح ساختاری
    همچنین واقعا بهتره (از نظر حافظه مصرفی و سرعت) که از TFileStream به جای TMemoryStream استفاده کنید. (وگرنه "تمام" فایل احتمالا حجیم شما یکبار به درون حافظه خوانده شده و بعد حافظه آزاد می شود)

  4. #4

    Smile

    از راهنماییهای شما دوستان عزیز بسیار ممنونم .

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1384
    محل زندگی
    همدان
    پست
    79

  6. #6
    naficy جان کد بازیافت از sql رو هم محبت کن و بده

  7. #7
    کاربر دائمی آواتار Valadi
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    فعلا در خدمت شما
    پست
    1,342
    نمونه سورس این تاپیک در همین سایت هست
    سرچ کن

  8. #8

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    سلام من تازه دلفی یاد گرفتم ولی هر چه دنبال TBlobField میگردم پیدا نمیکنم.میشه راهنمایم کنید

  9. #9

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    سلام من تازه دلفی یاد گرفتم ولی هر چه دنبال TBlobField میگردم پیدا نمیکنم.میشه راهنمایم کنید
    TBlobField در یونیت Data.DB قرار داره که باید نام این یونیت رو به قسمت Uses اضافه کنید
    اگر از نسخه های قدیمی دلفی استفاده می کنید به جای "Data.DB" فقط "DB" رو به Uses اضافه کنید

  10. #10

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    توصیه اکید دارم تصاویر رو داخل بانک اطلاعاتی قرار ندید و فقط آدرس اون رو در بانک ذخیره کنید
    من خودم یک بار این تجربه رو داشتم و واقعا دردسر داشتم
    و به شما هم توصیه میکنم تصاویر رو به جای ذخیره مستقیم در بانک در هارد ذخیره کنید و فقط آدرسش رو در انک ذخیره کنید

    یا حق

  11. #11

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    تجربه های موفقی از ذخیره سازی دیتاهای حجیم داخل بانک وجود دارد، ضمن اینکه دقت داشته باشید که نگهداری اطلاعات
    به صورت مستقیم روی دیسک نیاز به بررسی زیادی در سطح سیستم عامل، شبکه، دسترسی ها، رمزنگاری فایل ها و
    انتقال اطلاعات به کلاینت و... دارد و البته میتونه نتیجه خیلی خوبی هم داشته باشه.

    راه کارهایی مثل FilreStream رو ببینید.

    و در کنار ذخیره سازی روی دیسک، ذخیره سازی داخل یک دیتابیس جداگانه یا FileGroupهای مجزا و دیسک جداگانه و سریع هم میتونه راه کار مناسبی باشه.
    فلويد گواهي مي دهد به آنکه زيستن در هنگامه‌ی استبداد، چه آسان روياها را واژگون مي کند، چه سهل بر چهره‌ی آزادی تيغ می‌کشد!

  12. #12

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    راه کارهایی مثل FilreStream رو ببینید.
    این راهکار خوبه اما تا اونجا که من اطلاع دارم بازم بر روی دیسک اطلاعات رو ذخیره میکنه.

    نگهداری اطلاعات
    به صورت مستقیم روی دیسک نیاز به بررسی زیادی در سطح سیستم عامل، شبکه، دسترسی ها، رمزنگاری فایل ها و
    انتقال اطلاعات به کلاینت و... دارد
    خیلی هم بررسی زیادی نمیخواد
    ولی به سرعت و سادگی پیاده سازیش می ارزه
    اما همون FILEsTREAM راه کار مناسبیه

  13. #13
    کاربر دائمی آواتار hamid-nic
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    اصفهان
    پست
    813

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    راه کارهایی مثل FilreStream رو ببینید.

    و در کنار ذخیره سازی روی دیسک، ذخیره سازی داخل یک دیتابیس جداگانه یا FileGroupهای مجزا و دیسک جداگانه و سریع هم میتونه راه کار مناسبی باشه.
    از همین روش FileGroup مجزا در دیتابیس انجام دادم بدون مشکل داره کار میکنه و ذخیره و بازیابی تصاویر با رکورد زیاد داخل دیتابیس انجام میشه .

  14. #14

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    نقل قول نوشته شده توسط hadisalahi2 مشاهده تاپیک
    این راهکار خوبه اما تا اونجا که من اطلاع دارم بازم بر روی دیسک اطلاعات رو ذخیره میکنه.



    خیلی هم بررسی زیادی نمیخواد
    ولی به سرعت و سادگی پیاده سازیش می ارزه
    اما همون FILEsTREAM راه کار مناسبیه


    مطمئنا به بررسی زیادی نیاز دارد.
    وقتی که 400 تا کاربر از نرم افزار استفاده میکنند و تعداد فایل ها بعد از چند ماه به 200000 تا میرسه و فقط هم
    با عکس سر و کار نداری و فیلم و ... هم هست. سخت افزار، امنیت فایلها، نوع دسترسی و سناریویی که برای تهیه نسخه پشتیبان باید در نظر بگیری حتما و حتما نیاز به بررسی داره.
    فلويد گواهي مي دهد به آنکه زيستن در هنگامه‌ی استبداد، چه آسان روياها را واژگون مي کند، چه سهل بر چهره‌ی آزادی تيغ می‌کشد!

  15. #15
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    سلام
    با استفاده از روش Stream ذخیره سازی کن:
    برای ذخیره سازی:
    var  ms:tmemorystream;Begin  
    ms:=tmemorystream.create;
    ms.position:=0;
    image1.picture.bitmap.savetostream(ms);
    ms.position:=0;
    with yourfield as tblobfield do
    loadfromstream(ms);
    freeandnil(ms);
    end;

    برای خواندن:
    var  ms:tmemorystream;Begin  
    ms:=tmemorystream.create;
    ms.position:=0;
    with yourfield as tblobfield do
    savetostream(ms);
    ms.position:=0;
    image1.picture.bitmap.loadfromstream(ms);
    freeandnil(ms);
    end;

    این کارت رو راه می اندازه ولی به کد زیر هم یه نگاهی بکن اون هم جواب کارت رو میده:(ولی کمی طولانیه)
    uses jpeg, pngimage; 
    type
    TitTYPES=(itJPG,itPNG,itBMP);


    procedure TForm1.Button1Click(Sender: TObject);
    var
    jp:TJpegimage;
    g:TGraphic;
    begin


    jp:=TJpegimage.Create;
    try
    ads.Close;
    jp.LoadFromFile('C:\Bilder1\PIC.jpg');
    ads.SQL.Text := 'Insert into IMGBlob (ID,Blob,typ) Values (:ID,:BLOB,:typ)';
    ads.Parameters[0].Value := 1;
    ads.Parameters[1].Assign(jp);
    ads.Parameters[2].Value := itJPG;
    ads.ExecSQL;


    ads.SQL.Text := 'Select * from IMGBlob where ID=:ID';
    ads.Parameters[0].Value := 1;
    ads.Open;
    try
    case TitTYPES(ads.FieldByName('typ').AsInteger) of
    itJPG: g:=TJpegimage.Create;
    itPNG: g:=TPNGImage.Create;
    itBMP: g:=TBitmap.Create;
    end;
    g.Assign(ads.FieldByName('Blob'));
    Image1.Picture.Assign(g);
    finally
    g.Free;
    end;
    finally
    jp.Free;
    end;
    end;

  16. #16

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    با استفاده از روش Stream ذخیره سازی کن:
    البته منظرو من از fileStream اون قابلیتی هستش که از sql Server 20008 به بعد به این نرم افزار اضاضه شد.

  17. #17
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    آهان خب من اشتباه فهمیدم.شرمنده
    خب با file stream خوب برنامه sql این کار رو انجام بدی بهتر هست.چون اینطوری کد نویسی نداره.

  18. #18

    نقل قول: قراردادن عکس دربانک SQL ازطریق برنامه دلفی

    چون اینطوری کد نویسی نداره.
    چرا عزیزم اونجا هم کد نویسی داره
    اما عملیات ذخیره و بازیابی رو خودش انجام میده

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

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