![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
игнорирование регистра в запросе [D7, InterBase 1.0.1.340]
kubatura © (2007-05-17 15:58:00)в наличии имеется:
DataModule2.IBQuery1.SQL.Add('select * from FL');
DataModule2.IBQuery1.SQL.Add('where FAM_FL like :fam and NAME_FL like :nam and OTCH_FL like :otc');
и БД где в столбцах FAM_FL NAME_FL OTCH_FL встречаются значения полей содержащие символы разных регистров...
каким образом можно игнорировать регистр при поиске нужных значений???
Заранее премного благодарен!
Jan1 (2007-05-17 16:47:00) [41]
> пробелы тут непричем... когда в том же самом регистре как
> в базе забито ищешь все находит... чуть хоть одной буквы
> регистр сменил и всё... не находит ничего...
читал?
http://www.ibase.ru/devinfo/ibrusfaq.htm
kubatura (2007-05-17 16:45:00) [42]Val © (17.05.07 16:38) [16]
Юзаю:
IBDatabase
IBTransaction
IBQuery
подключаюсь не через сервер ИБ а напрямую к GDB файлу...
пробелы тут непричем... когда в том же самом регистре как в базе забито ищешь все находит... чуть хоть одной буквы регистр сменил и всё... не находит ничего...
Val (2007-05-17 16:39:00) [43]кроме того, неплохо бы и пробельчики посечь.
Val (2007-05-17 16:38:00) [44]1. я имел ввиду проблемы сервера с кириллицей. с латиницей - проблемы есть?
2. зачем "поднимать" параметры на клиенте, а поле в запросе?
kubatura (2007-05-17 16:36:00) [45]Sergey13 © (17.05.07 16:30) [14]
пробовал уже... не работает :-(((
Sergey13 (2007-05-17 16:30:00) [46]> [11] kubatura © (17.05.07 16:27)
Буквы русские? Тогда UpperCase не подойдет. Надо ANSIUpperCase.
kubatura (2007-05-17 16:30:00) [47]fam := AnsiUpperCase(Form1.LabeledEdit28.Text);
nam := AnsiUpperCase(Form1.LabeledEdit29.Text);
otc := AnsiUpperCase(Form1.LabeledEdit30.Text);
тоже пробовал... не пашет...
Val (2007-05-17 16:29:00) [48]а не в кириллице ли заковыка?
kubatura (2007-05-17 16:27:00) [49]fam := UpperCase(Form1.LabeledEdit28.Text);
nam := UpperCase(Form1.LabeledEdit29.Text);
otc := UpperCase(Form1.LabeledEdit30.Text);
DataModule2.IBQuery1.SQL.Add('where upper(FAM_FL) like :fam and upper(NAME_FL) like :nam and upper(OTCH_FL) like :otc');
DataModule2.IBQuery1.Prepare;
DataModule2.IBQuery1.Params[0].AsString := fam;
DataModule2.IBQuery1.Params[1].AsString := nam;
DataModule2.IBQuery1.Params[2].AsString := otc;
один фиг не пашет :-(((
Sergey13 (2007-05-17 16:25:00) [50]> [6] kubatura © (17.05.07 16:19)
where upper(FAM_FL) like :fam
Параметру ессно тоже предавать "верхнее" значение.
Val (2007-05-17 16:24:00) [51]шариков, из собачьего сердца. о радикальных методах.
смотри - тебе надо маленькие буковки с большими сравнить - как сделать, чтобы была пофиг их высота? уровнять.
kubatura (2007-05-17 16:21:00) [52]??????
Val (2007-05-17 16:20:00) [53]все взять и поделить.
kubatura (2007-05-17 16:19:00) [54]потому что торможу и конец рабочего дня... подскажи плыз как сделать?
Sergey13 (2007-05-17 16:16:00) [55]> [3] kubatura © (17.05.07 16:08)
> где в столбцах FAM_FL NAME_FL OTCH_FL встречаются значения
> полей содержащие символы разных регистров
> FAM_FL like upper(:fam)
Встречаются в "столбцах" а выравниваешь параметр. Почему?
Jan1 (2007-05-17 16:10:00) [56]
> ошибку выдает....
ошибка три точки называется?
kubatura (2007-05-17 16:08:00) [57]пробовал менять на
DataModule2.IBQuery1.SQL.Add('where FAM_FL like upper(:fam) and NAME_FL like upper(:nam) and OTCH_FL like upper(:otc)');
ошибку выдает....
> InterBase 1.0.1.340
Что за зверь?-стандартный на диске с D7 шел...
Sergey13 (2007-05-17 16:00:00) [58]> InterBase 1.0.1.340
Что за зверь?
> каким образом можно игнорировать регистр при поиске нужных значений???
Так приведи их к одному регисту. Например upper.
Val (2007-05-17 16:00:00) [59]см. серверные функции приведения строковых сначений к верхнему либо нижнему регистру.