Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 9 проблема с полями char/varchar / 9 сообщений из 9, страница 1 из 1
22.03.2005, 17:38
    #32974369
Filimonenko Sergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Всем доброго времени суток!
Проблема следующая: В делфи через АДО добавляю запись в таблицу. Поля типа char/varchar (без разницы) всегда дополняются пробелами до своей максимальной длины независимо от длины текста в поле.
Проблема не в Делфи, так как на другом компьютере все работает нормально.
Может нужно какие-то патчи ставить?
...
Рейтинг: 0 / 0
22.03.2005, 17:46
    #32974401
Litus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Может они так просто отображаются? а хранятся нормально, урезано.
Как Вы узнали, что они дополняются пробелами?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.03.2005, 17:55
    #32974430
Filimonenko Sergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Нет, они именно в базе дополняются пробелами.
А посмотрел Sybase Central'om:)
...
Рейтинг: 0 / 0
22.03.2005, 18:09
    #32974473
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Filimonenko SergeyМожет нужно какие-то патчи ставить?
Документацию надо читать:
BOL Ignore trailing blanks in comparisons
When building an Adaptive Server Enterprise-compatible database using Adaptive Server Anywhere, choose the option to ignore trailing blanks in comparisons.

If you are using Sybase Central, this option is in the Create Database wizard.

If you are using the dbinit command line utility, specify the -b command-line switch.

When you choose this option, Adaptive Server Enterprise and Adaptive Server Anywhere considers the following two strings equal:

'ignore the trailing blanks '
'ignore the trailing blanks'If you do not choose this option, Adaptive Server Anywhere considers the two strings above different.

A side effect of this choosing this option is that strings are padded with blanks when fetched by a client application.
...
Рейтинг: 0 / 0
22.03.2005, 18:41
    #32974565
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Ну наверное не ASE 9, а ASA9 :).
Столкнулся с такой проблемой с ранними версиями ASA - 5 и 6. Правдо только для char. После изменения на varchar и обрезания пробелов все заработало как часы.
...
Рейтинг: 0 / 0
22.03.2005, 19:00
    #32974613
Filimonenko Sergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Да я ошибся, действительно ASA9, а не ASE
Но в таблице присутствуют как char так и varchar и что для тех, что для других все дополняется пробелами.
Что до ignore the trailing blanks: насколько я понимаю это только при сравнении с другими строками, а ведь в базе то оно все-равно будет храниться с концевыми пробелами.
З.Ы. Можно ли этот параметр изменить на уже существующей базе?
...
Рейтинг: 0 / 0
22.03.2005, 22:50
    #32974923
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Filimonenko Sergey
Что до ignore the trailing blanks: насколько я понимаю это только при сравнении с другими строками, а ведь в базе то оно все-равно будет храниться с концевыми пробелами.
Нет. Оно будет хранится так, как эти данные туда посланы. А дополнятся будут пробелами всегда при отдаче данных клиенту. Читай внимательнее. Я тебе специально красненьким выделил.

Filimonenko SergeyЗ.Ы. Можно ли этот параметр изменить на уже существующей базе?
Нет.
...
Рейтинг: 0 / 0
05.04.2005, 10:22
    #32997477
CyberBrine
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
Хи !
Насколко я понял со своим скудным английским
в доке по 9 про чары разного рода(Adaptive Server Anywhere treats CHAR, VARCHAR, and LONG VARCHAR columns all as the same type) написано следующее :

все типы с длинной до 254 хранятся как простой стринг + байт на длинну(Values up to 254 characters are stored as short strings, with a preceding length byte) все остальное хранится отдельно

незаполненные позиции заполняются пробелами (в области до 254 символа)

много байтовые раскладки при указании длинны имеют смысл в байтах , а не чарах.

еще в доке по 9 есть интересная фраза :(In many other database-management systems, unlike Adaptive Server Anywhere, CHAR data types result in blank padding to the full length of the string. This means that they require max-length bytes of storage, regardless of the length of the actual string.
)
т.е. они намекают на то что стринги у них мусором не заполняются, прямо об этом они не говорят.
Поскольу пользуюсь сайбезными продуктами про прочее сказать не могу, но если в базу(char(30)) положил 'string ', то и читаю его же.
...
Рейтинг: 0 / 0
05.04.2005, 10:24
    #32997486
CyberBrine
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASE 9 проблема с полями char/varchar
sorry
опечатался малость
незаполненные позиции заполняются пробелами (в области до 254 символа)

должно быть :
незаполненные позиции не заполняются пробелами но место занимают (в области до 254 символа)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 9 проблема с полями char/varchar / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]