PDA

View Full Version : مطالب فارسی طولانی در sqlserver 2000



hamed_antiphp
چهارشنبه 10 بهمن 1386, 01:46 صبح
با سلام خدمت شما دوستان عزیز
من یک مشکل دارم
توی sql server 2000 یک فیلد( nvarchar (4000 تعریف کردم وقتی مطالب سایت( مقاله حداقل 4 صفحه) رو اضافه می کنم فقط یک فقط یک قسمت کوچیکش توی فیلد ذخیره میشه . ( از یک مطلب حداکثر 25 خط )
کد هم کاملا# درسته.

باید چیکارش کنم:ناراحت::ناراحت:

nkhozooii
یک شنبه 14 بهمن 1386, 18:53 عصر
دوست عزیز من وقتی از ntext استفاده می کنم اجازه نمی دهد از 16 طول را بیشتر کنم. از nvarchar هم که استفاده می کنم مشکل شما را دارم. لطفا یکی کمک کنه. در مورد enter هم با ntext تمام خطوط ذخیره شد اما وقتی آن را در برنامه ام از data base می گیرم و نمایش می دهم ؛ جایی که enter زده شده بوده را تشخیص نمی دهد و پشت سر هم می آورد. مگر اینکه به جای تمام enter ها از تگ br استفاده کنم. ( پروژه ام وب است) . واقعا نمی دانم چه کار باید کنم. لطفا کمکم کنید.

AminSobati
دوشنبه 15 بهمن 1386, 08:22 صبح
دوست عزیزم،
عدد 16 به معنی ظرفیت این فیلد نیست. در فیلدهای text و ntext و image، اصل اطلاعات در جای خاصی از فایل دیتابیس ذخیره میشه. لذا یک نشانگر یا Pointer در رکورد اصلی ثبت میشه که مشخص میکنه اطلاعات مثلا این فیلد ntext در کجای فایل قرار داره. عدد 16 طول این نشانگر هست.
و اما در مورد enterها، لازمه در مورد نحوه Insert اطلاعات به داخل فیلد توضیح بیشتری بدین. اگر سورس کدهای TSQL مورد استفاده رو پست کنین میتونه کمکمون کنه

mahdi_farhani
دوشنبه 15 بهمن 1386, 09:08 صبح
با اجازه آقا امین ، یه توضیح کوچیک در مورد نحوه ذخیره کردن اطلاعات در دیتابیس بدم ، که شما برای ذخیره یک مقاله که میخواهید از Enter و یا رنگ و اندازه و .... استفاده کنید باید از یک HTMLEditor استفاده کنید که بتوانید به صورت HTML در دیتابیس ذخیره شود و همچنین برای نمایش به صورت HTML نمایش داده شود ، این مشکل به این علت هست که در HTML اینتر معنایی ندارد .اگر از php استفاده میکنی tinyMce ادیتور خوبی هست ، و اگر از دات استفاده میکنی freeTextbox و یا FCKEDItor

hamed_antiphp
سه شنبه 16 بهمن 1386, 02:01 صبح
سلام دوستان
من ازntext استفاده کردم و مشکلم حل شد .
در مورد اینتر دوست عزیز از freetextbox 3.X استفاد کن . http://freetextbox.com/download/default.aspx از ایجا دانلودش کن . رایگان ! DLL میده به پروژه اضافه کن بد هم کد زیر رو فرم وب اضافه کن
Current Version: 3.1.6
اینم کد freetextbox با تمام تولبارهاش


FTB:FreeTextBox ID="fulltxt" runat="server" Height="700px" TextDirection="RightToLeft" Width="100%"
toolbarlayout="ParagraphMenu,FontFacesMenu,FontSiz esMenu,FontForeColorsMenu,FontForeColorPicker,Font BackColorsMenu,FontBackColorPicker|Bold,Italic,Und erline,Strikethrough,Superscript,Subscript,RemoveF ormat|JustifyLeft,JustifyRight,JustifyCenter,Justi fyFull;BulletedList,NumberedList,Indent,Outdent;Cr eateLink,Unlink,InsertImage|Cut,Copy,Paste,Delete; Undo,Redo,Print,Save|SymbolsMenu,StylesMenu,Insert HtmlMenu|InsertRule,InsertDate,InsertTime|InsertTa ble,EditTable;InsertTableRowAfter,InsertTableRowBe fore,DeleteTableRow;InsertTableColumnAfter,InsertT ableColumnBefore,DeleteTableColumn|InsertForm,Inse rtTextBox,InsertTextArea,InsertRadioButton,InsertC heckBox,InsertDropDownList,InsertButton|InsertDiv, EditStyle,InsertImageFromGallery,Preview,SelectAll ,WordClean,NetSpell" DesignModeBodyTagCssClass="maghalat" HtmlModeCssClass="maghalat" BreakMode="LineBreak" ButtonSet="OfficeXP" DesignModeCss="maghalat" DownLevelCols="1000">
</FTB:FreeTextBox>
امید وارم به دردتون بخوره

E_Zabihi
پنج شنبه 18 بهمن 1386, 12:33 عصر
اگر هم از ادیتور wyswyg استفاده نکردی می تونی متن خروجی از db را که توش مثلا اینتر زدی یا هرکار دیگه ای کردی توی یه تک <pre> نشون بدی تا دقیقا همون جوری که توی db وارد شده نمایش داده بشه !

mahdi_farhani
پنج شنبه 18 بهمن 1386, 20:39 عصر
اگر هم از ادیتور wyswyg استفاده نکردی می تونی متن خروجی از db را که توش مثلا اینتر زدی یا هرکار دیگه ای کردی توی یه تک <pre> نشون بدی تا دقیقا همون جوری که توی db وارد شده نمایش داده بشه !

حرف شما کاملا درسته ، خودتون دارین میگین متن خروجی ......
ولی وقتی ورودی شما بدون اینتر ذخیره میشه ، اونو چی کار میخواهی بکنی .

nkhozooii
یک شنبه 21 بهمن 1386, 17:41 عصر
دوستان خیلی خیلی متشکرم. مشکل من هم رفع شد. خیلی جالب بود . من تا حالا با freetextbox کار نکرده بودم . باز هم از لطف و عنایتی که به من داشتید ممنونم.

mr_mtc
سه شنبه 23 بهمن 1386, 22:01 عصر
نیازی به HTMLEditor نیست
فقط کافیه که کاراکتر اینتر char(13) رو با <br> جایگزین کنی


tmpMatn = tmpMatn.Replace("" + (char)13, "<br/>");

E_Zabihi
دوشنبه 06 اسفند 1386, 09:04 صبح
حرف شما کاملا درسته ، خودتون دارین میگین متن خروجی ......
ولی وقتی ورودی شما بدون اینتر ذخیره میشه ، اونو چی کار میخواهی بکنی .

وقتی توی تگ textarea اینتر می زنی کد اسکی 13 ذخیره می شه معادل vbcr توی vb و وقتی هنگام نمایش هم اون متن رو توی تگ pre بندازی همونجوری که تایپ شده ، نشون داده می شه