Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пробелы в строковых полях [D6, XP]


dmdel ©   (2007-02-21 14:59:00) 

Здравствуйте,
У меня вот такая проблемка: dbgrid дополняет строковое поле пробелами до максимального размера и не дает изменить значение пока не сотрешь хотя бы один пробел. Используется Fb 1.5, поле типа varchar(9).


Desdechado   (2007-02-22 12:39:00) [1]

> update table1 set field1=field1
Это не отрежет пробелы. Делай Trim.


dmdel   (2007-02-22 10:39:00) [2]


> Sergey13 ©   (22.02.07 08:28) [11]

Попробовал. Все равно показывает пробелы. Сам ничего понять не могу.
Даже когда вставляет новую запись, все равно ставит пробелы.
Тип домена точно Varchar. В полне возможно, что раньше был  Char (затем поменял). Может удалить этот домен и создать новый? Может это просто глюк?


Sergey13   (2007-02-22 08:28:00) [3]

> [10] dmdel ©   (21.02.07 17:05)

Попробуй проапдейтить "проблемное" поле по всей таблице. Хуже точно не будет.
update table1
set field1=field1

По идее, если пробелы остались в наследство от чара (могу ошибаться, но вроде у меня такое было как-то), они должны уйти.


dmdel   (2007-02-21 17:05:00) [4]


> Sergey13 ©   (21.02.07 16:05) [8]

Да возможно. Непомню, давно было


Desdechado   (2007-02-21 16:38:00) [5]

> Не могу найти...
В регистрационной информации конкретной БД.


Sergey13   (2007-02-21 16:05:00) [6]

> [5] dmdel ©   (21.02.07 15:42)

Ты случайно на этом поле тип в БД не менял с чар на варчар?


dmdel   (2007-02-21 15:55:00) [7]


> В нем есть настройка "обрезать пробелы в текстовых полях
> при показе".

Не могу найти...


Desdechado   (2007-02-21 15:44:00) [8]

> С помощью IBExpert-а
В нем есть настройка "обрезать пробелы в текстовых полях при показе".


dmdel   (2007-02-21 15:42:00) [9]


> Sergey13 ©   (21.02.07 15:26) [3]
> > [2] dmdel ©   (21.02.07 15:23)
> > В самой базе лишних пробелов нет.

С помощью IBExpert-а

> Если ничего не делать, то нет. Значит, что-то кто-то сделал

Сам поражаюсь как так получается. Однако факт.


dmdel   (2007-02-21 15:42:00) [10]


> Sergey13 ©   (21.02.07 15:26) [3]
> > [2] dmdel ©   (21.02.07 15:23)
> > В самой базе лишних пробелов нет.

С помощью IBExpert-а

> Если ничего не делать, то нет. Значит, что-то кто-то сделал

Сам поражаюсь как так получается. Однако факт.


Sergey13   (2007-02-21 15:26:00) [11]

> [2] dmdel ©   (21.02.07 15:23)
> В самой базе лишних пробелов нет.
Как узнал?

> А при отображении в DbGrid-е дополняется пробелами до максимального значения.
Если ничего не делать, то нет. Значит, что-то кто-то сделал.


dmdel   (2007-02-21 15:23:00) [12]


> Desdechado ©   (21.02.07 15:16) [1]

В самой базе лишних пробелов нет. А при отображении в DbGrid-е дополняется пробелами до максимального значения.


Desdechado   (2007-02-21 15:16:00) [13]

С VARCHAR-полями такого не происходит.
Тем более, DBGrid ничего никуда не добавляет, это отверстие для доступа к датасету.
Значит, эти пробелы были записаны в поле принудительно, еще до чтения.
А вот с CHAR-полями происходит принудительное дополнение пробелами до описанной длины поля.


Наверх

Титульная страница Поиск, карта сайта Написать письмо