Ръководство за потребителя

Обвързване на SQLCODE преобразуването

По подразбиране 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)

Всеки израз за преобразуване във файла се описва както следва:

  1. SQLCODE се преобразува от -007 до -007. Първия входящ токен, получен от хоста или AS/400 сървъра на базата данни, се използва като първи изходящ токен и по подразбиране е CHAR. Не се прехвърлят други токени.
  2. SQLCODE се преобразува от -010 до -010 (не е определен изходящ SQLCODE). В изходящия SQLCA не се поставят никакви токени.
  3. SQLCODE се преобразува от -060 до -171. Първия входящ токен, получен от хоста или AS/400 сървъра на базата данни, се пренебрегва. Вторият се използва като първи токен в изходящия SQLCA и е от тип CHAR. Няма втори токен в изходящия SQLCA.
  4. SQLCODE се преобразува от -204 до -204. Първият и вторият токен, получени от хоста или AS/400 сървъра на базата данни, са CHAR. Тези два входящи токена се комбинират, за да образуват един изходящ токен от тип CHAR, който ще е първия изходящ токен в SQLCA.
  5. SQLCODE се преобразува от -633 до -206. Първият входящ токен, получен от хоста или AS/400 сървъра на базата данни, е CHAR. Конвертира се до INTEGER и се използва като втори токен в изходящия SQLCA. Първият токен в изходящия SQLCA е null, както е посочено със запетаята.
  6. SQLCODE се преобразува от -30021 до -30021. Първият и вторият токен, получени от хоста или AS/400 сървъра на базата данни, са CHAR и те се използват като първи и втори токен в изходящия SQLCA.
  7. Всички SQLCODE в SQLCA със SQLSTATE в класа 00 ще се преобразуват до SQLCODE +000.
  8. Всеки недефиниран SQLCODE се преобразува до -969. Тази опция трябва да се използва само ако са изброени всички кодове, които могат да се преобразуват, включително онези, които са идентични и не е необходимо да се преобразуват. Опцията (s) посочва, че списъкът с токени, който ще се върне в полето SQLERRMC на SQLCA, включва първоначалния SQLCODE, следван от продукта, в който е възникнала грешката и след това първоначалния списък с токени. Ако не е включен записът U, всички неизброени кодове се прехвърлят, без да се преобразуват.
  9. Всеки недефиниран положителен SQLCODE се преобразува до +965. Тази опция трябва да се използва само ако са изброени всички кодове, които могат да се преобразуват, включително онези, които са идентични и не е необходимо да се преобразуват. Опцията (s) посочва, че списъкът с токени, който ще се върне в полето SQLERRMC на SQLCA включва първоначалния SQLCODE, следван от продукта, в който е възникнала грешката и след това първоначалния списък с токени. Ако не е включен записът P, всички непосочени положителни кодове се прехвърлят, без да се преобразуват.


[ Начало на страницата | Предишна страница | Следваща страница ]