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
Formatowanie Pola
Formatowanie Pola
OpenOffice 3.1 na Windows XP
Re: Formatowanie Pola
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
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)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Formatowanie Pola
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
Dzięki za pomoc, na pewno sie przyda.
pozdrawiam
OpenOffice 3.1 na Windows XP
Re: Formatowanie Pola
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.
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)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)