DB2 Connect Brugervejledning

Tilpasning af SQLCODE-konvertering

Som standard konverterer DB2 Connect SQLCODE-værdier og elementer fra hver IBM værts- eller AS/400-databaseserver til de relevante DB2 UDB SQLCODE-værdier. Standardkonverteringen af SQLCODE-værdier sker vha. følgende filer:

dcs1dsn.map
Konverterer SQLCODE-værdier fra DB2 til MVS/ESA og DB2 UDB til OS/390

dcs1ari.map
Konverterer SQLCODE-værdier fra DB2 til VSE og VM

dcs1qsq.map
Konverterer SQLCODE-værdier fra DB2 UDB til AS/400

Der kræves ingen konvertering for OS/2- og UNIX-baserede DB2-systemer.

Hvis du vil erstatte standardkonverteringen, eller hvis du bruger en værts- eller AS/400-databaseserver, der ikke konverterer SQLCODE-værdier (en ikke-IBM-databaseserver), kan du kopiere en af disse filer og bruge den som grundlag for din egen konverteringsfil. Når du kopierer filen i stedet for at redigere originalfilen, kan du altid vende tilbage til den oprindelige SQLCODE-konvertering.

Angiv navnet på den nye SQLCODE-konverteringsfil i parameterstrengen i kataloget over databaseforbindelser (DCS-kataloget) eller DCE-ruteoplysningsobjektet. Der er oplysninger om opdatering af kataloget over databaseforbindelser i Opdatering af databasekataloger. Der er oplysninger om brug af DCE i Tillæg D, Brug af DCE-katalogfunktion.

Alle konverteringsfilerne er i ASCII-format og kan redigeres vha. et ASCII-redigeringsprogram. Filerne er placeret i biblioteket map under installationsbiblioteket.

Filen kan indeholde følgende særlige linietyper:

&&
Filens logiske begyndelse. Alle linier før den første forekomst af && betragtes som fritekstkommentarer og ignoreres. Hvis filen er tom efter &&, udføres ingen SQLCODE-konvertering. Du kan også deaktivere SQLCODE-konvertering vha. NOMAP-parameteren som beskrevet ovenfor.

*
En stjerne som første tegn på en linie indleder en kommentar.

W
Når W står som det eneste tegn på en linie, angiver det, at advarselsflag skal konverteres. Standardværdien i originalfilerne er, at advarselsflag overføres. Bogstavet W skal skrives med stort.

Alle andre linier efter && skal enten være tomme eller udgøre konverteringsudsagn i følgende format:

inputkode [, outputkode [, elementliste]]

inputkode repræsenterer ét af følgende:

sqlcode
SQLCODE-værdien fra værts- eller AS/400-databaseserveren.

U
Alle ikke-definerede negative SQLCODE-værdier (de som ikke er indeholdt i filen) konverteres til den angivne outputkode. Hvis linien ikke indeholder en outputkode, anvendes den oprindelige SQLCODE. Bogstavet skal skrives med stort.

P
Alle ikke-definerede positive SQLCODE-værdier (de som ikke er indeholdt i filen) konverteres til den angivne outputkode. Hvis linien ikke indeholder en outputkode, anvendes den oprindelige SQLCODE. Bogstavet skal skrives med stort.

ccnn
SQLCODE-klassekoden fra værts- eller AS/400-databaseserveren. nn er en af følgende værdier:

00
Udført ubetinget

01
Advarsel

02
Ingen data

21
Kardinalitetsovertrædelse

22
Datafejl

23
Overtrædelse af betingelse

24
Ugyldig cursortilstand

26
Ugyldig identifikation af SQL-sætning

40
Rollback af transaktion

42
Overtrædelse af adgangsregel

51
Ugyldig applikationstilstand

55
Objekt er ikke i nødvendig tilstand

56
Diverse SQL- eller programfejl

57
Ressourcen er ikke til rådighed, eller brugeren har grebet ind

58
Systemfejl

Den angivne outputkode bruges til alle SQLCODE-værdier med denne klassekode, som ikke er angivet explicit i konverteringsfilen. Hvis linien ikke indeholder en outputkode, konverteres den oprindelige SQLCODE til sig selv, uden at der kopieres elementer.

Tegnene cc skal skrives med småt.

Hvis samme inputkode forekommer flere gange i konverteringsfilen, anvendes første forekomst.

outputkode repræsenterer SQLCODE-outputværdien. Hvis der ikke angives en værdi, benyttes den oprindelige SQLCODE.

Hvis du angiver en outputkode, kan du også angive en af følgende værdier:

(s)
SQLCODE-inputværdien plus produkt-id'en (ARI, DSN eller QSQ) placeres i SQLCA-meddelelseselementfeltet.

Den oprindelige SQLCODE returneres som det eneste element. Denne parameter er beregnet til at håndtere ikke-definerede SQLCODE-værdier, med undtagelse af +965 og -969. Hvis outputkoden er +965 eller -969, indeholder elementlisten, der returneres i SQLERRMC-feltet i SQLCA, den oprindelige SQLCODE, produkt-id'en og den oprindelige elementliste.

Bogstavet s skal skrives med småt.

(elementliste)
En liste med elementer med komma imellem. Skriv et ekstra komma, hvis du vil springe et bestemt element over. Strengen (,t2,,t4) betyder f.eks., at første og tredje outputelement er tomme.

Hvert element udgøres af et nummer (n). Inden nummeret kan der stå c, og efter nummeret kan der stå c eller i. Det har følgende betydning:

c
Datatypen for elementet på denne position er CHAR (standardværdien). Hvis c står før n, refererer bogstavet til inputelementet. Hvis det står efter n, refererer det til outputelementet. Bogstavet c skal skrives med småt.

i
Datatypen for elementet på denne position er INTEGER. Hvis i står efter n, refererer det til outputelementet. i må ikke stå før n, da IBM værts- eller AS/400-databaseserverprodukter kun understøtter elementer af typen CHAR. Bogstavet i skal skrives med småt.

n
Et eller flere numre, der angiver, hvilke værts- eller AS/400-databaseserverelementer der benyttes. De opstilles i den rækkefølge, de skal placeres i output-SQLCA. Nummeret angiver værts- eller AS/400-databaseserverelementet. Numrenes rækkefølge angiver elementernes ønskede placering i SQLCA.

Hvis du f.eks. vil have, at element 2 skal placeres før element 1 i output-SQLCA, skal du skrive (2,1).

Flere elementnumre kan kombineres, så de udgør ét CHAR-outputelement. Det gøres ved at forbinde dem med punktummer.

Outputelementer adskilles vha. kommaer. Hvis der ikke er angivet et element før et komma, vil SQLCA ikke indeholde et outputelement for den position. Hvis der forekommer elementer i output-SQLCA efter det sidst angivne element, erstattes de af et NULL-element.

I Fig. 6 ses et eksempel på en SQLCODE-konverteringsfil.

Fig. 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)

De viste konverteringsudsagn i filen beskrives nedenfor:

  1. SQLCODE-værdien konverteres fra -007 til -007. Det første inputelement, der modtages fra værts- eller AS/400-databaseserveren, bruges som første outputelement og har standardtypen CHAR. Der overføres ikke andre elementer.
  2. SQLCODE-værdien konverteres fra -010 til -010, da der ikke er angivet en SQLCODE-outputværdi. Der placeres ingen elementer i output-SQLCA.
  3. SQLCODE-værdien konverteres fra -060 til -171. Det første inputelement, der modtages fra værts- eller AS/400-databaseserveren, slettes. Det andet bruges som første element i output-SQLCA, og det har datatypen CHAR. Elementposition 2 i output-SQLCA er tom.
  4. SQLCODE-værdien konverteres fra -204 til -204. Det første og andet element, der modtages fra værts- eller AS/400-databaseserveren, har datatypen CHAR. De to inputelementer kombineres, så de udgør ét CHAR-outputelement, som bliver første outputelement i SQLCA.
  5. SQLCODE-værdien konverteres fra -633 til -206. Det første inputelement, der modtages fra værts- eller AS/400-databaseserveren, er CHAR. Det konverteres til INTEGER og bruges som andet element i output-SQLCA. Første element i output-SQLCA er tomt, hvilket angives af et komma.
  6. SQLCODE-værdien konverteres fra -30021 til -30021. Det første og andet inputelement, der modtages fra værts- eller AS/400-databaseserveren, har datatypen CHAR, og de bruges som første og andet element i output-SQLCA.
  7. Alle SQLCODE-værdier i SQLCA'er med SQLSTATE-værdier i 00-klassen konverteres til SQLCODE +000.
  8. Alle ikke-definerede SQLCODE-værdier konverteres til -969. Denne parameter bør kun benyttes, hvis filen indeholder alle de koder, der kan konverteres, herunder dem, der er identiske og ikke kræver konvertering. Parameteren (s) angiver, at den elementliste, der skal returneres i SQLERRMC-feltet i SQLCA, indeholder den oprindelige SQLCODE, det produkt, som fejlen opstod i, og den oprindelige elementliste. Hvis parameteren U ikke er angivet, overføres alle ikke-definerede koder uden konvertering.
  9. Alle ikke-definerede positive SQLCODE-værdier konverteres til +965. Denne parameter bør kun benyttes, hvis filen indeholder alle de koder, der kan konverteres, herunder dem, der er identiske og ikke kræver konvertering. Parameteren (s) angiver, at den elementliste, der skal returneres i SQLERRMC-feltet i SQLCA, indeholder den oprindelige SQLCODE, det produkt, som advarslen opstod i, og den oprindelige elementliste. Hvis parameteren P ikke er angivet, overføres alle ikke-definerede positive koder uden konvertering.


[ Øverst på siden | Forrige side | Næste side | Indholdsfortegnelse | Stikordsregister ]