Ръководство за потребителя
По подразбиране DB2 Connect преобразува кодовете SQLCODE и токените от
всеки IBM хост или AS/400 сървър на база данни към подходящите кодове DB2 UDB
SQLCODE. Следните файлове са копия на SQLCODE преобразуването по
подразбиране:
- dcs1dsn.map
- Преобразува DB2 за MVS/ESA и DB2 UDB за OS/390 SQLCODE
- dcs1ari.map
- Преобразува DB2 за VSE и VM SQLCODE
- dcs1qsq.map
- Преобразува DB2 UDB за AS/400 SQLCODE
Не е необходимо преобразуване на DB2 системите за OS/2 и базираните на
UNIX.
Ако искате да замените стандартното SQLCODE преобразуване или ако
използвате хост или AS/400 сървър на база данни, който не поддържа
преобразуване на SQLCODE (сървър на база данни, който не е на IBM), можете да
копирате един от тези файлове и да го използвате като основа за новия файл за
преобразуване на SQLCODE. Като копирате файла, вместо да го редактирате
директно, ще можете при необходимост винаги да се обърнете към оригиналното
преобразуване на SQLCODE.
Определете името на файла с новото преобразуване на SQLCODE в параметричния
низ на DCS директорията или информационния обект за DCE маршрутизиране.
Информация за обновяване на директорията за DCS вижте в Обновяване на директории на бази данни. Информация за използване на DCE потърсете в Приложение D, Използване на DCE директорните услуги.
Всеки файл за преобразуване е ASCII файл, който се създава и редактира с
помощта на ASCII редактор. При първоначалното инсталиране файлът се
съхранява в директорията map в инсталационната пътека.
Файлът може да съдържа следните специални типове редове:
- &&
- Логическото начало на файла. Всички редове преди първата поява на
символите && се разглеждат като коментар и се игнорират. Ако
файлът не съдържа нищо след &&, не се изпълнява преобразуване на
SQLCODE. Освен това можете да изключите преобразуването на SQLCODE с
помощта на параметъра NOMAP, както беше обяснено преди това.
- *
- Ако е в началото на реда означава коментар.
- W
- Ако е единственият символ на реда, означава, че предупредителните флагове
трябва да се преобразуват. По подразбиране се предават оригиналните
предупредителни флагове. W трябва да е главна буква.
Всички други редове след && трябва или да са празни, или да
съдържат изрази за преобразуване в следния вид:
input_code [, output_code [, token_list]]
input_code представлява едно от следните:
- sqlcode
- SQLCODE от хоста или AS/400 сървъра на базата данни.
- U
- Всички недефинирани отрицателни кодове SQLCODE (тези, които не са изброени
в този файл) се преобразуват до определения изходящ_код.
Ако на този ред не е определен изходящ_код, се използва
първоначалния SQLCODE. Този символ трябва да е главна буква.
- P
- Всички недефинирани положителни кодове SQLCODE (тези, които не са изброени
в този файл) се преобразуват до определения изходящ_код.
Ако на този ред не е определен изходящ_код, се използва
първоначалния SQLCODE. Този символ трябва да е главна буква.
- ccnn
- Кода за клас SQLSTATE от хоста или AS/400 сървъра на базата данни.
nn е един от следните:
- 00
- Неопределено успешно приключване
- 01
- Предупреждение
- 02
- Няма данни
- 21
- Нарушаване на броя на редовете в таблицата
- 22
- Изключение в данните
- 23
- Нарушаване на ограничение
- 24
- Невалидно състояние на указател
- 26
- Невалиден SQL оператор
- 40
- Ролбек на транзакция
- 42
- Грешка в достъпа
- 51
- Невалидно състояние на приложение
- 55
- Обект не в необходимото състояние
- 56
- Други разнородни грешки в продукта или SQL оператор
- 57
- Недостъпен ресурс или вмешателство на оператор
- 58
- Системна грешка
Определеният код изходящ_код се използва за всички кодове
SQLCODE с този код за клас, който не е определен изрично във файла за
преобразуване. Ако на този ред не е определен изходящ_код,
първоначалният SQLCODE се преобразува в себе си, като не се копират никакви
токени.
Символите cc трябва да са малки букви.
Ако във файла за преобразуване се среща повече от веднъж един и същи код
входящ_код, се използва първия.
изходящ_код е получения в резултат SQLCODE. Ако не е
определена никаква стойност, се използва първоначалния SQLCODE.
Ако определите изходящ код, можете също така да определите и едно от
следните:
- (s)
- Началният SQLCODE плюс номера на продукта (ARI, DSN или QSQ) ще се постави
в полето за токен на SQLCA.
Първоначалният SQLCODE се връща като единствен токен. Тази
възможност е подходяща за обработка на недефинирани кодове SQLCODE, с
изключение на +965 и -969. Ако +965 или -969 е изходящ_код,
списъкът с токени, върнат в полето SQLERRMC на SQLCA включва първоначалния
SQLCODE, следван от идентификаторът на продукта, следван от първоначалния
списък с токени.
Символът s трябва да е малка буква.
- (списък-токени)
- Списък с токени, отделени със запетаи. С въвеждането само на
запетая се пропуска определен токен. Например
(,t2,,t4) означава, че първия и третия изходящ токен са
null.
Всеки токен е във вид на число (n), като може да се предшества от
c или след него да има c или i.
Интерпретират се както следва:
- c
- Типът данни на токена на тази позиция е CHAR (по подразбиране). Ако
c е преди n, се отнася за входящия токен; ако е след
n, се отнася за изходящия. Символът c трябва да е
малка буква.
- i
- Типът данни на токена на тази позиция е INTEGER (по подразбиране).
Ако i е след n, се отнася за изходния токен.
i не трябва да е преди n, защото продуктите на IBM за хост
или AS/400 сървър на база данни поддържат само токени от тип CHAR.
Символът i трябва да е малка буква.
- n
- Число или числа, което посочва кои токени за хост или AS/400 сървър на
база данни да се използват. Подреждат се в желания ред за мястото в
изходящия SQLCA. Числото посочва токена на хоста или AS/400 сървъра на
базата данни; подреждането посочва реда, по който токените се поставят в
SQLCA.
Например хоста или AS/400 сървъра на база данни може да върне два токена -
1 и 2. Ако искате токен 2 да се появи преди токен 1 в изходящия SQLCA,
определете (2,1).
Като се свържат с точки, няколко числа токени могат да се комбинират, за да
образуват един изходящ токен от тип CHAR.
Запетаите се използват, за да се разделят изходящите токени. Ако не
е определен токен преди запетаята, на тази позиция в SQLCA няма да се включи
изходящ токен. Всички токени, които се намират в изходящия SQLCA след
последния определен токен, се преобразуват в токен от тип null.
Фигура 6 показва прост файл за преобразуване на SQLCODE.
Фигура 6. Файл за преобразуване на 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)
|
Всеки израз за преобразуване във файла се описва както следва:
- SQLCODE се преобразува от -007 до -007. Първия входящ токен,
получен от хоста или AS/400 сървъра на базата данни, се използва като първи
изходящ токен и по подразбиране е CHAR. Не се прехвърлят други
токени.
- SQLCODE се преобразува от -010 до -010 (не е определен изходящ
SQLCODE). В изходящия SQLCA не се поставят никакви токени.
- SQLCODE се преобразува от -060 до -171. Първия входящ токен,
получен от хоста или AS/400 сървъра на базата данни, се пренебрегва.
Вторият се използва като първи токен в изходящия SQLCA и е от тип CHAR.
Няма втори токен в изходящия SQLCA.
- SQLCODE се преобразува от -204 до -204. Първият и вторият токен,
получени от хоста или AS/400 сървъра на базата данни, са CHAR. Тези два
входящи токена се комбинират, за да образуват един изходящ токен от тип CHAR,
който ще е първия изходящ токен в SQLCA.
- SQLCODE се преобразува от -633 до -206. Първият входящ токен,
получен от хоста или AS/400 сървъра на базата данни, е CHAR. Конвертира
се до INTEGER и се използва като втори токен в изходящия SQLCA. Първият
токен в изходящия SQLCA е null, както е посочено със запетаята.
- SQLCODE се преобразува от -30021 до -30021. Първият и вторият
токен, получени от хоста или AS/400 сървъра на базата данни, са CHAR и те се
използват като първи и втори токен в изходящия SQLCA.
- Всички SQLCODE в SQLCA със SQLSTATE в класа 00 ще се преобразуват до
SQLCODE +000.
- Всеки недефиниран SQLCODE се преобразува до -969. Тази опция трябва
да се използва само ако са изброени всички кодове, които могат да се
преобразуват, включително онези, които са идентични и не е необходимо да се
преобразуват. Опцията (s) посочва, че списъкът с токени,
който ще се върне в полето SQLERRMC на SQLCA, включва първоначалния SQLCODE,
следван от продукта, в който е възникнала грешката и след това първоначалния
списък с токени. Ако не е включен записът U, всички
неизброени кодове се прехвърлят, без да се преобразуват.
- Всеки недефиниран положителен SQLCODE се преобразува до +965. Тази
опция трябва да се използва само ако са изброени всички кодове, които могат да
се преобразуват, включително онези, които са идентични и не е необходимо да се
преобразуват. Опцията (s) посочва, че списъкът с токени,
който ще се върне в полето SQLERRMC на SQLCA включва първоначалния SQLCODE,
следван от продукта, в който е възникнала грешката и след това първоначалния
списък с токени. Ако не е включен записът P, всички
непосочени положителни кодове се прехвърлят, без да се преобразуват.
[ Начало на страницата | Предишна страница | Следваща страница ]