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

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

Как убрать лишние пробелы в поле InteBase [D6, IB6.x]


Страницы:   1 2

ruslan_as ©   (2003-07-08 10:41:00) 

Господа, помогите избавиться от назойливых пробелов, пришедших во время импорта данных. Данные должны быть VARCHAR но без пробелов.


Alexandr CH_   (2003-07-08 14:04:00) [1]


Зачем человека мучаете. Ищи там, где сервер установлен
библиотеку ib_udf.dll. Затем ищи скрипт для ее регистрации
ib_udf.Sql, чтобы самому не писать. Ну и запусти этот скрипт.
А затем сделай как ЖУК говорил.


kaif   (2003-07-08 13:06:00) [2]

В стандартной библиотеке UDF есть такие функции (типа trim). Посмотри в документации, как подключить функцию через
DECLARE FUNCTION
и сделай так, как советует Жук.
Это самый быстрый путь. Заодно освоишь функции.


Alexandr   (2003-07-08 12:15:00) [3]

3. вручную отредактировать все записи.


Johnmen   (2003-07-08 12:12:00) [4]

Если не возражаете, резюме : :)
Сколько и где было пробелов записано, столько и там их будет (varchar).
1. Взять готовую или написать свою UDF, типа TRIM, LTRIM, RTRIM.
2. Написать небольшое приложение, где и сделать обрезание.


Anatoly Podgoretsky   (2003-07-08 12:11:00) [5]

Обеда жду


NickBat   (2003-07-08 12:06:00) [6]

Anatoly Podgoretsky © (08.07.03 11:57)

Сорри был не внимателен. Перечитал весь пост и обнаружил, что у автора данные в базе уже с пробелами. :)))
С кем не бывает.
Только по моему Анатолий какой-то взвинченый с утра. :))


Anatoly Podgoretsky   (2003-07-08 11:57:00) [7]

NickBat © (08.07.03 11:28)
А ты читал, что я писал про самоволиие базЮ, такую базу в корзину. Правильная база должна в соответствии с SQL 92 вывести все что в нее положено, без самоволия, различие только для CHAR по стандарту должна дополнить запись пробелами до длины, для VARCHAR все кае есть, ничего не добавляя и не урезая.
Ты берешься утверждать, что Интербейс работает не по стандарту?
Это поведение документировано для Интербейс?


Alexandr   (2003-07-08 11:56:00) [8]

так...
кароче, пусть udf пишет сам как ему надо.


Max Zyuzin   (2003-07-08 11:47:00) [9]

>Жук © (08.07.03 11:44)
А я из вопроса понял так что пробелы могут быть где угодно не только сначала и с конца...


Жук   (2003-07-08 11:44:00) [10]


> DenK_vrtz © (08.07.03 11:35)

А левые - не концевые ? :-)


DenK_vrtz   (2003-07-08 11:35:00) [11]

Жук © (08.07.03 11:33), а правые - это не концевые? :-)


Жук   (2003-07-08 11:33:00) [12]


> ruslan_as © (08.07.03 11:19)

Надо эти функции подключить сначала к базе.


> NickBat © (08.07.03 11:28)
> Поле типа VARCHAR и так всеми нормальными компонетами возвращается
> без концевых пробелов.

По-моему только правые автоматом обрезаются...


Romkin   (2003-07-08 11:31:00) [13]

Если в него пихалось с пробелами - так и останется :-)
Может помочь простой update ... set Field = cast(Field as Varchar(...)) Хотя не уверен...


NickBat   (2003-07-08 11:28:00) [14]

ruslan_as ты читал Johnmen © (08.07.03 10:47)?

Поле типа VARCHAR и так всеми нормальными компонетами возвращается без концевых пробелов.


ruslan_as   (2003-07-08 11:19:00) [15]

>>ЖУК
Спасибо! Наверное я Вас озадачил с переводом...
просто после запроса типа

update customer c
set c.num_flat=ltrim(rtrim(c.num_flat))

в IBExpert выдало следующее:

An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
LTRIM.

Где я не прав?


Жук   (2003-07-08 11:13:00) [16]

ltrim - Removes leading spaces from the input string.
rtrim - Removes trailing spaces from the input string.


Anatoly Podgoretsky   (2003-07-08 11:11:00) [17]

А что может быть другое решение, тогда подобная база соишком самовольная.


ruslan_as   (2003-07-08 11:07:00) [18]

>>Max Zyuzin
В принципе так и сделаю, если не найду решения через SQL.


Alexandr   (2003-07-08 11:05:00) [19]

значит сделай как тебе жук советовал.


ruslan_as   (2003-07-08 11:05:00) [20]

>>Johnmen
Поля VARCHAR я выбрал для хранения номера квартир (там бывают с буквами). Этот тип поля показался мне наиболее подходящим. Может я не прав?


Страницы:   1 2

Наверх

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