Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Уважаемы коллеги, есть проблема. Sybase ASE 12.5 При выполнении с помощью утилиты isql закачки данных в таблицу в текстовых полях (char, varchar) у меня пропадают символы с кодом 13, если они есть в значении поля. Пример скрипта: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При обычном выполнении (например в cast): 13 10 При выполнении через isql: Код: plaintext Может кто сталкивался, объясните почему и как это обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:02 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
AleshaУважаемы коллеги, есть проблема. Sybase ASE 12.5 При выполнении с помощью утилиты isql закачки данных в таблицу в текстовых полях (char, varchar) у меня пропадают символы с кодом 13, если они есть в значении поля. Пример скрипта: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При обычном выполнении (например в cast): 13 10 При выполнении через isql: Код: plaintext Может кто сталкивался, объясните почему и как это обойти. а вы файлик (который <-i файл_со_скриптом_выше>) откройте и посмотрите - есть ли там 13-й символ ? ибо чего там есть в строке - то и передаётся серверу. они у вас не пропадают, их просто там изначально нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:19 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Rubberа вы файлик (который <-i файл_со_скриптом_выше>) откройте и посмотрите - есть ли там 13-й символ ? ибо чего там есть в строке - то и передаётся серверу. они у вас не пропадают, их просто там изначально нет... Ув. Rubber , это все проверялось в первую очередь, иначе бы и вопроса не было. Там все нормально. Переход на новую строку обычный: char(13)+char(10). Не могли бы вы попробовать запустить это у себя, какой будет результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:28 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
уже вижу, действительно 13-й уходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:42 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Alesha пишет: > При выполнении с помощью утилиты isql закачки данных в таблицу в > текстовых полях (char, varchar) у меня пропадают символы с кодом 13, > если они есть в значении поля. > > Пример скрипта: > > create table #test (Value char(*250*)) > > insert into #test (Value) > values ('aaaaa > bbbbb > ccccc') > > select ascii(substring(Value,*6*,*1*)),ascii(substring(Value,*7*,*1*)) from #test Возможно ISQL переводит всё в запросе в UNIX-style line ending. На самом деле посылать в языковом запросе непечатные символы на сервер - дело неблагодарное очень. Лучше бы вы писали это в виде бинарной константы или с явно заданными символами перевода. 'aaaaa' + char(10) + char(13) + 'bbbbb' ... А еще лучше биндить параметр в ODBC или Open Client. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:42 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
MasterZiv Лучше бы вы писали это в виде бинарной константы или с явно заданными символами перевода. 'aaaaa' + char(10) + char(13) + 'bbbbb' ... А еще лучше биндить параметр в ODBC или Open Client. Как это будет выглядеть в виде бинарной константы, можно пример? И что значит "биндить параметр в ODBC или Open Client"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:50 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Упс. Насчёт "биндить параметр в ODBC или Open Client" вопрос снимается, я понял что имеется ввиду, но этот вариант не подходит. Нужно именно через isql. А самому isql никак не скажешь, что бы он не использовал UNix формат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:57 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
подозреваю дело не в передаче данных (или записи в таблицу), видимо дело в парсере SQL. возможно перед тем как обработать из тела запроса удаляются такие символы, а походу они убираются и из строковых констант. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:58 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
а вот 10-й будет найден Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 13:00 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Alesha пишет: > Как это будет выглядеть в виде бинарной константы, можно пример? 0x и затем шестнадцатиричные коды символов, по две цифры на символ. 'aaa' - 0x414141 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 13:01 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 13:02 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Rubberподозреваю дело не в передаче данных (или записи в таблицу), видимо дело в парсере SQL. возможно перед тем как обработать из тела запроса удаляются такие символы, а походу они убираются и из строковых констант. Код: plaintext 1. Возможно я не понял, что вы хотели сказать, но из текстовых полей, констант, переменных и т.п. символ 13 никуда не исчезает. Исчезает он только при использовании isql. Вариант с +char(13)+ работает, но хотелось бы узнать, может есть другие варианты, например с помощью настроек самого isql (хотя там таких настроек не нашёл) или ещё как-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 13:34 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
это такая фича любых сишных программ пользующих ф-ю fopen() для открытия файла в текстовом режиме. char(13) просто отсекается... смиритесь или пользуйте другой клиент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 16:48 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Dmitry.это такая фича любых сишных программ пользующих ф-ю fopen() для открытия файла в текстовом режиме. char(13) просто отсекается... смиритесь или пользуйте другой клиент. Так тут вроде ничего не нужно открывать в текстовом режиме. Или вы под клиентом подразумеваете isql? Смирился, а что остаётся. Использую подмену +char(13)+char(10)+. Но это конечно не то решение, что нужно. Да и напрягает тот факт, что просто выбрасывается символ из значения поля и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 17:17 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Alesha пишет: > Смирился, а что остаётся. Использую подмену +char(13)+char(10)+. Но это > конечно не то решение, что нужно. Да и напрягает тот факт, что просто > выбрасывается символ из значения поля и всё. Я хочу подчеркнуть, что это - единственно правильное решение. И к тому же полагаться, что перевод строки - это именно char(13)+char(10) (или еще какое-то сочетание этих магических символов) просто нельзя. Оно на разных платформах разное. Так что ASE-то делает все очень правильно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 18:15 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
MasterZiv Я хочу подчеркнуть, что это - единственно правильное решение. И к тому же полагаться, что перевод строки - это именно char(13)+char(10) (или еще какое-то сочетание этих магических символов) просто нельзя. Оно на разных платформах разное. Так что ASE-то делает все очень правильно. Исключение неких символов из заковыченого строкового значения без всяких предупреждений - это правильно? Сомневаюсь. Почему же char(10) остаётся? На разных платформах разное, но здесь похоже был принят стандарт в пользу одной из платформ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 18:30 |
|
||
|
isql. Пропадает символ char(13)
|
|||
|---|---|---|---|
|
#18+
Alesha пишет: > Исключение неких символов из заковыченого строкового значения без всяких > предупреждений - это правильно? Они непечатные !! Перевод строки на разных системах выглядит по-разному. > На разных платформах разное, но здесь похоже был принят стандарт в > пользу одной из платформ. Да, в пользу UNIX. И языка C. Там перевод строки - '\n'. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 19:42 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34800525&tid=2011925]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 321ms |

| 0 / 0 |
