Prima Aprilis 2008

I tak ofiarą Prima Aprilis w tym roku padła moja ulubiona zabawka w Linuxie – Compiz. Oto cytat ze strony http://magicgarden.sourceforge.net w której właściciel sugeruje iż efekt obracającej się kostki to tylko odpowiednio spreparowany filmik;)

„Facts:
Everyone knows that there are no 3D games for Linux. Everyone knows that Linux has serious troubles with video drivers. So how is it possible that something so cool was created for Linux? Think!
Best Windows gurus spend 11h (eleven hours) trying to configure Compiz Fusion. And the result? Completely nothing. Compiz Fusion doesn’t work because it can’t work.
Each video of rotating cube on youtube is in fact the same movie processed with different video filters.
Closer analysis showed that the thing called „Compiz Fusion” is in fact just a movie rendered on four Windows Vista machines in seven hours. This movie is now available as a package for most popular Linux distributions.
Each person who claim, that he uses a Compiz Fusion is a lier. All he can do on his Linux is to play a prerendered movie.

Czego to ludzie nie wymyślą:)

Przydatny selektor

Mowa tutaj o uniwersalnym selektorze jakim jest gwiazdka. Przykład użycia:

*
{
    margin: 0px;
}

Powoduje on, że wszystkie elementy występujące w dokumencie będą miały zerowe marginesy. Używam go, gdy chcę zapanować nad wszystkimi elementami i nie mieć nieoczekiwanych różnic w odstępach między przeglądarkami.

Przykładowo elementy takie jak paragraf czy formularz same dodają sobie odstępy. Selektor może również zawierać ustawienia dotyczące czcionki, ramek itp. Oczywiście kolejnymi stylami można nadawać dowolne odstępy na dowolnych elementach i tym samym nadpisać ustawienia dokonane tym selektorem.

Nazwa tabeli jako parametr w procedurze składowanej

Załóżmy, że potrzebujemy procedurę składowaną, która w zależności od zadanego parametru wyciągnie dane z tabeli podanej jako argument do procedury składowanej.
Na pierwszy rzut oka wyglądałoby, że wystarczy utworzyć procedurę postaci::

CREATE PROCEDURE getDataFromTable
@TName nvarchar(100)
AS
BEGIN
    SELECT * FROM @TName
END

@TName to argument wejściowy będący nazwą tabeli.
Jednak ta procedura spowoduje błąd postaci: Must declare the table variable „@TName”
Rozwiązanie tego problemu leży właśnie w dynamicznym SQL:)
Zatem powyższa procedura powinna mieć postać:

CREATE PROCEDURE getDataFromTable
 
@TName nvarchar(100)
AS
BEGIN
    DECLARE @query nvarchar(1000)
    SELECT @query = 'SELECT * FROM '
    SELECT @query = @query + @TName
    EXEC(@query)
END

Nazwa tabeli nadal pozostaje argumentem wejściowym. Dodatkowo w kodzie SQL-a tworzymy zmienną @query, w której umieszczamy potrzebne nam zapytanie.

Działa tylko pod Operą

Jak uzyskać kod postaci:

<div id="title">Tytuł jakiś</div>

za pomocą CSS? Jest na to ciekawy sposób, który działa niestety tylko pod Operą – mam wersję 9.23. Pod IE6 i FF 2.0.0.8 niestety nie:( Ale wracając do sposobu, to można to zrobić następująco:

<div id="title"></div>

Jak widać, pozbyłam się tekstu, który znajdował się w divie.
Zamiast tego włożę go do… stylu:)

#title
{
    content:Tytuł jakiś
}

We wspomnianej już Operze wyświetlone zostanie na ekranie po prostu Tytuł jakiś. Jednym słowem div o id #title zostanie wypełniony tekstem podanym we właściwości content:)

Różnica między TRUNCATE a DELETE

Oba usuwają wiersz z tabeli – TRUNCATE wszystkie, DELETE dowolnie wybrane przez użytkownika. Główna i najważniejsza różnica to, że TRUNCATE jest szybszy od DELETE, a zawdzięcza to temu, że nie zapisuje każdej operacji usunięcia w logach. Natomiast DELETE loguje wszystkie zmiany, przez co jest wolniejszy.
Mały update jeszcze:
Jeśli na jakimś polu mamy autoincrement, to po TRUNCATE indeks ten zostanie zresetowany i nowe rekordy będą numerowane od 1. Natomiast po użyciu DELETE resetu nie będzie.