Pondělí květen 23, 2011
INSERT a následný dotaz SELECT LAST_INSERT_ID()
· rubrika Blog · kategorie MySQL
Pokud vložíte do databáze nový záznam a pak provedete dotaz SELECT LAST_INSERT_ID() dostanete ID posledního vloženého záznamu (v tabulce musí být sloupec s autoinkrementem). V případě, že už v databázi záznam existuje MySQL vyhodí chybu a ID již existujícícho záznamu nezjistíme. Můžeme ovšem použít INSERT s konstrukcí ON DUPLICATE KEY UPDATE. Tato varianta pak po použití SELECT LAST_INSERT_ID() vždy vrátí ID, buď již existujícího záznamu a nebo i nově vloženého.
10:34
—
Komentář
—
Stálý odkaz
Úterý duben 19, 2011
Počet ovlivněných řádků a ON DUPLICATE KEY UPDATE
· rubrika Blog · kategorie Databáze
Pokud v MySQL použijete ON DUPLICATE KEY UPDATE konstrukci, pak vrácený počet ovlivněných řádků je závislý na tom, zda došlo ke vložení nového záznamu a nebo jen k updatování stávajícího. Pokud dojde k vložení nového záznamu, pak je počet ovlivněných řádků roven jedné. V případě updatování záznamu bude počet ovlivněných řádků roven dvěma a né jedné, jak by mnozí čekali.
08:25
—
Komentář
—
Stálý odkaz
Pátek říjen 23, 2009
Ale toto je nepříjemné.
· rubrika Blog · kategorie
Tak tohle pro změnu zase napsal Firefox po neůspěšném obnovení
otevřených oken a panelů
07:25
—
Komentář
—
Stálý odkaz
Povedená hláška na gmailu
· rubrika Blog · kategorie
Dneska jsem se po dlouhé době přihlásil na gmail a našel tam přes 1000 emailů. Většinu jsem smazal, čímž se dostaly do koše. Když jsme koš vyprázdnil, zobrazila se tato pěkná hláška:
V koši nejsou žádné konverzace. Kdo by je taky mazal, když má víc
než 7 000 MB místa?!
07:20
—
Komentář
—
Stálý odkaz
Středa září 2, 2009
Opera 10
· rubrika Blog · kategorie Software
Dneska jsem si stáhnul novou Operu 10. Kromě nového loga a vzhledu Opera
konečně 100% splňuje test ACID 3 (http://acid3.acidtests.org/). Pokud by
Vás zajímaly detaily testu, stačí kliknout na písmeno „A“ zobrazeného
Acid3 testu.
Po delším používání Opery napíši více.
11:53
—
Komentář
—
Stálý odkaz
Středa srpen 26, 2009
Instalace češtiny pro Windows 7
· rubrika Blog · kategorie
Pokud by jste rádi měli ve Windows 7 češtinu a máte Language Pack od Microsoftu, stačí do příkazové řádky zadat následující příkaz (nezapomeňte upravit cestu, tak aby odpovídala souboru s požadovanou lokalizací):
dism /online /add-package /packagepath:d:\langpacks\cs-cz\lp.cab
Pokud se operace provede úspěšně, v registrech se objeví klíč
\HKLM\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\cs-CZ
Pak už stačí pouze smazat klíč s původní lokalizací
\HKLM\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\en-US
(místo en-US můžete mít jiný jazyk) a restartovat počítač
16:53
—
Komentář
—
Stálý odkaz
Pátek srpen 14, 2009
Dostupnost Windows 7 v rámci programu MSDN AA
· rubrika Blog · kategorie Software
Dneska by měly být v rámci programu MSDN AA (MSDN Academic Alliance)
dostupné Windows 7. Nikde však není žádná zmínka o tom, o jakou verzi
půjde. Je však velice pravděpodobné, že tomu bude jako u Vist, kdy
studenti měli možnost používat verzi Business. Více informací
o dostupnosti nových Windows 7 najdete zde:
http://blogs.technet.com/…s-7-rtm.aspx
UPDATE:
Tak dostupné jsou Windows 7 Professional EN x64 a x86 společně s Language
Packem.
06:26
—
Komentář
—
Stálý odkaz
Čtvrtek srpen 13, 2009
imagecreatefromjpeg() recoverable error: Premature end of JPEG file
· rubrika Clanky · kategorie Programování
Pokud pracujete s knihovnou GD, mohlo by se vám stát, že narazíte na chybovou hlášku:
imagecreatefromjpeg() recoverable error: Premature end of JPEG file
Naštěstí lze tuto chybou hlášku obejít pomocí nastavení ini souboru, kdy je chyba ignorována a vesele se pokračuje dále. V PHP kódu (lze nastavit i přímo v ini souboru, ale k němu mnohdy není umožněn přístup) se tato možnost nastaví následovně:
ini_set(’gd.jpeg_ignore_warning’, 1);
16:19
—
Komentář
—
Stálý odkaz
Pátek květen 15, 2009
SQL - stručný popis a standardy
· rubrika Clanky · kategorie Databáze
SQL je neprocedurální jazyk, nepopisuje jak pracovat s databází, ale co od ní uživatel potřebuje. Skládá se z několika částí:
- DDL (Data Definition Language) – jazyk pro definici struktury databáze
- CREATE – vytváření nových objektů.
- ALTER – změny existujících objektů.
- DROP – odstraňování objektů.
- DML (Data Manipulation Language) – jazyk pro manipulaci s daty
- SELECT – vybírá data z databáze, umožňuje výběr podmnožiny a řazení dat
- INSERT – vkládá do databáze nová data
- UPDATE – mění data v databázi (editace)
- MERGE – záznam se do tabulky vloží, pokud v tabulce neexistuje odpovídající klíč, nebo se záznam upraví
- DELETE – odstraňuje data (záznamy) z databáze
- SHOW – příkaz pro zobrazení databáze, tabulek nebo záznamů
- DCL (Data Control Language) – jazyk pro řízení transakcí a nastavování přístupových práv
- GRANT – příkaz pro přidělení práv uživateli k určitým objektům
- REVOKE – příkaz pro odejmutí práv uživateli
- BEGIN – zahájení transakce
- COMMIT – potvrzení transakce (úspěšné provedení)
- ROLLBACK – zrušení transakce a návrat do původního stavu
Jazyk SQL má v současné době šest verzí standardu, které jsou vždy označovány dle roku vzniku:
- SQL-89 – první specifikace standardu
- SQL-92 – přinesl modifikace SQL schémat, zavedení tabulek s metadaty , vnějších spojení, kaskádního mazání/aktualizace podle cizích klíčů, množinové operace, transakce, kurzory, výjimky, …
- SQL-99 – rozšíření o regulární výrazy, rekurzivní dotazy, triggery, neskalární typy, objektové vlastnosti, …
- SQL:2003 – přináší XML rozšíření, standardizované sekvence a sloupce s automaticky generovanými hodnotami, odstranění datového typu BIT
- SQL:2006 – definuje způsoby, jak importovat a ukládat XML data v databázích jak s nimi manipulovat uvnitř databáze a také jak publikovat data z databáze do XML formátu
- SQL:2008 – upravuje některá předchozí rozšíření
V dnešní době je většina DBMS založena na standardu SQL-92 a SQL-99
(existují však rozdíly v implementaci ). Implementace významných částí
standardů SQL-2006 a 2008 je pouze u některých produktů (například
Oracle). Bohužel informace o tom, co která databáze ze standardů podporuje,
jsou na internetu velmi špatně dostupné.
Celkový problém SQL spočívá v tom, že každá databáze do něj
přidává své vlastní prvky. Většina databází navíc implementuje pouze
části standardů, většinou dle aktuálních potřeb uživatelů (nebo
obecně trhu), a tak je přenositelnost aplikací složitější. Jako příklad
lze uvést vkládání více řádků pomocí jednoho INSERT dotazu. Dle
standardu by podoba takového dotazu vypadala následovně :
INSERT INTO tabulka VALUES (0,'Petr'), (1,'Pavel'), (2,'Mirek');
Ovšem podpora ze strany databází je různá:
| Databáze | MySQL 5 | PostgreSQL 8.3 | Firebird 2.1 | Oracle 11g | MSSQL 2008 |
|---|---|---|---|---|---|
| Podpora | ano | ano | ne | ne | ne |
09:24
—
Komentář
—
Stálý odkaz
Úterý duben 28, 2009
PHP třída pro tvorbu webových formulářů
· rubrika Clanky · kategorie Programování
Pokud náhodou hledáte v PHP třídu pro jednoduchou a rychlou tvorbu formulářů, zkuste třídu Form. Je šířena pod GNU licencí, takže si ji v případě nutnosti můžete upravit.
17:38
—
Komentář
—
Stálý odkaz