Wyswietlanie swojej wiadomosci na wypadek naruszenia Constraint.

Wyswietlanie swojej wiadomosci na wypadek naruszenia Constraint.
J2
J2
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:2
0

jak wyswietlic swoja wiadomosc na wypadek naruszenia Constraint, jak nizej:
Pozdrawiam

CREATE TABLE medication
(
med_id VARCHAR2(3),
med_name VARCHAR2(50),
med_type VARCHAR2(50) CHECK(med_type IN ('Pain killer', 'Narcotic', 'anti-inflammatory')),
how_often VARCHAR(50),
PRIMARY KEY (med_Id)
);

insert into medication values('302','benzine','tumour shrink','2 times a day');

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
1

SQLDeveloper to narzędzie dla programistów a nie frontend dla usera! Własne wiadomości to się wyświetla we frontendzie dla usera


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
woolfik
Nie zgodzę się z Tobą. W przypadku gdy projektujesz bazę mając świadomość, że różni ludzie będą tworzyć różne interfejsy użytkownika (jeden robi desktop, drugi mobile, trzeci web) to lepiej po stronie bazy przygotować obsługę błędów aby komunikaty były jednakowe we wszystkich interfejsach takie same zamiast interpretację wyjątków robić w każdym interfejsie z osobna ...
abrakadaber
abrakadaber
a możesz się nie zgadzać - nikt Ci nie zabroni.
woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 6 godzin
  • Postów:1595
0

@Jachtoma20 Po Varchar2 wnioskuję, że chodzi o oracle jeśli tak to poniższy kod powinien rozwiązać Twój problem:

Kopiuj
CREATE OR REPLACE PROCEDURE test_proc
IS
BEGIN
    insert into medication values('302','benzine','tumour shrink','2 times a day');
exception
  when others then
    if instr(sqlerrm,'twoj identyfikator constrainta') > 0 then
       raise_application_error(-20001,'Twoj tekst');
END test_proc;
edytowany 1x, ostatnio: woolfik
abrakadaber
abrakadaber
a ha i tak dla każdej tabelki osobno. Do tego dochodzi procka dla delete i update. Genialne...
woolfik
ale się czepiasz ... przecież może być jedna procedura do której przekażesz parametr decydujący o insert/update/delete. Co do wielu tabel to tak. Ja mam taki styl, że tworząc tabelę tworzę procedury dodaj/usun/edytuj i _nazwa_tabeli dzieki temu mam wszystko uporzadkowane i nie dopuszczam do sytuacji gdy ktos robi insert z innego miejsca niz dana procedura/funkcja (nie ma dziergania insertow z formatki i koniec). Ponadto mozesz dac usera bazodanowego, ktory ma granta tylko do executa procedur (i to tez wybranych). I mimo iż nie rozumiem twojego sarkazmu to tak Genialne.
abrakadaber
abrakadaber
a ha i to wszystko ogarniasz używając ORMa a nie rzeźbiąc potem ręcznie zapytania do bazy... Ja wiem, że Ty dość mocno siedzisz w Delphi ale tam dalej jest całkiem inny świat. Ba nawet Delphi ma przyzwoite ORMy (choćby mORMot).
woolfik
No raczej, zresztą zapytania to jedno operacje na danych to co innego. Jednak co do samych zapytań to również nie robię ich z kodu tylko udostępniam widoki. @abrakadaber możesz na mnie patrzeć jak na wariata ale uwierz mi na słowo, że od wielu lat siedzę w bazach danych i wiem co piszę w tym temacie.
abrakadaber
abrakadaber
kwestia dyskusyjna z tym wiem co piszę. BTW co do zmiany z jednego miejsca to do tego służy osobna warstwa w postaci np. serwera WCF albo REST. To jest prawdziwe oddzielenie "grzebaczy" od danych
woolfik
tak ci się tylko wydaje a teoria nie zawsze idzie w parze z praktyką.
abrakadaber
abrakadaber
to moje wydawanie od dłuższego czasu działa na kilkudziesięciu różnych urządzeniach i ma się dobrze. Ciekaw jestem czy też tak będziesz cwaniakował jak będziesz musiał napisać klienta na urządzenie/język, który nie będzie się umiał bezpośrednio podłączyć do bazy.
woolfik
Cwaniakować mogę bo akurat pracuję w firmie, która tworzy swoje autorskie rozwiązania sprzętowe i tego typu problem to nie problem
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)