![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
С varchar-ом не могу подружиться... [D6, FireBird 1.0]
Miwa © (2004-01-29 03:53:00)
Почему у меня все данные типа varchar в клиент попадают с пробелами в конце?
Таблица:
PATH_NAME: varchar[128];
PATH_ID: integer;
PATH_CHECKED: smallint;
Запрос:
with ibquery1.sql do begin
clear;
add("select p.path_name, p.path_checked, p.path_id from pathes p order by p.path_name");
Результат:
ibquery1.fields[0].asstring = "\\server\shared\ И ЕЩЕ ДО*** ПРОБЕЛОВ";
Вопросс:
что не так кроме рук?
Miwa (2004-01-30 12:01:00) [1]
1. Чесное слово без пробелов.
2. Нет. Если не считать определением полей присвоение
s:=query1.Fields[0].AsString;
Кщд (2004-01-29 08:42:00) [2]
miwa © (29.01.04 07:25) [2]
в базе точно без концевых пробелов?
поля в Query определены?
miwa (2004-01-29 07:27:00) [3]
Упс...
Последнее предложение следует читать как:
Ник у Вас, кстати, прикольный.
И не следует воспринимать, как оскорбление. Прошу извинить, если оно звучит (выглядит) обидно.
miwa (2004-01-29 07:25:00) [4]
http://ibase.ru/devinfo/charvar.htm
Особенности строковых типов данных
Давайте сначала повторим описание этих типов данных из документации (Data Definition Guide):
CHAR(n) - n символов, от 1 до 32767, строковый тип фиксированной длины. Если содержимое поля меньше указанного размера, то оно "выравнивается" (добивается) дополнительными пробелами.
VARCHAR(n) - n символов, от 1 до 32767, строковый тип переменной длины. Пробелы в конце содержимого поля игнорируются.
И чуть ниже по тексту
лучше использовать VARCHAR - по хранению varchar на 2 байта больше char, зато в приложениях не надо писать отрезание концевых пробелов у строк.
Еще предложения есть?
Ник у Вас, скстати, прикольный :о)).
Кщд (2004-01-29 07:01:00) [5]
думается не до***, а 128-length(p.path_name)