| Termin | Definicja |
|---|---|
| Case sensitivity | Case sensitivity to rozróżnianie wielkości liter podczas porównywania wartości tekstowych w bazie danych. Na czym polega rozróżnianie wielkości literCase sensitivity oznacza, że wielkie i małe litery są traktowane jako różne podczas porównywania tekstu. W takim trybie wartości „Kowalski”, „kowalski” i „KOWALSKI” nie są identyczne, ponieważ zawierają odmienne znaki. Ma to znaczenie przy wyszukiwaniu rekordów, filtrowaniu wyników, sortowaniu oraz sprawdzaniu, czy podany tekst odpowiada wartości zapisanej wcześniej. Przeciwieństwem jest case insensitivity, czyli porównywanie niewrażliwe na wielkość liter, w którym te przykłady mogą zostać uznane za równoważne. W bazie danych sposób porównywania tekstu nie wynika wyłącznie z samego zapytania. Wpływają na niego między innymi typ kolumny, reguły porównywania znaków oraz ustawienia przypisane do kolumny, tabeli, schematu albo całej bazy. Dlatego dwie kolumny przechowujące tekst mogą zachowywać się inaczej mimo podobnej zawartości. Przed zmianą zapytania trzeba ustalić, jakie reguły porównywania obowiązują w konkretnym środowisku. Porównania tekstowe w zapytaniach i formularzachRóżnicę można zauważyć przy wyszukiwaniu użytkownika, nazwy pliku, adresu e-mail albo symbolu urządzenia. Jeżeli kolumna jest case-sensitive, warunek wyszukujący wartość „ThinkPad” nie musi zwrócić rekordu zawierającego „thinkpad”. W trybie niewrażliwym na wielkość liter oba zapisy mogą pasować, ale dokładny rezultat zależy od zastosowanych reguł porównywania. Nie należy zakładać, że operator równości, wyszukiwanie fragmentu tekstu i sortowanie zawsze stosują identyczne zasady. W aplikacji problem często pojawia się na granicy między formularzem a bazą. Interfejs może pozwalać użytkownikowi wpisać nazwę w dowolnym zapisie, natomiast warstwa zapisu może zachowywać oryginalne znaki, a warstwa wyszukiwania porównywać je inaczej. Przykładowo program może najpierw sprawdzać duplikat identyfikatora bez uwzględniania wielkości liter, a później wykonywać wyszukiwanie wrażliwe na wielkość liter. Taka niespójność prowadzi do komunikatu o istniejącym rekordzie, którego użytkownik nie może później odnaleźć. Kolacja, Unicode i indeksyReguły porównywania tekstu, często określane terminem collation, mogą obejmować nie tylko wielkość liter. Mogą także określać sposób traktowania akcentów, kolejność sortowania oraz zasady właściwe dla danego języka. W polskim tekście znaczenie mogą mieć między innymi litery „ą”, „ę”, „ł” i „ó”. Porównanie niewrażliwe na wielkość liter nie oznacza automatycznie, że wszystkie podobnie wyglądające znaki Unicode zostaną uznane za takie same. Znak zapisany w inny sposób lub pochodzący z innego alfabetu może nadal nie pasować. Jawne przekształcanie wartości w warunku, na przykład sprowadzanie obu stron do jednego zapisu, może ułatwić uzyskanie przewidywalnego wyniku, ale może też ograniczyć wykorzystanie indeksu. Przy dużej tabeli skutkuje to odczytem wielu wierszy zamiast szybkiego wyszukania po indeksie. Bezpieczniej jest dobrać reguły porównywania do przeznaczenia kolumny i sprawdzić plan wykonania zapytania. Osobno należy przetestować wartości różniące się wielkością liter, polskie znaki diakrytyczne, znaki spoza alfabetu łacińskiego oraz puste lub nieuzupełnione pola. Sprawdzanie niespójności na komputerze użytkownikaPodczas pracy na laptopie lub komputerze PC warto porównać dokładną wartość wyświetlaną w aplikacji z wartością zapisaną w bazie, zwracając uwagę na wielkość liter, spacje oraz niewidoczne znaki. Jeżeli wyszukiwanie działa tylko dla jednego zapisu, należy wykonać kilka prób: wpisać tekst małymi literami, wielkimi literami i w oryginalnej postaci. Pomocne jest również sprawdzenie, czy błąd występuje w jednym programie, czy także w innym formularzu korzystającym z tych samych danych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a w przypadku problemów z aplikacją może pomóc ustalić, czy przyczyną jest konfiguracja programu, sposób wprowadzania tekstu, połączenie z bazą czy niespójna interpretacja wartości. Sama wymiana sprzętu nie usunie błędu case sensitivity, jeżeli problem znajduje się w regułach porównywania danych lub w kodzie aplikacji. Do rzetelnej diagnozy potrzebne są konkretne przykłady wartości, opis oczekiwanego wyniku oraz informacja, w którym miejscu przepływu danych pojawia się różnica. |