Monday, September 20, 2010

Η χειμερινή watchlist

Το φθινόπωρο εκτός από την πτώση των φύλλων και τα πρωτοβρόχια είναι η εποχή που ξεκινάνε οι συνεχίζουν οι σεζόν των περισσότερων ξενών σειρών. Ακολουθεί λίστα με το τι καινούριο θα δοκιμάσω και με τι θα συνεχίσω.

CSI(συνεχίζω)
Vegas baby

CSI:Miami(συνεχίζω)
Ο Οράτιος είναι όλα τα λεφτά ότι και να πείτε... yehh yeeh yahhhhhhhh we won't get fooled again

CSI:NY(συνεχίζω)
I love NY

The Vampire Diaries(συνεχίζω)
Beverly Hills 90210 with fangs

Fringe(συνεχίζω)
Γιατί πιθανότατα είναι οτι καλύτερο τα τελευταία 2 χρόνια

Sons of Anarchy(συνεχίζω)
Its different

The Event-Νέα
Το trailer είναι πολύ καλό για να το αγνοήσεις. Κάτι μεταξύ 24 και lost? ίδωμεν

The Cape-Νέα
Να κι ένας σουπερήρωας.

Καλό χειμώνα

Thursday, September 16, 2010

ΠΩΣΚΑΝΩ - update σε sqlite και επιστρέφεται ο σωστός αριθμός γραμμών που τροποποιήθηκαν

Σε standard SQL όταν γίνεται ένα UPDATE Query και αυτό τελειώσει, σου επιστρέφεται το πλήθος των γραμμών που τροποποιήθηκαν. Το ίδιο και στην SQLite, με μία διαφορά.
Αν προσπαθήσεις να τρέξεις ξανά το ίδιο UPDATE σε SQL θα σου επιστραφούν 0 τροποποιημένες γραμμές αφού τίποτα δεν θα έχει αλλάξει. Στην SQLite δυστυχώς όσες φορές και να τρέξεις το query θα σου γυρίσει οτι κάποιες γραμμές τροποποιήθηκαν.
Ενα παράδειγμα.

Έστω πίνακας myTbl με μία εγγραφή και δύο πεδία id και val

idval
10


Εκτελούμε το ακόλουθο query σε sqlite:

sqlite>PRAGMA count_changes = 1;
sqlite>UPDATE myTbl SET val = 5 WHERE id = 1;
1

Το PRAGMA χρειάζεται για να πάρουμε πίσω το πλήθος των γραμμών που αλλάχτηκαν με το τελευταίο query.O πίνακας λοιπόν θα γίνει:

idval
15


Εαν τρέξουμε ξανά το ίδιο query θα πάρουμε πίσω πάλι τον αριθμό 1. Αρκετά προβληματικό αν κανείς βασίζεται σε αυτό για να εκτελέσει κάποια άλλα εργασία. Η λύση για να μην συμβεί κάτι τέτοιο είναι να τροποποιήσουμε το query ως ακολούθως:


sqlite>UPDATE myTbl SET val = 5 WHERE id = 1 AND val != 5;
0


Δεν ξέρω αν είναι κάποιο bug - προσωπικά έτσι μου φαίνεται, αλλά επειδή έφαγα 2 μέρες μ'αυτή την αηδία είπα να το μοιραστώ. Ελπίζω να σε βοηθήσω