Brukerhåndbok

Tilpasse SQLCODE-konvertering

Standardverdien er at DB2 Connect konverterer SQLCODE-verdier og symboler fra de ulike IBM-verts- eller AS/400-databasetjenerne til de riktige SQLCODE-verdiene for DB2 UDB. Disse filene er kopier av SQLCODE-konverteringen som er standard:

dcs1dsn.map
Konverterer SQLCODE-verdier for DB2 for MVS/ESA og DB2 UDB

dcs1ari.map
Konverterer SQLCODE-verdier for DB2 for VSE & VM

dcs1qsq.map
Konverterer SQLCODE-verdier for DB2 UDB for AS/400

Det er ikke nødvendig med konvertering for OS/2- og UNIX-baserte DB2-systemer.

Hvis du vil overstyre SQLCODE-konverteringen som er standard, eller hvis du bruker en verts- eller AS/400-databasetjener som ikke har SQLCODE-konvertering (en ikke-IBM-databasetjener), kan du kopiere en av disse filene og bruke den som basis for den nye SQLCODE-konverteringsfilen. Ved å kopiere filen i stedet for å redigere den direkte har du alltid muligheten til å referere til den opprinnelige SQLCODE-konverteringen hvis det er nødvendig.

Oppgi filnavnet for den nye SQLCODE-konverteringsfilen i parameterstrengen i DCS-katalogen eller i objektet for DCE-ruteopplysninger. Hvis du ønsker flere opplysninger om hvordan du oppdaterer DCS-katalogen, leser du Oppdatere databasekataloger. Hvis du ønsker flere opplysninger om hvordan du bruker DCE, leser du Tillegg D, Bruke DCE-katalogtjenester.

Hver enkelt konverteringsfil er en ASCII-fil, som blir opprettet og redigert ved hjelp av et ASCII-redigeringsprogram. Under den første installeringen blir filen lagret i katalogen map i installeringsbanen.

Filen kan inneholde disse spesielle linjetypene:

&&
Den logiske begynnelsen på filen. Alle linjene før den første forekomsten av && blir betraktet som kommentarer i fritt format, og blir oversett. Hvis filen ikke inneholder noen data etter &&, blir det ikke utført noen SQLCODE-konvertering. Du kan også slå av SQLCODE-konvertering ved hjelp av NOMAP-parameteren (se ovenfor).

*
Angir en kommentar hvis den er det første tegnet på en linje.

W
Angir at advarselsmeldinger bør konverteres på nytt hvis dette er det eneste tegnet på en linje. Standardverdien er at de opprinnelige advarselsmeldingene blir sendt. W må være skrevet med stor bokstav.

Alle de andre linjene etter && må være tomme eller konverteringssetninger med dette formatet:

inndatakode [, utdatakode [, symbolliste]]

inndatakode representerer en av disse tingene:

sqlcode
SQLCODE-verdien fra verts- eller AS/400-databasetjeneren.

U
Alle de udefinerte negative SQLCODE-verdiene (de som ikke står oppført i denne filen) blir konvertert til den oppgitte utdatakoden. Hvis det ikke er oppgitt noen utdatakode på denne linjen, blir den opprinnelige SQLCODE-verdien brukt. Dette tegnet må være skrevet med stor bokstav.

P
Alle de udefinerte positive SQLCODE-verdiene (de som ikke står oppført i denne filen) blir konvertert til den oppgitte utdatakoden. Hvis det ikke er oppgitt noen utdatakode på denne linjen, blir den opprinnelige SQLCODE-verdien brukt. Dette tegnet må være skrevet med stor bokstav.

ccnn
SQLCODE-klassekoden fra verts- eller AS/400-databasetjeneren. nn er en av disse verdiene:

00
Ukvalifisert vellykket fullføring

01
Advarsel

02
Ingen data

21
Kardinalitetsovertredelse

22
Dataunntak

23
Begrensningsovertredelse

24
Ugyldig pekerstatus

26
Ugyldig ID for SQL-setning

40
Tilbakestilling av transaksjonen

42
Tilgangsovertredelse

51
Ugyldig applikasjonsstatus

55
Objekt oppfyller ikke nødvendig forutsetning

56
Forskjellige SQL- eller produktrestriksjoner

57
Ressurs ikke tilgjengelig eller operatørinngrep

58
Systemfeil

Den oppgitte utdatakoden blir brukt for alle SQLCODE-verdiene med denne klassekoden som ikke er eksplisitt oppgitt i konverteringsfilen. Hvis det ikke er oppgitt noen utdatakode på denne linjen, blir den opprinnelige SQLCODE-verdien konvertert til seg selv uten at noen symboler blir kopiert over.

Tegnene cc må være skrevet med små bokstaver.

Hvis den samme inndatakoden blir vist flere ganger i konverteringsfilen, blir den første forekomsten brukt.

utdatakode representerer SQLCODE-utdataverdien. Hvis det ikke er oppgitt noen verdi, blir den opprinnelige SQLCODE-verdien brukt.

Hvis du oppgir en utdatakode, kan du også oppgi en av disse verdiene:

(s)
SQLCODE-inndataverdien pluss produkt-IDen (ARI, DSN eller QSQ) blir lagt i SQLCA-meldingssymbolfeltet.

Den opprinnelige SQLCODE-verdien blir returnert som det eneste symbolet. Dette alternativet skal håndtere udefinerte SQLCODE-verdier, med unntak av +965 og -969. Hvis +965 eller -969 er utdatakoden, omfatter symbollisten som blir returnert i SQLERRMC-feltet for SQLCA-verdien, den opprinnelige SQLCODE-verdien, etterfulgt av produkt-IDen, etterfulgt av den opprinnelige symbollisten.

Tegnet s må være skrevet med liten bokstav.

(symbolliste)
En liste over symboler som er atskilt med kommaer. Oppgi bare et komma hvis du vil hoppe over et bestemt symbol. Formatet (,t2,,t4) betyr for eksempel at det første og tredje utdatasymbolet er null.

Hvert symbol har formatet til et tall (n), som det kan stå en c foran og en c eller i etter. Det blir tolket på denne måten:

c
Datatypen for symbolet i denne posisjonen er CHAR (standardverdien). Hvis c kommer før n, refererer det til inndatasymbolet. Hvis det kommer etter n, refererer det til utdatasymbolet. Tegnet c må være skrevet med liten bokstav.

i
Datatypen for symbolet i denne posisjonen er INTEGER. Hvis i kommer etter n, refererer det til utdatasymbolet. i bør ikke komme før n, fordi IBM-verts eller AS/400-databasetjenerprodukter bare støtter CHAR-symboler. Tegnet i må være skrevet med liten bokstav.

n
Et eller flere tall som angir hvilke symboler for verts- eller AS/400-databasetjener som blir brukt. De blir ordnet i rekkefølgen som er ønsket i SQLCA-utdataverdien. Tallverdien angir symbolet for verts- eller AS/400-databasetjeneren, mens rekkefølgen viser rekkefølgen symbolene blir vist i, i SQLCA-verdien.

Verts- eller AS/400-databasetjeneren kan for eksempel returnere to symboler, 1 og 2. Hvis du vil at symbol 2 skal vises før symbol 1 i SQLCA-utdataverdien, oppgir du (2,1).

Flere symboltall kan kombineres for å danne et CHAR-utdatasymbol ved å koble dem sammen med punktum.

Utdatasymbolene blir skilt med kommaer. Hvis det ikke er oppgitt noe symbol før et komma, blir det ikke tatt med noe utdatasymbol i SQLCA-verdien for den posisjonen. Alle symboler som blir vist i SQLCA-utdataverdien som etterfølger det sist oppgitte symbolet, blir konvertert til et nullsymbol.

I Figur 6 ser du et eksempel på en SQLCODE-konverteringsfil.

Figur 6. En SQLCODE-konverteringsfil

&&
  -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)

Hver konverteringssetning i filen blir beskrevet på denne måten:

  1. SQLCODE-verdien blir konvertert fra -007 til -007. Det første inndatasymbolet som ble mottatt fra verts- eller AS/400-databasetjeneren, blir brukt som det første utdatasymbolet, og standardverdien er CHAR. Ingen andre symboler blir overført.
  2. SQLCODE-verdien blir konvertert fra -010 til -010 (ingen SQLCODE-utdataverdi blir oppgitt). Ingen symboler blir lagt i SQLCA-utdataverdien.
  3. SQLCODE-verdien blir konvertert fra -060 til -171. Det første inndatasymbolet som ble mottatt fra verts- eller AS/400-databasetjeneren, blir slettet. Det andre blir brukt som det første symbolet i SQLCA-utdataverdien, og det er CHAR. Det finnes ikke noe annet symbol i SQLCA-utdataverdien.
  4. SQLCODE-verdien blir konvertert fra -204 til -204. Det første og det andre symbolet som ble mottatt fra verts- eller AS/400-databasetjeneren, er CHAR. Disse to inndatasymbolene blir kombinert for å danne et CHAR-utdatasymbol, som blir det første utdatasymbolet i SQLCA-verdien.
  5. SQLCODE-verdien blir konvertert fra -633 til -206. Det første inndatasymbolet som ble mottatt fra verts- eller AS/400-databasetjeneren, er CHAR. Det blir konvertert til INTEGER og blir brukt som det andre symbolet i SQLCA-utdataverdien. Det første symbolet i SQLCA-verdien, er null, og det blir angitt av et komma.
  6. SQLCODE-verdien blir konvertert fra -30021 til -30021. Det første og det andre inndatasymbolet som ble mottatt fra verts- eller AS/400-databasetjeneren, er CHAR, og de blir brukt som det første og andre symbolet i SQLCA-verdien.
  7. Alle SQLCODE-verdiene i SQLCA-verdier med SQLSTATE-verdier i klassen 00 blir konvertert til SQLCODE +000.
  8. Alle udefinerte SQLCODE-verdier blir konvertert til -969. Dette alternativet bør bare brukes hvis alle de konverterbare kodene blir vist, inkludert de som er identiske og som ikke behøver noen konvertering. Alternativet (s) angir at symbollisten som blir returnert i SQLERRMC-feltet for SQLCA-verdien, omfatter den opprinnelige SQLCODE-verdien, etterfulgt av produktet feilen oppstod i, etterfulgt av den opprinnelige symbollisten. Hvis alternativet U ikke er oppgitt, blir alle kodene som ikke er på listen, overført uten noen konvertering.
  9. Alle udefinerte positive SQLCODE-verdier blir konvertert til +965. Dette alternativet bør bare brukes hvis alle de konverterbare kodene blir vist, inkludert de som er identiske og som ikke behøver noen konvertering. Alternativet (s) angir at symbollisten som blir returnert i SQLERRMC-feltet for SQLCA-verdien, omfatter den opprinnelige SQLCODE-verdien, etterfulgt av produktet advarselen oppstod i, etterfulgt av den opprinnelige symbollisten. Hvis alternativet P ikke er oppgitt, blir alle de positive kodene som ikke er på listen, overført uten noen konvertering.


[ Øverst på siden | Forrige side | Neste side | Innholdsfortegnelse | Stikkordregister ]