Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Чтоб при вводе запроса небыло подвязки к регистру?   Найти похожие ветки 

 
Starcom ©   (2005-09-05 16:10) [0]

Привет Мастера!

При таком раскладе, при вводе фамилии с большой буквы (Петров) запрос выполняется
т.к в Бд 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! ;)


 
Val ©   (2005-09-05 16:15) [1]

1. применить функцию Upper при сравнении в запросе или ей подобную.
2. заменить конкатенацию на параметры. К вопросу не относится, но является хорошиим стилем, как минимум.


 
Shaman_ ©   (2005-09-05 17:31) [2]

SQL.Add("(Fam = ""+ fam + "")");
заменить на
SQL.Add("(Upper(Fam) = :Fam)");
Params.ParamByName("Fam").AsString := AnsiUpperCase(Fam);


 
Starcom ©   (2005-09-05 20:41) [3]

Спасибо всем огромное! Всё получилось!

С Уважением Starcom! :)


 
Starcom ©   (2005-09-09 20:11) [4]

Всё бы да ничего но при внесении изменений в запрос
по совету:
----------
Shaman_ ©   (05.09.05 17:31) [2]

SQL.Add("(Fam = ""+ fam + "")");
заменить на
SQL.Add("(Upper(Fam) = :Fam)");
Params.ParamByName("Fam").AsString := AnsiUpperCase(Fam);

---------------------------------------------------------
Перестали выполнятся запросы к базе данных с некоторыми фамилиями:
Тка..., Пол..., в чём может быть проблема?

С Уважением Starcom! :(


 
Mike Kouzmine ©   (2005-09-10 07:43) [5]

А что до этого Fam?


 
Турист   (2005-09-10 11:39) [6]

>Starcom ©
При просмотре результата запроса
SELECT UPPER(Fam) FROM ":Список:spisok.db"
видимых проблем нет ?


 
Starcom ©   (2005-09-10 17:37) [7]

До внесения изменений, поиск по всёй базе был на все 100%
а после перестал находить некоторие записи на Тка..., Пол...,

Чё за хрень! :(


 
Anatoly Podgoretsky ©   (2005-09-10 22:06) [8]

Ткаченко, Поляков


 
Турист   (2005-09-10 22:36) [9]

По Anatoly Podgoretsky ©   (10.09.05 22:06) [8]
Upper(FAM)
ТКАчЕНКО
ПОЛџКОВ


 
Турист   (2005-09-10 23:09) [10]


uses
 BDE;

procedure TForm1.Button1Click(Sender: TObject);
var
 Buffer: array[0..255] of Char;
begin
 StrPCopy(Buffer, "Ткаченко");
 OsLdStrToUpper(Table1.Locale, PByte(@Buffer));
 ShowMessage(Buffer)
end;


 
Starcom ©   (2005-09-11 18:57) [11]

Anatoly Podgoretsky ©   (10.09.05 22:06) [8]

Да вы и без того Лучший, действительно Ткаченко, Поляков.

Ну а мне поконкретней мона! :]

C Уважением Starcom ! ;-)


 
Starcom ©   (2005-09-11 21:05) [12]

Парни есть варианты! :|


 
Anatoly Podgoretsky ©   (2005-09-11 21:28) [13]

Без вариантов


 
Starcom ©   (2005-09-12 18:22) [14]

Anatoly Podgoretsky ©   (11.09.05 21:28) [13]

Уважаемый Анатолий! Можно мне обьяснить вчём именно проблемма?

А то мне тут ...
насоветовали и в кусты :( Shaman_ ©   (05.09.05 17:31) [2]

С Уважением Starcom! :|


 
Anatoly Podgoretsky ©   (2005-09-12 18:48) [15]

Смотри Турист   (10.09.05 22:36) [9]


 
Starcom ©   (2005-09-12 19:09) [16]

Смотрю но не догоняю, поконкретнее Плиз!!!
От чего всё енто происходит (не про не догоняю)с поиском хэ!


 
Starcom ©   (2005-09-14 09:05) [17]

Парни не бросайте, помогите разобратся!

С Уважением Starcom! ;-(


 
Anatoly Podgoretsky ©   (2005-09-14 09:41) [18]

Смотри еще раз Турист   (10.09.05 22:36) [9], только очень внимательно, выписывая буква за буквой на бумажку, а потом читай Anatoly Podgoretsky ©   (11.09.05 21:28) [13]


 
ЮЮ ©   (2005-09-14 12:08) [19]

SQL.Add("(Fam = :Fam)");
Params.ParamByName("Fam").AsString :=
 AnsiUpperCase(Copy(Fam,1,1)) +   AnsiLowerCase(Copy(Fam,2,Length(Fam))) +;


 
Starcom ©   (2005-09-14 17:05) [20]

Anatoly Podgoretsky ©   (14.09.05 09:41) [18]

Перечитал и переписал, но нифига не получилось. Дык!!!

ЮЮ ©   (14.09.05 12:08) [19]

Попробовал твой код, выдаёт ошибку!

Парни если енто что я прошу невозможно так и скажите, а то кутерьма какая-то!

С Уважением Starcom!


 
ANB ©   (2005-09-14 17:19) [21]


> Starcom ©   (14.09.05 17:05) [20]
- ошибка компиляции ?

SQL.Add("(Fam = :Fam)");
Params.ParamByName("Fam").AsString :=
AnsiUpperCase(Copy(Fam,1,1)) +   AnsiLowerCase(Copy(Fam,2,Length(Fam)));

ЗЫ. Мог бы и сам опечатку поправить


 
Anatoly Podgoretsky ©   (2005-09-14 19:23) [22]

Starcom ©   (14.09.05 17:05) [20]
Парни если енто что я прошу невозможно так и скажите, а то кутерьма какая-то!

А сколько раз надо это говорить , тебе и доказательство привели, а все равно без толку.


 
Starcom ©   (2005-09-14 19:32) [23]

Anatoly Podgoretsky ©   (14.09.05 19:23) [22]

Пасиба добрый Вы! :)

ANB ©   (14.09.05 17:19) [21]

Скромность, вежливость Мастеров!
Вы за кого меня принимаете! ЗЫ. Поправил не слепой, но тема таже,
вот и написал что ошибка! :(


 
Starcom ©   (2005-09-14 20:03) [24]

ANB ©   (14.09.05 17:19) [21]

Беру свои слова на счёт ошибки - Обратно! Пасибо Огромное!
Ну и помурыжили же Вы Меня! ;)

С Уважением Starcom! :)))



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.098 c
1-1127987347
Oleg_
2005-09-29 13:49
2005.10.23
ME виснет при подгрузке BMP


6-1120196627
Dust
2005-07-01 09:43
2005.10.23
Сколько данных читать из неблокирующего сокета?


14-1128173516
Толян
2005-10-01 17:31
2005.10.23
Delphi 2005 или Delphi 7 или Delphi 8


3-1125922257
Starcom
2005-09-05 16:10
2005.10.23
Чтоб при вводе запроса небыло подвязки к регистру?


2-1127989620
Del_programmer
2005-09-29 14:27
2005.10.23
DirectoryListBox1