|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.10.2007, 18:34 | #11 |
Пользователь
Регистрация: 07.10.2007
Сообщений: 49
|
все ок! в датабейз едитор надо было указать кодировку ...
|
08.10.2007, 22:15 | #12 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
В InterBase при создании базы был установлен Character set WIN1251?
Для того, чтобы в символьные поля в базе на InterBase можно было вводить русский текст, необходимо для этих полей при создании таблицы определить CHARACTER SET WIN1251. По умолчанию этому CHARACTER SET ставится в соответствие COLLATION ORDER WIN1251. Но с COLLATION ORDER WIN1251 не работает ф-ция UPPER. Для CHARACTER SET WIN1251 существует еще COLLATION ORDER PXW_CYRL, с которым ф-ция UPPER работает правильно, равно как и другие операции, связанные с сортировкой или перекодировкой (которые собственно и используют COLLATION ORDER). Поэтому рекомендуется при создании таблицы для символьных полей с CHARACTER SET WIN1251 использовать COLLATION ORDER PXW_CYRL: Код:
Последний раз редактировалось mihali4; 09.10.2007 в 14:29. |
09.10.2007, 06:37 | #13 | |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Цитата:
В поле типа char при добавлении записи недостающие до указанной длины символы забиваются нулевым символом. Тоесть, если увас поле задано длиною 15 символов, а вы ввели 3, то в базе у вас хранится все равно 15 символов, только 12 из них это нулевой символ. И вы можете спокойно изменять содержимое поля в пределах этих 15 символов. В поле же типа varchar при добавлении записи "лишние" символы обрезаются. Это позволяет существенно сократить объем таблицы. ОДНАКО, изменять содержимое поля вы можете только в пределах первоначально введеной фактической длины поля записи. Тоесть, если у вас поле задано длиною 15 символов, то при добавлении записей вы можете ввести строку до 15 символов. Если же вы ввели 3 символа и, недай бог, пропустили один или два символа, то добавить недостающие символы в последствии у вас не получиться. В пределах же количества первоначально введенных символов содержимое поля может свободно изменяться. К тому же, скорость обращения к таблице с полями типа varhcar несколько ниже.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
|
09.10.2007, 07:42 | #14 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Лично я доверяю сайту www.ibase.ru, где по ссылке http://ibase.ru/devinfo/charvar.htm написано:
"На диске запись всегда упаковывается. То есть, концевые пробелы не имеют никакого значения с точки зрения дискового пространства. Количество концевых пробелов учитывается только для varchar. Значение char "добивается" пробелами до объявленной длины только тогда, когда с ним производятся операции присвоения или передача данных на сторону клиента. Поэтому, с точки зрения эффективности хранения различия между char и varchar практически нет. И для работы нужно выбирать то, что удобнее. Как правило это varchar." |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен совет | Михаил Юрьевич | Общие вопросы Delphi | 2 | 07.06.2008 13:59 |
Нужен совет | Михаил Юрьевич | Общие вопросы Delphi | 3 | 04.05.2008 21:52 |
Нужен совет | Kler | Свободное общение | 0 | 27.03.2008 23:44 |
Нужен ваш совет | SZero | Помощь студентам | 3 | 24.02.2008 17:51 |
Нужен совет | Михаил Юрьевич | Общие вопросы Delphi | 7 | 27.01.2008 10:25 |