PDA

View Full Version : کانورت image



monakz
چهارشنبه 23 خرداد 1386, 08:18 صبح
سلام، من میخوام اطلاعات یک جدول رو در جدول دیگه کپی کنم، ولی فیلد عکس در جدول قبلی به صورت قسمتی از یک آدرس بود که قسمت اولش رو هم که آدرس فولدر عکسها در سرور بود در قسمتی از برنامه میگرفت و عکس رو از اون مسیر لود میکرد!
حالا میخوام از این مسیری که توضیحش رو دادم، فایل عکس مورد نظر رو در فیلد(از نوع image) جدول جدید بذارم!
ممنون.

ali_abbasi22145
چهارشنبه 23 خرداد 1386, 11:26 صبح
سلام
من که از دلفی استفاده می کنم یک یوتیلیتی نوشتم که با از ابتدا به انتها جدول میروم و با Loadfromfile عکس را لود می کنم در یک فریم عکس و ان را در جای دیگر با savetofile به صورت Blob یا image ذخیره می کنم.
روش دیگر که سریعتر است استفاده از Stream memory است.

AminSobati
چهارشنبه 23 خرداد 1386, 22:06 عصر
خود SQL Server کار Insert کردن تصاویر به داخل Database رو انجام نمیده مگر اینکه در SQL Server 2005 باشید و از امکانات NET. داخل اون کمک بگیرید. در غیر اینصورت Client باید به کمک شما بیاد

whitehat
چهارشنبه 23 خرداد 1386, 22:58 عصر
خود SQL Server کار Insert کردن تصاویر به داخل Database رو انجام نمیده مگر اینکه در SQL Server 2005 باشید و از امکانات NET. داخل اون کمک بگیرید. در غیر اینصورت Client باید به کمک شما بیاد
مگه با دستور OpenRowSet (http://www.barnamenevis.org/forum/showpost.php?p=316324&postcount=5) نمیشه عکس در DB ، قرار داد؟

AminSobati
پنج شنبه 24 خرداد 1386, 00:20 صبح
مگه با دستور OpenRowSet (http://www.barnamenevis.org/forum/showpost.php?p=316324&postcount=5) نمیشه عکس در DB ، قرار داد؟

حق با شماست! و ایضا این دستور (فقط در 2005) باید جواب بده:


Insert into MyTable (PhotoName, PhotoData)
Select 'My own pic', BulkColumn from
Openrowset( Bulk 'c:\mypic.jpg', Single_Blob) as tmp

azin57
جمعه 25 خرداد 1386, 13:26 عصر
با سلام
در SQL SERVER 2000 این مشکل را چطور حل کنیم؟

monakz
شنبه 26 خرداد 1386, 08:56 صبح
ممنون از دوستان، من هم در دلفی با استفاده از دستور stream این کار رو انجام دادم، ولی میخواستم تا جایی که امکان داره دستورات کانورت رو در داخل sqlserver 2000 انجام بدم که در زمانی که عملیات تغییر ساختار و کانورت اطلاعات جدید رو روی بانک اصلی انجام میدم همه stored procedure ها رو پشت هم اجرا کنم و احتمال خطا و از قلم افتادگی کمتر باشه!
:لبخندساده:

AminSobati
دوشنبه 28 خرداد 1386, 19:59 عصر
در 2000 من متاسفانه روشی براش سراغ ندارم، کلاینت باید انجام بده

monakz
چهارشنبه 30 خرداد 1386, 08:26 صبح
ممنونم دوستان، من هم راهی برای حل مشکلم در 2000 پیدا نکردم ولی محض اطلاع دوستان در دلفی با این دستورات در afterscroll جدولم مشکلم رو حل کردم:




Var
MyStream: TMemoryStream
begin
MyStream := TMemoryStream.Create
ADOTable1Src_Image.SaveToStream(MyStream);
MyStream.Position := 0;
Image1.Picture.Bitmap.LoadFromStream(MyStream);


و یا:





ADOTable1Src_Image.SaveToFile('F:\Application\'+AD OTable1Filename.AsString);
Image1.Picture.LoadFromFile('F:\Application\'+ADOT able1Filename.AsString);
end;