Jak pobrać aktualną wersję rekordu z tabeli historycznych zmian

2011-10-29

 

Załóżmy, że mamy tabelę o następującej strukturze:

CREATE TABLE case_status
( Id INT,
CaseId CHAR(10),
Status CHAR(10)
)

Tabela ma zapamiętywać historyczne zmiany, które zachodziły dla określonych spraw (CaseId). Przyjrzyjmy się takim danym:

INSERT INTO case_status VALUES
(1,’CASE_A’,’Open’),
(2,’CASE_B’,’Open’),
(3,’CASE_A’,’Process’),
(4,’CASE_C’,’Open’),
(5,’CASE_A’,’Close’),
(6,’CASE_B’,’Process’)

Widać, że sprawa „CASE_A: została kiedyś otwarta (rekord nr 1), potem była przetwarzana (rekord nr 3), aż wreszcie została zamknięta (rekord nr 5). Jeżeli przeanalizujemy dane, to okaże sie dodatkowo, że CASE_A jest już zamknięta, CASE_B jest w stanie Process, a CASE_C  jest póki co tylko otwarta (Open).

Jakie zapytanie może pokazać aktualny stan tych spraw? Czytaj dalej »

By Rafał Kraik in SQL

Mniej znane polecenia na SQL Serwerze (CHECKPOINT, KILL, SHUTDOWN)

2011-10-29

Zacznijmy od niegroźnego polecenia

CHECKPOINT

Powoduje ono uruchomienie procesu CHECKPOINT polegającego na przepisaniu „brudnych stron” z bufora SQL Serwera na dysk. Domyślnie czynność ta wykonuje się sama, bez naszej ingerencji, a wpływ ma na nią opcja serwera 'Recovery Interval’. Jeżeli chcesz aby baza danych po awarii odtwarzała się szybciej to zmniejsz recovery interval. Chceckpointy będą występować częściej. Można śledzić kiedy dochodzi do systemowego CHECKPOINTA poprzez pefrmon.

Polecenie CHECKPOINT uruchamiane z ręki wywołuje zapis tylko dla bieżącej bazy danych. Czytaj dalej »

By Rafał Kraik in SQL

C# Jak pracować z ComboBox

2011-10-28

Budując interfejs dla użytkownika chcemy często dać użytkownikowi intuicyjny interfejs, z którego będzie mógł wybierać zrozumiałe dla siebie pozycje. Z drugiej strony programista nie chce pracować z długimi napisami, wolałby raczej pracować z kodami, nierzadko nawet jednoliterowymi kodami.

Idealnie do takiego celu nadaje się ComboBox. Ma on ciekawe właściwości: Czytaj dalej »

Jak uruchomić procedurę zaraz po uruchomieniu usługi SQL Server?

2011-10-28

Można co najmniej na dwa sposoby:

  1. Poprzez sp_procoption
    lub
  2. Poprzez SQL Server Agenta

Ale po kolei: Czytaj dalej »

By Rafał Kraik in SQL

PHP 4 i PHP 5 na jednym serwerze Apache (PHP 5 jako CGI, z mysql)

2011-10-16

Nie samym Microsoftem programista żyje. Na Linuxie trzeba było zainstalować PHP 5, tak by się zgrał z Apache i MySql. Cały problem polegał jednak na tym, że na serwerze Apache był skonfigurowany z PHP 4 uruchamianym jako moduł. Na dodatek PHP 4 nie mogło być zamienione na PHP 5, bo były pewne strony, które wymagały starszej wersji PHP. No więc po kolei: Czytaj dalej »

By Rafał Kraik in Błedy, Linuxy, SQL

Jak wybrać co drugi rekord (SELECT co drugi rekord)

2011-10-15

Jeżeli trzeba wyświetlić co drugi rekord to trzeba sobie odpowiedzieć na pytanie co to znaczy co drugi rekord! Załóżmy, że zamierzam wyświetlić co drugiego pracownika z tabeli Person.Person ze względu na numer pracownika (BusinessEntietyID).

Załóżmy więc, że układam wszystkich pracowników wg ich ID.  Wybór co drugiego jest teraz już prosty z algorytmicznego punktu widzenia. Numerujemy sobie pracowników (np funkcją Row_Number, opisaną już na mobilo).  Potem wybieramy parzystych lub nieparzystych wykorzystując funkcję modulo. Czytaj dalej »

By Rafał Kraik in Błedy, SQL

Błąd podczas kompilacji php „xml2-config not found”

2011-10-14

Podczas instalacji PHP v5  wystąpił błąd po uruchomieniu polecenia ./configure:

configure: error: xml2-config not found. Please check your libxml2 installation.

Co ciekawe biblioteka xml-2 była już zainstalowana. Czytaj dalej »

By Rafał Kraik in Błedy, Linuxy