Данные в таблице с возвратом каретки? - PullRequest
9 голосов
/ 26 сентября 2008

В SQL SERVER Возможно ли сохранить данные с возвратом каретки в таблице и затем вернуть их снова с возвратом каретки.

Например:

insert into table values ('test1 

test2

test3

test4');

Когда я получаю его, я получаю сообщение в строке

test1 test2 test3 test4

Возврат каретки рассматривается как один символ.

Есть ли способ получить возврат каретки или просто способ хранения?

Спасибо за помощь, ребята !!!

Редактировать: Я должен был объяснить это раньше. Я получаю данные от веб-разработки (asp .net) и просто вставляю их в таблицу. Я не могу делать какие-либо манипуляции с данными .. просто вставьте.

Я возвращаю данные в разработку приложений (C ++) и может быть средством просмотра некоторых данных или отчетов.

Я не хочу манипулировать данными.

Ответы [ 9 ]

25 голосов
/ 26 сентября 2008

Вы можете хранить возврат каретки в базе данных. Проблема в том, что вы используете SQL Server Management Studio для отображения результатов вашего запроса. Возможно, вы настроили отображение результатов в сетке. Измените конфигурацию SSMS, чтобы результаты отображались в тексте, и вы увидите возврат каретки.

Щелкните правой кнопкой мыши в окне запроса -> Результаты к -> Результаты к тексту

Запустите ваш запрос еще раз.

6 голосов
/ 26 сентября 2008
INSERT INTO table values('test1' + CHAR(10) + 'test2' + CHAR(10) + 'test3' + CHAR(10) + 'test4')

Это должно сделать это. Чтобы увидеть эффект, переключите окно результатов запроса на вывод простого текста.

Привет

4 голосов
/ 26 сентября 2008

IIRC, использование chr (13) + chr (10) должно работать.

insert into table values ('test1' + chr(13) + chr(10) + 'test2' );
2 голосов
/ 26 сентября 2008

Не могли бы вы уточнить, как вы получаете данные обратно из базы данных? Какой инструмент вы используете? Данные, вероятно, содержат возврат каретки, но не отображаются, если вы получаете результаты в сетке (попробуйте результаты в текстовой опции)

0 голосов
/ 09 ноября 2017

Если вы переключите вывод в обычный текст, вы можете увидеть данные в разных строках. Чтобы переключить вывод, перейдите к Tools>Options>Query Results и установите для пункта назначения по умолчанию: текст. Вы также можете попробовать нажать Ctrl+p перед выполнением запроса. Надеюсь, это поможет.

0 голосов
/ 18 сентября 2013

Я использую SQLite для хранения многострочного текстового поля и получил нечто подобное при извлечении данных, сохраненных и отображении их на любом объекте (txtboxes, метках и т. Д.) Каждый раз, когда я копировал данные в NotePad / WordPad или подобное, я мог видеть, что возврат каретки хранился, а просто не отображался на странице ASP.

Нашел ответ здесь:

http://www.mikesdotnetting.com/Article/20/How-to-retain-carriage-returns-or-line-breaks-in-an-ASP.NET-web-page

надеюсь, это поможет.

Пример моего кода:

C #:

    protected void Page_Load(object sender, EventArgs e)
    {
        String str = Request.QueryString["idNoticia"];
        this.dsNewsDetails.FilterExpression = "idNoticia=" + str;
    }

ASPX:

    <asp:Label ID="BodyLabel" 
         runat="server" style="font-size: medium" 
         Text='<%# Eval("body").ToString().Replace(Environment.NewLine,"<br/>") %>' Width="100%" />

Примечание: как указано в приведенной ссылке, Environment.NewLine работает как для C #, так и для VB

0 голосов
/ 26 сентября 2008

Это результат в вашем HTML или в Query Analyzer? Если он в HTML, взгляните на исходный код, и там он может показаться правильным, и в этом случае вам придется заменить символы crlf тегами <br />.

Я также думаю, что когда-то были атрибуты, которые вы могли добавить к текстовой области HTML, чтобы заставить ее отправлять возврат каретки определенным образом - мягкий или жесткий? Я не искал это, возможно, кто-то мог бы сделать это.

Но SQL Server сохраняет два символа в моем опыте. На самом деле я сделал точно так же, как вы описали здесь несколько дней назад, используя SQL 2005, и каждый разрыв строки содержит два непечатаемых символа.

0 голосов
/ 26 сентября 2008

Возврат каретки сохраняется как есть. Проблема в том, что ваш sql-клиент не понимает этого. Если вы сделали необработанный дамп этих данных, вы увидите, что в данных есть возврат каретки.

Я использую DBArtisan на работе, и, кажется, работает нормально. Однако, похоже, у isql та же проблема, о которой вы сообщили.

0 голосов
/ 26 сентября 2008

Вам может потребоваться ввести "\ n" вместо буквального возврата каретки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...