Formatowanie Pola

Użytkowanie programu bazodanowego
Sillve
Posty: 3
Rejestracja: śr paź 21, 2009 12:45 am

Formatowanie Pola

Post autor: Sillve »

Witam,
zwracam sie do was z zapytaniem, jaki jest odpowiedni kod formatu, jeśli chcę aby w okreslonym polu, osoba mogła wpisywać nieokreslona ilosc liczb po przecinku. NP:
1,2,4,2,4

z gory dziekuje za pomoc
OpenOffice 3.1 na Windows XP
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Formatowanie Pola

Post autor: Jan_J »

Takie wymaganie to nie format, tylko ograniczenie zawartości (zwane w bazach danych więzami integralności).
W zarządzaniu bazą na poziomie języka SQL takie ograniczenia zadaje się albo przy okazji polecenia CREATE TABLE za pomocą klauzuli CHECK,
albo w dowolnym późniejszym momencie za pomocą klauzuli ADD CONSTRAINT, albo za pomocą wyzwalaczy, o ile baza je obsługuje.

Twoje wymaganie stwierdza: liczba po czym dowolną ilość razy (,liczba), co tłumaczy się na wyrażenie regularne '^[0-9]+(,[0-9]+)*$'
Obsługa wyrażeń regularnych nie jest standardem w SQL-u, choć w niektórych bazach istnieje. Bez niej liczyłbym na samodzielnie napisaną funkcję sprawdzającą, bo samym standardowym LIKE tego nie sprawdzisz.

A jak to zrobić za pomocą formatu w Base? pewien nie jestem, ale sądzę, że się nie da. Nie do tego służy format.
Raczej użyłbym ADD CONSTRAINT w interfejsie SQL (Narzędzia/SQL) -- ale HSQLDB wbudowany w Base'a nie ma wyrażeń regularnych. Pozostaje życzyć sobie, by pole składało się wyłącznie z cyfr i przecinków. To się da wyrazić w klauzuli CONSTRAINT, choć niezbyt efektywnie.

PS. Czy nie chodzi Ci przypadkiem o ominięcie normalizacji tabeli? czy nie chcesz mieć
klucz wartość 0,1,2,5,12
zamiast
klucz wartość
i w innej tabeli
klucz 0
klucz 1
klucz 2
klucz 5
klucz 12
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Sillve
Posty: 3
Rejestracja: śr paź 21, 2009 12:45 am

Re: Formatowanie Pola

Post autor: Sillve »

Juz sobie z tym poradziłem, jestem w szkole sredniej i miałem zadanie od nauczyciela stworzyc dziennik lekcyjny jako bazę danych i poprostu zmieniłem z typu pola liczbowego na tekst, przy sprawdzaniu i tak nie zwrocil na to uwagi.

Dzięki za pomoc, na pewno sie przyda. ;)

pozdrawiam
OpenOffice 3.1 na Windows XP
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Formatowanie Pola

Post autor: Jan_J »

Przyda się, przyda. Podejrzewałem, że idziesz ,,na skróty''.

W dzienniku zrobiłbym co najmniej 3 tabele:
uczniowie: (numer ucznia, imie, nazwisko)
przedmioty: (numer przedmiotu, przedmiot)
oceny: (numer oceny, numer ucznia, numer przedmiotu, data, ocena, za co)

ocena byłaby ... hm ... liczbowa od 1 do 6, a jeszcze lepiej -- odwołaniem do osobnej tabeli z katalogiem obowiązujących ocen.

,,W realu'' byłaby potrzeba dalszej komplikacji takiej bazy.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ