Podręcznik użytkownika
Domyślnie DB2 Connect odwzorowuje kody SQLCODE i tokeny z każdego
serwera baz danych hosta lub AS/400 IBM na odpowiednie kody SQLCODE DB2
UDB. Następujące pliki są kopiami domyślnego odwzorowania
SQLCODE:
- dcs1dsn.map
- Odwzorowuje kody SQLCODE DB2 for MVS/ESA i DB2 UDB dla OS/390
- dcs1ari.map
- Odwzorowuje kody SQLCODE DB2 for VSE & VM.
- dcs1qsq.map
- Odwzorowuje kody SQLCODE DB2 UDB for AS/400
Odwzorowanie nie jest konieczne w przypadku systemów DB2 for OS/2 i typu
UNIX.
Jeśli użytkownik chce nadpisać domyślne odwzorowanie SQLCODE lub używa
serwera baz danych hosta lub AS/400, który nie ma odwzorowania SQLCODE (serwer
baz danych inny niż IBM), to może on skopiować jeden z wymienionych plików i
używać go jako podstawy dla nowego pliku odwzorowania SQLCODE.
Skopiowanie pliku, a nie bezpośrednia jego edycja daje pewność, że w razie
konieczności można odnieść się do oryginalnego odwzorowania SQLCODE.
W łańcuchu parametrów katalogu DCS lub obiektu z informacjami o routingu
DCE należy podać nazwę pliku nowego pliku odwzorowania SQLCODE.
Informacje na temat aktualizowania katalogu DCS można znaleźć w rozdziale Aktualizowanie katalogów baz danych. Informacje na temat używania DCE można znaleźć w
sekcji Dodatek D, Wykorzystanie DCE Directory Services.
Każdy plik odwzorowania jest plikiem ASCII utworzonym i modyfikowanym przy
użyciu edytora ASCII. W czasie instalacji plik jest zapisywany w
katalogu map ścieżki instalacji.
Plik ten może zawierać następujące specjalne typy wierszy:
- &&
- Logiczny początek pliku. Wszystkie wiersze znajdujące się przed
pierwszym wystąpieniem && są uważane za komentarz i są
pomijane. Jeśli po && nie występują żadne znaki, to
odwzorowanie SQLCODE nie jest wykonywane. Można również wyłączyć
odwzorowanie SQLCODE, używając parametru NOMAP w sposób poprzednio
opisany.
- *
- Jako pierwszy znak w wierszu oznacza komentarz.
- W
- Jako jedyny znak w wierszu oznacza flagi ostrzeżeń, które powinny być
ponownie odwzorowane. Domyślnie przekazywane są oryginalne flagi
ostrzeżeń. 'W' musi być wielką literą.
Wszystkie pozostałe wiersze po && muszą być puste albo być
instrukcjami odwzorowania w następującej postaci:
kod_wejściowy [, kod_wyjściowy [, lista_znaczników]]
kod_wejściowy reprezentuje jedną z następujących pozycji:
- sqlcode
- SQLCODE z serwera baz danych hosta lub AS/400.
- U
- Wszystkie nie zdefiniowane kody SQLCODE o wartości ujemnej (nie wymienione
w pliku) są odwzorowane na określony kod_wyjściowy. Jeśli w
tym wierszu nie podano kodu_wyjściowego, używany jest oryginalny
SQLCODE. Ten znak musi być pisany wielką literą.
- P
- Wszystkie nie zdefiniowane kody SQLCODE o wartości dodatniej (nie
wymienione w pliku) są odwzorowane na określony
kod_wyjściowy. Jeśli w tym wierszu nie podano
kodu_wyjściowego, używany jest oryginalny SQLCODE. Ten znak
musi być pisany wielką literą.
- ccnn
- Kod klasy SQLSTATE z serwera baz danych hosta lub systemu AS/400.
nn może przyjąć jedną z podanych wartości:
- 00
- Niekwalifikowane pomyślne zakończenie,
- 01
- Ostrzeżenie,
- 02
- Brak danych,
- 21
- Naruszenie liczności,
- 22
- Wyjątek dotyczący danych,
- 23
- Naruszenie ograniczenia,
- 24
- Niepoprawny stan kursora,
- 26
- Niepoprawny identyfikator instrukcji SQL,
- 40
- Wycofanie zmian w transakcji,
- 42
- Naruszenie dostępu,
- 51
- Niepoprawny stan aplikacji,
- 55
- Obiekt nie spełnia warunków wstępnych,
- 56
- Inne błędy języka SQL lub produktu,
- 57
- Zasób niedostępny lub interwencja operatora,
- 58
- Błąd systemowy.
Podany kod_wyjściowy jest używany dla wszystkich kodów SQLCODE
z danym kodem klasy, które nie są jawnie podane w pliku odwzorowania.
Jeśli w tym wierszu nie podano kodu_wyjściowego, oryginalny
SQLCODE jest odwzorowany na siebie bez nadpisywania znaczników.
Znaki cc muszą być pisane małymi literami.
Jeśli w pliku odwzorowania ten sam kod_wejściowy występuje
więcej niż raz, używane jest jego pierwsze wystąpienie.
kod_wyjściowy reprezentuje kod wyjściowy SQLCODE. Jeśli nie
podano żadnej wartości, używany jest oryginalny kod SQLCODE.
Jeśli podaje się kod wyjściowy, można również podać:
- (s)
- Kod wejściowy SQLCODE i ID produktu (ARI, DSN lub QSQ) będą umieszczone w
polu znacznika komunikatu obszaru komunikacyjnego SQL.
Oryginalny SQLCODE jest zwracany jako jedyny znacznik. Opcję tę
zaprojektowano do obsługi niezdefiniowanych kodów SQLCODE, z wyjątkiem
wartości +965 i -969. Jeśli kodem_wyjściowym jest +965 lub
-969, lista znaczników zwracana w polu SQLERRMC obszaru komunikacyjnego SQL
zawiera oryginalny kod SQLCODE, po którym występuje identyfikator produktu, a
następnie oryginalna lista znaczników.
Znak s musi być pisany małą literą.
- (lista-znaczników)
- Lista znaczników oddzielonych przecinkami. Aby pominąć dany
znacznik, należy wpisać przecinek. Na przykład postać
(,t2,,t4) oznacza, że pierwszy i trzeci znacznik wyjściowy
są pomijane.
Każdy znacznik ma postać liczby (n) opcjonalnie poprzedzonej
znakiem c, po której opcjonalnie występuje znak c lub
i. Interpretacja podanych elementów jest następująca:
- c
- Typ danych znacznika z tą pozycją to CHAR (domyślnie). Jeśli znak
c występuje przed n, to odnosi się on do znacznika
wejściowego, jeśli występuje po znaku n, to odnosi się do znacznika
wyjściowego. Znak c musi być pisany małą literą.
- i
- Typ danych znacznika z tą pozycją to INTEGER. Jeśli znak
i występuje po n, to odnosi się do znacznika
wyjściowego. Znak i nie powinien występować przed
n, ponieważ hosty lub serwery baz danych AS/400 obsługują tylko
znaczniki CHAR. Znak i musi być pisany małą literą.
- n
- Liczba lub liczby oznaczające używane znaczniki serwera baz danych hosta
lub AS/400. Są one uporządkowane w takiej kolejności, w jakiej mają być
umieszczane w wyjściowym obszarze komunikacyjnym SQL. Liczba oznacza
znacznik serwera baz danych hosta lub AS/400. Uporządkowanie oznacza
kolejność, w której znaczniki będą umieszczane w obszarze komunikacyjnym
SQL.
Na przykład serwer baz danych hosta lub systemu AS/400 może zwrócić dwa
tokeny, 1 i 2. Jeśli chcemy, aby token 2 pojawił się przed tokenem 1 w
danych wyjściowych SQLCA to należy podać (2,1).
Wiele liczb znaczników można połączyć kropkami, tak aby utworzyły one jeden
znacznik wyjściowy typu CHAR.
Do oddzielania znaczników wyjściowych używane są przecinki. Jeśli
przed przecinkiem nie podano znacznika, to dla tej pozycji nie jest dołączany
znacznik wyjściowy w obszarze komunikacyjnym SQL. Znaczniki występujące
w wyjściowym obszarze komunikacyjnym SQL po ostatnim podanym znaczniku są
odwzorowane na puste znaczniki.
Rysunek 6 przedstawia przykładowy plik odwzorowania SQLCODE.
Rysunek 6. Plik odwzorowania SQLCODE
&&
-007 , -007 , (1)
-010
-060 , -171 , (2)
...
-204 , -204 , (c1.2c)
...
-633 , -206 , (,c1i)
-30021 , -30021 , (c1c,c2c)
cc00 , +000
...
U , -969 , (s)
P , +965 , (s)
|
Każda instrukcja odwzorowania znajdująca się w pliku jest opisana w
następujący sposób:
- Kod SQLCODE jest odwzorowany z -007 na -007. Pierwszy znacznik
wejściowy odebrany od serwera baz danych hosta lub AS/400 jest użyty jako
pierwszy znacznik wejściowy, a jego domyślny typ danych to CHAR. Inne
znaczniki nie są przekazywane.
- Kod SQLCODE jest odwzorowany z -010 na -010 (nie podano kodu wyjściowego
SQLCODE). Brak znaczników umieszczanych w wyjściowym obszarze
komunikacyjnym SQL.
- Kod SQLCODE jest odwzorowany z -060 na -171. Pierwszy znacznik
wejściowy odebrany od serwera baz danych hosta lub AS/400 jest
pomijany. Drugi jest używany jako pierwszy znacznik w wyjściowym
obszarze komunikacyjnym SQL, a jego typ danych to CHAR. Brak drugiego
znacznika w wyjściowym obszarze komunikacyjnym SQL.
- Kod SQLCODE jest odwzorowany z -204 na -204. Pierwszy i drugi
znacznik odebrane przez serwer baz danych hosta lub AS/400 mają typ danych
CHAR. Te dwa znaczniki wejściowe są łączone do postaci jednego
znacznika wyjściowego o typie CHAR, który będzie pierwszym znacznikiem
wyjściowym w obszarze komunikacyjnym SQL.
- Kod SQLCODE jest odwzorowany z -633 na -206. Pierwszy znacznik
wejściowy odebrany od serwera baz danych hosta lub AS/400 ma typ CHAR.
Jest on przekształcany do typu INTEGER i jest używany jako drugi znacznik w
wyjściowym obszarze komunikacyjnym SQL. Pierwszy znacznik w wyjściowym
obszarze komunikacyjnym SQL jest pusty, co oznaczono przecinkiem.
- Kod SQLCODE jest odwzorowany z -30021 na -30021. Pierwszy i drugi
znacznik odebrane przez serwer baz danych hosta lub AS/400 mają typ danych
CHAR i są używane jako pierwszy i drugi znacznik w wyjściowym obszarze
komunikacyjnym SQL.
- Wszystkie kody SQLCODE w obszarach komunikacyjnych SQL z SQLSTATE z klasy
00 będą odwzorowane na SQLCODE +000.
- Wszystkie nie zdefiniowane kody SQLCODE są odwzorowane na -969.
Opcja ta powinna być używana, tylko jeśli wszystkie odwzorowywalne kody są
podane, łącznie z kodami identycznymi, niewymagającymi odwzorowania.
Opcja (s) oznacza, że lista znaczników, która ma być zwrócona w
polu SQLERRMC obszaru komunikacyjnego SQL zawiera oryginalny kod
SQLCODE. Po nim występuje produkt, w którym wystąpił błąd, a następnie
oryginalna lista znaczników. Jeśli nie podano pozycji U,
wszystkie kody nieznajdujące się na liście są przesyłane bez
odwzorowania.
- Wszystkie nie zdefiniowane kody SQLCODE o znaku dodatnim są odwzorowane na
+965. Opcja ta powinna być używana, tylko jeśli wszystkie
odwzorowywalne kody są podane, łącznie z kodami identycznymi, niewymagającymi
odwzorowania. Opcja (s) oznacza, że lista znaczników, która
ma być zwrócona w polu SQLERRMC obszaru komunikacyjnego SQL zawiera oryginalny
kod SQLCODE. Po nim występuje produkt, w którym wystąpiło ostrzeżenie,
a następnie oryginalna lista znaczników. Jeśli nie podano pozycji
P, wszystkie kody o znaku dodatnim nieznajdujące się na liście są
przesyłane bez odwzorowania.
[ Początek strony | Poprzednia strona | Następna strona | Spis treści | Indeks ]