![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтоб при вводе запроса небыло подвязки к регистру? [D7, Paradox]
Starcom © (2005-09-05 16:10:00)Привет Мастера!
При таком раскладе, при вводе фамилии с большой буквы (Петров) запрос выполняется
т.к в Бд Paradox фамилия так и записана.
Как мне сделать так чтоб при вводе фамилии с маленькой буквы запрос тоже выполнялся?
т.е при вводе небыло подвязки к регистру.
Желательна врезка к уже имеюшемуся коду...!
var
fam: string[30];
begin
fam:=InputBox('Поиск Сотрудника в Базе данных',
'Укажите Фамилию и щелкните на OK.', '');
if fam <> '' // пользователь ввел фамилию
then // проверяем на предмет пустого ввода
Query1.SQL.Add(fam) {Назначаем свойству SQL текст fam}
else
begin
MessageDlg('Вы не ввели Фамилию, попробуйте ещё раз!', mtError,[mbOk], 32);
exit;
end;
begin
with DbElek.Query1 do begin
Close; // закрыть файл-результат выполнения предыдущего запроса
SQL.Clear; // удалить текст предыдущего запроса
// записываем новый запрос в свойство SQL
SQL.Add('SELECT Fam, Name, Otch, Dol, Adr, Dtel, Stel, Tabn, Staj');
SQL.Add('FROM ":Список:spisok.db"');
SQL.Add('WHERE');
SQL.Add('(Fam = "'+ fam + '")');
SQL.Add('ORDER BY Name, Fam');
Open; // активизируем выполнение запроса
StatusBar1.Panels[2].Text :='';
StatusBar1.Panels[2].Text :='Поиск Завершен!';
end;
if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1 // отобразить результат выполнения запроса
else begin
MessageDlg('В Базе Данных, нет данной Фамилии!', mtInformation,[mbOk], 32);
DataSource1.DataSet:=Table1;
end;
end;
end;
С Уважением Starcom! ;)
Starcom (2005-09-09 20:11:00) [21]Всё бы да ничего но при внесении изменений в запрос
по совету:
----------
Shaman_ © (05.09.05 17:31) [2]
SQL.Add('(Fam = "'+ fam + '")');
заменить на
SQL.Add('(Upper(Fam) = :Fam)');
Params.ParamByName('Fam').AsString := AnsiUpperCase(Fam);
---------------------------------------------------------
Перестали выполнятся запросы к базе данных с некоторыми фамилиями:
Тка..., Пол..., в чём может быть проблема?
С Уважением Starcom! :(
Starcom (2005-09-05 20:41:00) [22]Спасибо всем огромное! Всё получилось!
С Уважением Starcom! :)
Shaman_ (2005-09-05 17:31:00) [23]
SQL.Add('(Fam = "'+ fam + '")');
заменить на
SQL.Add('(Upper(Fam) = :Fam)');
Params.ParamByName('Fam').AsString := AnsiUpperCase(Fam);
Val (2005-09-05 16:15:00) [24]1. применить функцию Upper при сравнении в запросе или ей подобную.
2. заменить конкатенацию на параметры. К вопросу не относится, но является хорошиим стилем, как минимум.