xom`s pinion - Tom Hnatovsky Blog

PF2012

20. prosince 2011 Jen tak pro sebe 2 komentáře

PF2012 - Nechť vás v příštím roce provází zdraví, štěstí, radost a slušnost

Aktualizace všech sekvencí v PostgreSQL

18. prosince 2011 PostgreSQL nekomentováno

PostgreSQL tutoriál Máte v PostgeSQL poslední hodnoty sekvencí, které vám nesedí s daty v tabulkách? Podobnou situaci můžete lehce navodit importním skriptem, který obsahuje hodnoty v polích, která by se měla automaticky plnit dle sekvence..

Jak z takové šlamastiky ven?

SELECT setval('tabulka_sloupec_seq', (SELECT MAX(sloupec) FROM tabulka)+1);

No jo, ale co když je těch tabulek mnoho? V tomto případě oceníte přítomnost plpgsql na serveru a vytvoříte si následující funkci:

CREATE OR REPLACE FUNCTION reset_sequence(table_name text, column_name text, sequence_name text) RETURNS void AS $BODY$DECLARE BEGIN EXECUTE 'SELECT setval( ''' || sequence_name || ''', ' || '(SELECT MAX(' || column_name || ') FROM ' || table_name || ')' || '+1)'; END;$BODY$ LANGUAGE 'plpgsql';

Funkci poté jednoduše spustíte nad všemi tabulkami pomocí příkazu:

select reset_sequence(table_name, column_name, table_name || '_' || column_name || '_seq') from information_schema.columns where column_default like 'nextval%';

Detekce webkamery pomocí ActionScript 3

8. prosince 2011 ActionScript nekomentováno

Detekce webkamery ve Flashi pomocí ActionScript 3

Detekce přítomnosti webkamery ve Flashi není zcela triviální. On i počítač bez kamery se totiž tváří, že ji má a že může Flashi dodávat obraz.

První, co programátora napadne je použití konstrukce:

if (Camera.getCamera())

Bohužel právě tento kód kameru vrátí prakticky kdykoliv a jeho přidružené metody také nic moc nenapoví.

Pro detekci webkamery proto doporučuji třídu CameraDetection (ke stažení na GitHubu), která možnosti webkamery řádně otestuje a zjistí skutečný stav.

Implementace je velice jednoduchá, stačí použít následující kód:

import ktu.media.CameraDetection; import ktu.events.CameraDetectionEvent; import ktu.media.CameraDetectionResult; var cd:CameraDetection = new CameraDetection(stage); cd.addEventListener (CameraDetectionEvent.RESOLVE, onCameraResolve); cd.begin(); private function onCameraResolve (e:CameraDetectionEvent):void { switch (e.code) { case CameraDetectionResult.SUCCESS: trace("OK"); break; case CameraDetectionResult.NO_SUCCESS: trace("Fail"); break; case CameraDetectionResult.NO_PERMISSION: trace("Fail"); break; case CameraDetectionResult.NO_CAMERAS: trace("Fail"); break; } }
© 2004-2012 Tom Hnatovsky - Všechna práva vyhrazena