ďťż
 
[postgresql] jdbc i =?UTF-8?B?d3lqxIV0a2k=?= z bazy ďťż
 
[postgresql] jdbc i =?UTF-8?B?d3lqxIV0a2k=?= z bazy
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[postgresql] jdbc i =?UTF-8?B?d3lqxIV0a2k=?= z bazy



Juliusz =?UTF-8?B?xIZ3acSFa2Fsc2tp?= - 24-03-2007 00:01
[postgresql] jdbc i =?UTF-8?B?d3lqxIV0a2k=?= z bazy
  Witam!

Piszę aplikację bazodanową i całe sprawdzanie poprawności danych chcę
przerzucić na constrainty w bazie danych. Oczywiście w przypadku
wprowadzenia niepoprawnych danych to aplikacja musi obsłużyć wyjątek.
Problem polega na tym, że nie wiem jak z wyjątku
org.postgresql.util.PSQLException wyciągnąć informacje o tym, które
ograniczenie i w jakich tabelach zostało naruszone? Czy jedyne co mogę
zrobić to ręcznie parsować komunikat bazy i na jego podstawie generować
odpowiedni wyjątek? Próbowałem wywnioskować cos na podstawie wartości
sqlState wyjątku - jednak nie mogę znaleźć w dokumentacji opisów tych
statusów...

Już kilka dni próbuję znaleźć odpowiedź na to pytanie w internecie jednak
bez rezultatów :/ Czy ktoś już uporał się z tym problemem??
--
Kind regards,
http://www.Juliusz.Cwiakalski.com/





=?iso-8859-2?q?Filip_Rembia=B3kowski?= - 28-03-2007 00:08
=?iso-8859-2?q?Re:_jdbc_i_wyj=B1tki_z_bazy?=
  On 23 Mar, 12:08, Juliusz Ćwiąkalski <juliusz.cwiakal...@op.pl> wrote:
> Piszę aplikację bazodanową i całe sprawdzanie poprawności danych chcę
> przerzucić na constrainty w bazie danych. Oczywiście w przypadku
> wprowadzenia niepoprawnych danych to aplikacja musi obsłużyć wyjątek.
> Problem polega na tym, że nie wiem jak z wyjątku
> org.postgresql.util.PSQLException wyciągnąć informacje o tym, które
> ograniczenie i w jakich tabelach zostało naruszone? Czy jedyne co mogę
> zrobić to ręcznie parsować komunikat bazy i na jego podstawie generować
> odpowiedni wyjątek?

Niestety tak.

RAISE EXCEPTION presently always generates the same SQLSTATE code,
P0001, no matter what message it is invoked with. It is possible to
trap this exception with EXCEPTION ... WHEN RAISE_EXCEPTION THEN ...
but there is no way to tell one RAISE from another.
[http://www.postgresql.org/docs/8.2/s...ql-errors-and-
messages.html]

> Próbowałem wywnioskować cos na podstawie wartości
> sqlState wyjątku - jednak nie mogę znaleźć w dokumentacji opisów tych
> statusów...
http://www.postgresql.org/docs/curre...-appendix.html




Juliusz =?UTF-8?B?xIZ3acSFa2Fsc2tp?= - 28-03-2007 00:08

  Filip Rembiałkowski wrote:
>
> RAISE EXCEPTION presently always generates the same SQLSTATE code,
> P0001, no matter what message it is invoked with. It is possible to
> trap this exception with EXCEPTION ... WHEN RAISE_EXCEPTION THEN ...
> but there is no way to tell one RAISE from another.
> [http://www.postgresql.org/docs/8.2/s...ql-errors-and-
> messages.html]
>
>> Próbowałem wywnioskować cos na podstawie wartości
>> sqlState wyjątku - jednak nie mogę znaleźć w dokumentacji opisów tych
>> statusów...
> http://www.postgresql.org/docs/curre...-appendix.html
Hey!

Dzięki za odpowiedź - była bardzo pomocna! Nie wiem jakim cudem nie udało mi
się znaleźć listy errorcodes w dokumentacji. ;-)

Zastanawiam się jeszcze tylko nad jedną sprawą, czy pobierając wartość
SQLException.getMessage mam gwarancje, że będzie ona zawsze taka sama w
takiej samej sytuacji? Chodzi mi o wersje językowe oraz o wersję bazy
danych i sytuacje np naruszenia takich samych constraintów.

Problem rozwiązałem po prostu paroma wyrażeniami regularnymi które z
wartości wyjątka SQLException.getMessage wyciągają co trzeba oraz na
podstawie SQLException.getSQLState generują mi już odpowiednie wyjątki w
moim systemie - boję się jednak, że takie rozwiązanie będzie mało odporne
na zmiany treści komunikatów wynikającej ze zmiany bazy danych na np nowszą
wersję...
--
Kind regards,
http://www.Juliusz.Cwiakalski.com/
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wawa19wwa91.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com