Praca z typami danych w bazie danychAdobe AIR 1.0 i wersje późniejsze Podczas tworzenia tabeli w bazie danych instrukcja SQL przeznaczona do utworzenia tabeli definiuje powinowactwo lub typ danych dla każdej kolumny w tabeli. Możliwe jest pominięcie deklaracji powinowactwa, jednak dobrym rozwiązaniem jest jawne zadeklarowanie powinowactwa kolumny w instrukcjach SQL CREATE TABLE. Zwykle obiekt zapisany w bazie danych za pomocą instrukcji INSERT jest zwracany jako instancja tego samego typu danych po wykonaniu instrukcji SELECT. Jednak typ danych pobranej wartości może być inny w zależności od powinowactwa kolumny bazy danych, w której zapisana jest wartość. Gdy wartość jest zapisana w kolumnie, a jej typ danych nie jest zgodny z powinowactwem kolumny, wówczas baza danych podejmuje próbę konwersji wartości w celu dopasowania jej do powinowactwa kolumny. Na przykład: jeśli kolumna bazy danych jest zadeklarowana z powinowactwem NUMERIC, wówczas baza danych podejmuje próbę konwersji wstawionych danych na klasę zapisu liczb (INTEGER lub REAL) przed zapisaniem danych. Baza danych zgłasza błąd, jeśli nie ma możliwości konwersji danych. Zgodnie z tą regułą: jeśli ciąg znaków „12345” zostanie wstawiony do kolumny NUMERIC, wówczas przed zapisaniem w bazie danych ciąg znaków zostanie automatycznie przekonwertowany na wartość całkowitą 12345. W przypadku pobrania za pomocą instrukcji SELECT wartość zostanie zwrócona jako instancja typu danych liczbowych (np. Number), a nie jako instancja String. Najlepszym sposobem uniknięcia niepożądanej konwersji danych jest przestrzeganie dwóch reguł. Po pierwsze: należy zdefiniować każdą kolumnę z powinowactwem, które jest zgodne z typem danych, jakie mają być zapisywane w tej kolumnie. Po drugie: należy wstawiać tylko wartości, których typ danych jest zgodny ze zdefiniowanym powinowactwem. Przestrzeganie tych zasad przynosi dwie korzyści. Wstawiane dane nie będą nieoczekiwanie konwertowane (co wiąże się z możliwością utraty znaczenia). Ponadto pobierane dane są zwracane w oryginalnym typie danych. Więcej informacji o dostępnych typach powinowactwa kolumn i korzystaniu z typów danych w instrukcjach SQL zawiera sekcja Obsługa typów danych. |
|