سلام
میخوام یک فایل (مثلا عکس یا فایل ورد) را در یک فیلد از نوع image در sql server ثبت کنم. در اکسس با blob کار می کردم اما در sql server با چه روشی می تونم این کار را انجام بدم.
جستجو هم کردم اما نتونستم از اون کدها استفاده کنم.
مرسی
Printable View
سلام
میخوام یک فایل (مثلا عکس یا فایل ورد) را در یک فیلد از نوع image در sql server ثبت کنم. در اکسس با blob کار می کردم اما در sql server با چه روشی می تونم این کار را انجام بدم.
جستجو هم کردم اما نتونستم از اون کدها استفاده کنم.
مرسی
نوع فیلد از نوع image بزار مشکلت حله :)
هر چیزی که از نوع Stream باشه می تونی توش ذخیره و سپس Load کنید.
موفق باشید :)
یه نگاهی به sample که برات نوشتم بنداز!
همراه با بانک sql گذاشتم!
مرسی و خیلی ممنون دوستان
مثاله جالبی بود. من فقط از adoconnection و adoquery استفاده می کنم. باید حتما برای ثبت فایل در بانک از ADOCommand استفاده کرد؟
نقل قول:
نوشته شده توسط free
Mem := TmemoryStream.Create;
Image1.Picture.SavetoStream(Mem);
Mem.Position := 0;
Adoquery1Pic.LoadFromStream(Mem);
Mem.Free;
نیازی به استفاده اجباری از adoCommand نیست!
از adoQuery هم میتونی استفاده کنی!
دوستان ؛ آیا می شود فایلهای صوتی مانند MP3 را در بانک SQL ثبت کرد ؟
نوع فیلد چه باید باشد ؟ در صورت امکان با یک مثال راهنمایی نمایید ...
یک تاپیک جدید باز می کردید بهتر بود!
البته اگر قبلش سرچ می فرمودید که صد البته بهتر تر هم می شد! :لبخند:
ولی جواب:
بله می شود!
Sample گویا هست!
نوع فیلد DataBase را از نوع image قرار دهید
شاد و پیروز
ممنون از همه دوستان
آقای سرباززاده mem یک متغییر از نوع Tstream می باشد؟؟؟
فکر میکنم در اولین خط از کد نوشته شده از چه نوعی است (TMemoryStream).نقل قول:
نوشته شده توسط free
ok
ممنون از همه دوستان بالاخره درست شد. اینم کد کامل شده ی ذخیره و بازیابی یک عکس (فایل) در بانک sql :
ذخیره:
procedure TForm1.Button2Click(Sender: TObject);
var
Stream: TStream;
begin
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Insert;
Stream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName(' pic'), bmWrite);
try
Image1.Picture.Graphic.SaveToStream(Stream);
finally
Stream.Free;
end;
ADOQuery1.Post;
ADOQuery1.Close;
end;
بازیابی:
procedure TForm1.Button3Click(Sender: TObject);
var
Stream: TStream;
begin
ADOQuery1.Close;
ADOQuery1.Open;
Stream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName(' pic'), bmRead);
try
Image2.Picture.Graphic.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;