🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
5 messages
5 total messages Started by lordbz Mon, 10 Sep 2018 09:26
Szukanie w bazie, upper i pierwsza litera
#346745
Author: lordbz
Date: Mon, 10 Sep 2018 09:26
37 lines
2107 bytes
Hej

Potrzebuję porady

jest kodzik:


with DMLog.Ucz, SQL do
  begin
    Close;
    Clear;
    Add('SELECT id_uczestnik, imie, nazwisko FROM Uczen');
     Add('WHERE del=:del');

    if EdtSzukaj.Text <> '' then
    Add('AND (UPPER(imie) LIKE :s or UPPER(nazwisko) LIKE :s)');
   
   ParamByName('del').AsInteger := 0;

    if EdtSzukaj.Text <> '' then
    ParamByName('s').AsString := '%' + UpperCase(szukaj) + '%';
    Open;

Wyszukuje i działa i zgodnie z Upper - nie zważa przy szukaniu czy "anna" czy "Anna". 

Do momentu gdy ktos ma na imię Żaneta.

Wpisanie żaneta (małe ż) nie znajduje ale Żaneta -tak założone w bazie (duże znajduje). Zachowuje sie tek jakby upper nie działał do dużej polskiej litery.

Baza FB 2.5
win 1250
col 3.0

może ktoś się z tym spotkał i coś doradzi

pozdrawiam
Przemek
Re: Szukanie w bazie, upper i pierwsza litera
#346746
Author: FlashX
Date: Mon, 10 Sep 2018 09:58
42 lines
2078 bytes
Wiem, że to jest drut ale można spróbowac zrobić jeszcze 
replace(string,'ż','Ż') i sprawdzić czy działa ;)

W dniu 10.09.2018 o 11:26, lordbz pisze:
> Hej
>
> Potrzebuję porady
>
> jest kodzik:
>
>
> with DMLog.Ucz, SQL do
>   begin
>     Close;
>     Clear;
>     Add('SELECT id_uczestnik, imie, nazwisko FROM Uczen');
>      Add('WHERE del=:del');
>
>     if EdtSzukaj.Text <> '' then
>     Add('AND (UPPER(imie) LIKE :s or UPPER(nazwisko) LIKE :s)');
>
>    ParamByName('del').AsInteger := 0;
>
>     if EdtSzukaj.Text <> '' then
>     ParamByName('s').AsString := '%' + UpperCase(szukaj) + '%';
>     Open;
>
> Wyszukuje i działa i zgodnie z Upper - nie zważa przy szukaniu czy "anna" czy "Anna".
>
> Do momentu gdy ktos ma na imię Żaneta.
>
> Wpisanie żaneta (małe ż) nie znajduje ale Żaneta -tak założone w bazie (duże znajduje). Zachowuje sie tek jakby upper nie działał do dużej polskiej litery.
>
> Baza FB 2.5
> win 1250
> col 3.0
>
> może ktoś się z tym spotkał i coś doradzi
>
> pozdrawiam
> Przemek
>
Re: Szukanie w bazie, upper i pierwsza litera
#346747
Author: Tomek D
Date: Mon, 10 Sep 2018 10:28
39 lines
1935 bytes
Tutaj znajdziesz podpowiedź co należy zrobić 
http://www.destructor.de/firebird/charsets.htm

Tomek D.

W dniu 10.09.2018 o 11:26, lordbz pisze:
> Hej
> 
> Potrzebuję porady
> 
> jest kodzik:
> 
> 
> with DMLog.Ucz, SQL do begin Close; Clear; Add('SELECT id_uczestnik,
> imie, nazwisko FROM Uczen'); Add('WHERE del=:del');
> 
> if EdtSzukaj.Text <> '' then Add('AND (UPPER(imie) LIKE :s or
> UPPER(nazwisko) LIKE :s)');
> 
> ParamByName('del').AsInteger := 0;
> 
> if EdtSzukaj.Text <> '' then ParamByName('s').AsString := '%' +
> UpperCase(szukaj) + '%'; Open;
> 
> Wyszukuje i działa i zgodnie z Upper - nie zważa przy szukaniu czy
> "anna" czy "Anna".
> 
> Do momentu gdy ktos ma na imię Żaneta.
> 
> Wpisanie żaneta (małe ż) nie znajduje ale Żaneta -tak założone w
> bazie (duże znajduje). Zachowuje sie tek jakby upper nie działał do
> dużej polskiej litery.
> 
> Baza FB 2.5 win 1250 col 3.0
> 
> może ktoś się z tym spotkał i coś doradzi
> 
> pozdrawiam Przemek
> 
Re: Szukanie w bazie, upper i pierwsza litera
#346748
Author: Andrzej J
Date: Mon, 10 Sep 2018 10:29
43 lines
2282 bytes
Może trzeba użyć składni UPPER(imie COLLATE PXW_PLK)



W dniu 2018-09-10 o 11:26, lordbz pisze:
> Hej
> 
> Potrzebuję porady
> 
> jest kodzik:
> 
> 
> with DMLog.Ucz, SQL do
>    begin
>      Close;
>      Clear;
>      Add('SELECT id_uczestnik, imie, nazwisko FROM Uczen');
>       Add('WHERE del=:del');
> 
>      if EdtSzukaj.Text <> '' then
>      Add('AND (UPPER(imie) LIKE :s or UPPER(nazwisko) LIKE :s)');
>     
>     ParamByName('del').AsInteger := 0;
> 
>      if EdtSzukaj.Text <> '' then
>      ParamByName('s').AsString := '%' + UpperCase(szukaj) + '%';
>      Open;
> 
> Wyszukuje i działa i zgodnie z Upper - nie zważa przy szukaniu czy "anna" czy "Anna".
> 
> Do momentu gdy ktos ma na imię Żaneta.
> 
> Wpisanie żaneta (małe ż) nie znajduje ale Żaneta -tak założone w bazie (duże znajduje). Zachowuje sie tek jakby upper nie działał do dużej polskiej litery.
> 
> Baza FB 2.5
> win 1250
> col 3.0
> 
> może ktoś się z tym spotkał i coś doradzi
> 
> pozdrawiam
> Przemek
> 
Re: Szukanie w bazie, upper i pierwsza litera
#346749
Author: Roman Tyczka
Date: Mon, 10 Sep 2018 11:20
40 lines
1911 bytes
On Mon, 10 Sep 2018 02:26:53 -0700 (PDT), lordbz wrote:

> Potrzebuję porady
> 
> jest kodzik:
> 
> 
> with DMLog.Ucz, SQL do
>   begin
>     Close;
>     Clear;
>     Add('SELECT id_uczestnik, imie, nazwisko FROM Uczen');
>      Add('WHERE del=:del');
> 
>     if EdtSzukaj.Text <> '' then
>     Add('AND (UPPER(imie) LIKE :s or UPPER(nazwisko) LIKE :s)');
>    
>    ParamByName('del').AsInteger := 0;
> 
>     if EdtSzukaj.Text <> '' then
>     ParamByName('s').AsString := '%' + UpperCase(szukaj) + '%';
>     Open;
> 
> Wyszukuje i działa i zgodnie z Upper - nie zważa przy szukaniu czy "anna" czy "Anna". 
> 
> Do momentu gdy ktos ma na imię Żaneta.
> 
> Wpisanie żaneta (małe ż) nie znajduje ale Żaneta -tak założone w bazie (duże znajduje). Zachowuje sie tek jakby upper nie działał do dużej polskiej litery.
> 
> Baza FB 2.5
> win 1250
> col 3.0

Nie wiem czy w 2.5 jest, ale gdybyś użył collate case insensitive to byś
nic nie musiał kombinować.
Poza tym pokaż DDLa od tabeli i od indeksu.

-- 
pozdrawiam
Roman Tyczka
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads