Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.032 c
3-1126171906
Makcim
2005-09-08 13:31
2005.10.23
активность записb


3-1126596950
Sigetta
2005-09-13 11:35
2005.10.23
Master-Detail и запрос с параметрами


3-1126778497
Aliv
2005-09-15 14:01
2005.10.23
редактирование базы


14-1128447069
lookin
2005-10-04 21:31
2005.10.23
Работает ли у Вас ICQ?


3-1126603451
malamba
2005-09-13 13:24
2005.10.23
присоединение к dbf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский