PDA

View Full Version : ذخیره Richtext در دیتابیس با قالب خودش



MOJTABAATEFEH
شنبه 21 فروردین 1389, 11:22 صبح
سلام دوستان عزیز
من می خوام متن یک Richtext را در دلفی در دیتابیسم ذخیره کنم ولی می خوام موقع بازیابی فرمت Richtext حفظ بشه مثلا خط هایی که وسط چین بودن به همان حالت بازیابی بشن و خط های راست چین به همان خودشان بازیابی بشن و خلاصه قالب حفظ بشه
چه راهی را پیشنهاد می کنید؟

با تشکر

vcldeveloper
شنبه 21 فروردین 1389, 12:29 عصر
داده RichText را در یک Stream بریزید، و Stream را بصورت فیلد BLOB در بانک ذخیره کنید. البته به صورت Text هم می تونید.

برای ذخیره به صورت Stream می تونید از متد TRichEdit.Lines.SaveToStream استفاده کنید.

MOJTABAATEFEH
سه شنبه 24 فروردین 1389, 09:39 صبح
داده RichText را در یک Stream بریزید، و Stream را بصورت فیلد BLOB در بانک ذخیره کنید. البته به صورت Text هم می تونید.

برای ذخیره به صورت Stream می تونید از متد TRichEdit.Lines.SaveToStream استفاده کنید.

ممنون آقای کشاورز فیلد من از نوع text هست برای ذخیره بایستی به چه صورت عمل کنم؟

با تشکر

Felony
سه شنبه 24 فروردین 1389, 09:52 صبح
ممنون آقای کشاورز فیلد من از نوع text هست برای ذخیره بایستی به چه صورت عمل کنم؟

با تشکر


Richedit1.Lines.SaveToFile('FileName');

MOJTABAATEFEH
چهارشنبه 25 فروردین 1389, 17:58 عصر
دوست عزیز با این دستور متن درون فایل ذخیره میشه من می خوام با قالب خودش در فیلد TEXT بانک ذخیره بشه

با تشکر

Felony
چهارشنبه 25 فروردین 1389, 18:11 عصر
خوب باید فایل رو بخونید و تو فیلدی که از نوع text هست بریزید دیگه !

MOJTABAATEFEH
پنج شنبه 26 فروردین 1389, 09:33 صبح
خوب باید فایل رو بخونید و تو فیلدی که از نوع text هست بریزید دیگه !

ممنون دوست عزيز ولي اگر راهش رو مي دونستم كه ديگه اينجا نمي پرسيدم لطفا علاوه بر پيشنهاد روش رو هم بفرماييد.

با تشكر

Felony
پنج شنبه 26 فروردین 1389, 10:14 صبح
با همون متد SaveToFile متن داخل RichEdit رو ذخیره کنید و بعد به صورت زیر بخونیدش و در فیلد مورد نظرتون درجش کنید :

var
StrList: TStringList;
begin
Strlist:= TStringList.Create;
try
StrList.LoadFromFile('D:\a.rtf');
Table1.Insert;
Table1.FieldByName('RichEdit').Text:= StrList.Text;
Table1.Post;
finally
StrList.Free;
end;

در ضمن میتونید به جای این کار از DBRichEdit استفاده کنید .

Mahmood_M
پنج شنبه 26 فروردین 1389, 17:46 عصر
ممنون دوست عزيز ولي اگر راهش رو مي دونستم كه ديگه اينجا نمي پرسيدم لطفا علاوه بر پيشنهاد روش رو هم بفرماييد.
می تونید متن درون RichEdit رو در یک فایل یا یک Stream ذخیره کنید و بعد یا فایل یا Stream رو در بانک در یک فیلد از نوع Blob قرار بدید ، برای نمایش هم می تونید اون رو در یک Stream لود کنید و در یک RichEdit نمایش بدید ...

یک نمونه براتون ضمیمه کردم ...

موفق باشید ...

MOJTABAATEFEH
پنج شنبه 13 خرداد 1389, 09:39 صبح
می تونید متن درون RichEdit رو در یک فایل یا یک Stream ذخیره کنید و بعد یا فایل یا Stream رو در بانک در یک فیلد از نوع Blob قرار بدید ، برای نمایش هم می تونید اون رو در یک Stream لود کنید و در یک RichEdit نمایش بدید ...

یک نمونه براتون ضمیمه کردم ...

موفق باشید ...

ممنون دوست عزیز برای اینکار نوع فیلد رو در بانک SQL چی انتخاب کنم؟

حسین شهریاری
پنج شنبه 13 خرداد 1389, 18:45 عصر
خود برگه DataContro کامپوننت DbRichEdit را داره که شما میتونی براحتی خواص DataSource و DataField اونا تنظیم کنید و توی پایگاه داده SQL نوع فیلدتونا ntext در نظر بگیرید.
حالا دیگه میمونه چیدمان که با تنظیم پاراگراف مشکلتون حل میشه.

MOJTABAATEFEH
دوشنبه 17 خرداد 1389, 17:22 عصر
اگر بخوام با Stream کار کنم ، همون راهی که دوستان گفتن نوع فیلد رو چی باید قرار بدم؟

با تشکر

حسین شهریاری
دوشنبه 17 خرداد 1389, 21:04 عصر
اگر بخوام با Stream کار کنم ، همون راهی که دوستان گفتن نوع فیلد رو چی باید قرار بدم؟

روشی که بنده ارائه کردم را تست کردید؟ خیلی راحت بود که!!
چه ضعفی دیدید؟