Znajdź ostatnie n znaków

Żona zadała mi pytanie w związku z rozwijanym w firmie systemem pisanym w C# i opartym o SQL Server: jakimi sposobami z ciągu znaków np. „kkk/384/d3/a/332” można wyciągnąć liczby po ostatnim znaku „/”?

Do głowy przychodzą mi dwa rozwiązania:

  • wyszukać ostatnie pojawienie się znaku „/” i odpowiednio wyciąć string
  • zastosować wyrażenie regularne do znalezienia cyfr na końcu ciągu

W przypadku SQL Servera nie ma wbudowanych bibliotek do wyrażeń regularnych. Można napisać własne funkcje wykorzystujące SQLCLR (dla wersji 2005 i 2008) lub OLE (dla wersji 2000) lub skorzystać z istniejących zewnętrznych bibliotek dll (np. xp_pcre). W tym konkretnym przypadku można jednak osiągnąć zamierzony wynik żonglując standardowymi funkcjami T-SQL. Czytaj dalej

IE + getElementById

W spadku po odchodzącym pracowniku dostałem do utrzymania aplikację WWW jego autorstwa. Trafił do mnie nierozwiązany przez niego problem działania jednego formularza. Pod Firefoxem działało bez zarzutu, pod IE nie chciało – podczas zapisu do bazy zamiast przesyłanej wartości wrzucane było ‚undefined’. Samo ustalanie wartości pola odbywało się przez taki kawałek kodu:

function $(id) {
return document.getElementById(id);
}
(...)
<input type="text" id="login" name="login" />

przesyłane parametry przez AJAX:

{login: $('login').value, imie: $('imie').value, nazwisko: $('nazwisko').value}

Problem pojawiał się przy polu login. Na szybko wystarczyło zmienić atrybuty name i id, ale skąd się wziął problem? Czytaj dalej

Zaokrąglanie

Po ostatnich poprawkach w kodzie procedur wyliczających ile kasy należy komu wypłacić odbiorca zwrócił uwagę, że w jego przypadku wychodzą inne wyniki przy zaokrąglaniu do uzgodnionej liczby miejsc po przecinku. Testowanie wyników odbywało się poprzez Accessa i procedury w VBA, co powodowało rozjazd z danymi SQL Servera. Cóż, zaokrąglenia mogą być różne, nie tylko znane wszem i wobec arytmetyczne. Źle tylko, że tak samo nazywająca się funkcja ma różne implementacje w różnych językach – trzeba sprawdzać która z nich akurat jest przyjęta. Czytaj dalej

osql i polskie znaki

W poprzednim tekście napisałem, że w przypadku SQL Servera 2000 do automatyzacji zadań możemy wykorzystać osql. Niestety może on mieć problem w przypadku gdy chcemy załadować plik zawierający polskie znaki. Na szybko można wykorzystać dwa rozwiązania:

  • zamiana strony kodowej ładowanego pliku,
  • lub uruchomienie Query Analyzera z poziomu konsoli Czytaj dalej