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

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

Уважаемые, подскажите почему запрос вида [D6, IB6.x]


twist ©   (2003-04-28 03:14:00) 

select * from table1 where f1 = "7418523" возвращает значения, а
select * from table1 where f1 LIKE "7418523" нет???
второй запрос возвращает знаения только в случае
f1 LIKE "7418523%". Почему?


twist   (2003-04-29 03:41:00) [1]

Точно, с типом VarChar запрос с Like работает нормально!
еще раз всем спасибо!


kaif   (2003-04-28 21:18:00) [2]

Проблема, очевидно, именно в типе данных CHAR. Попробуй
select * from table1 where f1 LIKE "7418523 "


AlexSerp   (2003-04-28 17:01:00) [3]

2 Sergey Masloff
Пардон, не внимателен.
Впрочем, я всегда использую всего пять типов данных

DATE
VARCHAR
DOUBLE PRECISION
INTEGER
BLOB

И пока проблем не имел.


Карелин Артем   (2003-04-28 14:03:00) [4]

>Очень странно, но в IB6 LIKE должен был запрос сработать.
А он срабатывает, если тип данных VarChar.


Sergey Masloff   (2003-04-28 12:25:00) [5]

AlexSerp ©
>Очень странно, но в IB6 LIKE должен был запрос сработать.
>Никаких заполнений пробелами не присутствует.
>У меня стоит WI-V6.0.1.0.
>Подобный запрос срабатывает нормально.
Компоненты доступа какие? И не стоит ли у них в свойствах дополнение Char пробелами? ;-)


AlexSerp   (2003-04-28 11:41:00) [6]

Очень странно, но в IB6 LIKE должен был запрос сработать.
Никаких заполнений пробелами не присутствует.
У меня стоит WI-V6.0.1.0.
Подобный запрос срабатывает нормально.


twist   (2003-04-28 09:58:00) [7]

всем спасибо!


Sergey Masloff   (2003-04-28 08:03:00) [8]

>я не знаю насчет IB6, но если провести аналогию с SQL Server >тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 >заполняются пробелами, и в БД он выглядит >так: "7418523 ",
именно так. Это вообще стандарт SQL, насчет того что Char(n) пробелами дополняется.


BoxTer   (2003-04-28 07:57:00) [9]

синтаксис LIKE
%искомый_кусок_строкового_типа%
где:
% - вместо него могет быть подставлено ЛЮБОЕ количество произвольных символов,
_ - заменит 1 символ строки,
[] - вместо символов строки будет подставлен 1 из возможных, указанных в ограничителях,
[^] - то же самое, но КРОМЕ указанных в ограничителях
а насчет твоего случая, я не знаю насчет IB6, но если провести аналогию с SQL Server тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 заполняются пробелами, и в БД он выглядит так: "7418523 ", следовательно "железный" LIKE без символов заменителей (%) не катит, потому-что остатки строки - пробелы (а они не являются "пустотой"), а работает LIKE "7418523%" - символ-заменитель замещает пробелы.
В таких случаях (и, практически, во всех остальных) я использую varchar(20) - здеся остатки не заменяются пробелами...


twist   (2003-04-28 07:45:00) [10]

to АлексейК Char(20)


АлексейК   (2003-04-28 04:21:00) [11]

Тип поля?


Наверх

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