Po-słowie na każdy temat

czyli programowanie i nie tylko

MySQL – client crash – o co chodzi w HeidiSQL?

Każdy z programistów ma własne typy klientów bazodanowych do wprowadzania zmian w zasobach danych pisanej/ych aplikacji. Dla wielu jest to zapewne stary, zasłużony phpMyAdmin, a inni mają bardziej wyszukane propozycje. Jak się domyślacie, sam należę do tej drugiej grupy. W związku z tym proponuję wykorzystanie HeidiSQL.

heidisql_logoJednak każdy kij ma dwa końce. O ile praca z ww. klientem bazodanowym jest bardzo intuicyjna, sprawna i … w ogóle, o tyle zdarzają się czasami problemy, oj poważne problemy dla osób „świeżych” w branży. Chodzi o blokadę krotki w tabeli, na której wykonywaliśmy pewne operacje. W przypadku, gdy nastąpi błąd na pewnej krotce i nieumiejętnie napisaliśmy zapytanie (bądź korzystaliśmy z graficznego interfejsu klienta, który nie zapewnia obudowy transakcyjnej), w pewnych okolicznościach może dojść do pospolitego zawieszenia aplikacji. A i nie myślcie, że wówczas restart klienta wystarczy. Oj nieee 🙂 Byłby to bajkowy świat i spowodowałby, że nie czytalibyście tego wpisu. Wtedy to akurat świat mści się na nas nie pozwalając wykonać żadnej operacji na wskazanej krotce i na domiar złego – zawsze!

Czytaj dalej…

SQL – liczby niecałkowite

Kiedy chcemy zapisać liczbę zmiennoprzecinkową (np. cenę) w większości języków programowania używamy tylu FLOAT. Okazuje się, że w języku SQL nie jest to dobry pomysł. Zachęcam do lektury krótkiego rozdziału, dokumentującego konkretny antywzorzec języka SQL.

Poniższe informacje w formie zmodyfikowanej lub nie zaczerpnięte są z książki Billa Karwina „Antywzorce języka SQL”. Polecam, jako niezbędnik programisty.

Niektóre wartości liczbowe, które możemy sobie bez trudu wyobrazić, w ogóle nie mogą być reprezentowane z zastosowaniem metody skończonej precyzji. Część programistów uważa, że takie rozwiązanie jest usprawiedliwione – skoro wartości złożonych z nieskończonej liczby cyfr i tak nie da się zapisać, każda zapisywana przez nas liczba z natury ma skończoną precyzję i tak też powinna być przechowywana w formie binarnej, prawda? Niestety nie. Czytaj dalej…