Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2007, 18:34   #11
3lander
Пользователь
 
Регистрация: 07.10.2007
Сообщений: 49
По умолчанию

все ок! в датабейз едитор надо было указать кодировку ...
3lander вне форума Ответить с цитированием
Старый 08.10.2007, 22:15   #12
mihali4
*
Старожил
 
Регистрация: 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:
Код:
   CREATE TABLE table1 (
	field1 VARCHAR(20) NOT NULL CHARACTER SET WIN1251 COLLATE PXW_CYRL,
	...);

Последний раз редактировалось mihali4; 09.10.2007 в 14:29.
mihali4 вне форума Ответить с цитированием
Старый 09.10.2007, 06:37   #13
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
чтобы пробелов не было, юзай varchar, а не char. хранятся они одинаково и суть одна, но в varchar пробелы обрезаются
юзай varchar, а не char А вот с этим я был бы поосторожнее.

В поле типа char при добавлении записи недостающие до указанной длины символы забиваются нулевым символом. Тоесть, если увас поле задано длиною 15 символов, а вы ввели 3, то в базе у вас хранится все равно 15 символов, только 12 из них это нулевой символ. И вы можете спокойно изменять содержимое поля в пределах этих 15 символов.

В поле же типа varchar при добавлении записи "лишние" символы обрезаются. Это позволяет существенно сократить объем таблицы. ОДНАКО, изменять содержимое поля вы можете только в пределах первоначально введеной фактической длины поля записи. Тоесть, если у вас поле задано длиною 15 символов, то при добавлении записей вы можете ввести строку до 15 символов. Если же вы ввели 3 символа и, недай бог, пропустили один или два символа, то добавить недостающие символы в последствии у вас не получиться. В пределах же количества первоначально введенных символов содержимое поля может свободно изменяться. К тому же, скорость обращения к таблице с полями типа varhcar несколько ниже.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 09.10.2007, 07:42   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Andrei Посмотреть сообщение
юзай varchar, а не char А вот с этим я был бы поосторожнее.
Лично я доверяю сайту www.ibase.ru, где по ссылке http://ibase.ru/devinfo/charvar.htm написано:

"На диске запись всегда упаковывается. То есть, концевые пробелы не имеют никакого значения с точки зрения дискового пространства.

Количество концевых пробелов учитывается только для varchar. Значение char "добивается" пробелами до объявленной длины только тогда, когда с ним производятся операции присвоения или передача данных на сторону клиента.

Поэтому, с точки зрения эффективности хранения различия между char и varchar практически нет. И для работы нужно выбирать то, что удобнее. Как правило это varchar."
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет Михаил Юрьевич Общие вопросы 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