Gebruikershandleiding

SQLCODE-toewijzing aanpassen

DB2 Connect wijst standaard SQLCODE's en tokens van elke IBM-host of -AS/400-databaseserver toe aan de juiste DB2 UDB SQLCODE's. De volgende bestanden zijn kopieën van de standaard SQLCODE-toewijzing:

dcs1dsn.map
Wijst SQLCODE's toe van DB2 for MVS/ESA en DB2 UDB for OS/390.

dcs1ari.map
Wijst SQLCODE's toe van DB2 for VSE & VM.

dcs1qsq.map
Wijst SQLCODE's toe van DB2 UDB for AS/400.

Voor OS/2 en op UNIX-gebaseerde DB2-systemen is geen toewijzing vereist.

Wanneer u de standaard SQLCODE-toewijzing wilt uitschakelen of wanneer u gebruikmaakt van een host of AS/400-databaseserver die geen SQLCODE-toewijzing kent (een niet-IBM databaseserver), kunt u een van deze bestanden kopiëren en gebruiken als basis voor een nieuw SQLCODE-toewijzingsbestand. Door het bestand te kopiëren in plaats van rechtstreeks te bewerken kunt u, indien nodig, altijd naar de oorspronkelijke SQLCODE-toewijzing verwijzen.

Geef de bestandsnaam van het nieuwe SQLCODE-toewijzingsbestand op in de parameterreeks van de DCS-directory of het object routegegevens van DCE. Zie Databasedirectory's bijwerken voor informatie over het bijwerken van de directory DCS. Zie Bijlage D, DCE-directoryservices voor informatie over het gebruik van DCE.

Elk toewijzingsbestand is een ASCII-bestand dat in een ASCII-editor wordt gemaakt en bewerkt. Tijdens de eerste installatie wordt het bestand opgeslagen in de map-directory in het installatiepad.

Het bestand bevat mogelijk de volgende speciale regels:

&&
Het logische begin van het bestand. Alle regels voor de eerste regel met && worden beschouwd als vrije-vorm commentaar en worden genegeerd. Als het bestand na && niets bevat, wordt er geen SQLCODE-toewijzing uitgevoerd. U kunt de SQLCODE-toewijzing ook uitschakelen door middel van de parameter NOMAP zoals hierboven is beschreven.

*
Als dit het eerste teken op een regel is, geeft het commentaar aan.

W
Als dit het enige teken op een regel is, wordt hiermee aangegeven dat waarschuwingsvlaggen opnieuw moeten worden toegewezen. Standaard worden de oorspronkelijke waarschuwingsvlaggen doorgegeven. De W moet een hoofdletter zijn.

Alle andere regels na && moeten leeg zijn of toewijzingsinstructies in de volgende vorm:

invoercode [, uitvoercode [, tokenlijst]]

invoercode kan voor het volgende staan:

sqlcode
De SQLCODE van de host of de AS/400-databaseserver.

U
Alle niet-gedefinieerde negatieve SQLCODE's (die niet in dit bestand staan) worden ingedeeld naar de opgegeven uitvoercode. Wanneer er op deze regel geen uitvoercode is opgegeven, wordt de oorspronkelijke SQLCODE gebruikt. Dit teken moet een hoofdletter zijn.

P
Alle niet-gedefinieerde positieve SQLCODE's (die niet in dit bestand staan) worden ingedeeld naar de opgegeven uitvoercode. Wanneer er op deze regel geen uitvoercode is opgegeven, wordt de oorspronkelijke SQLCODE gebruikt. Dit teken moet een hoofdletter zijn.

ccnn
De SQLSTATE-klassencode van de host of de AS/400-databaseserver. nn heeft een van de volgende waarden:

00
Niet-gekwalificeerde succesvolle voltooiing

01
Waarschuwing

02
Geen gegevens

21
Kardinaliteitsinbreuk

22
Gegevensuitzondering

23
Inbreuk op voorwaarde

24
Ongeldige cursortoestand

26
Ongeldig SQL-instructie-ID

40
ROLLBACK van transactie

42
Inbreuk op toegangsmachtiging

51
Ongeldige toepassingsstatus

55
Het object heeft niet de vereiste status

56
SQL- of productfout

57
Resource is niet beschikbaar of tussenkomst van gebruiker

58
Systeemfout

De opgegeven uitvoercode wordt gebruikt voor alle SQLCODE's met deze klassencode die niet expliciet zijn opgegeven in het toewijzingsbestand. Als er op deze regel geen uitvoercode wordt opgegeven, wordt de oorspronkelijke SQLCODE toegewezen aan zichzelf zonder gekopieerde tokens.

De tekens cc moeten kleine letters zijn.

Als dezelfde invoercode meer dan eens voorkomt in het toewijzingsbestand, wordt de eerste versie gebruikt.

uitvoercode staat voor de uitvoer-SQLCODE. Als er geen waarde is opgegeven, wordt de oorspronkelijke SQLCODE gebruikt.

Als u een uitvoercode opgeeft, kunt u ook een van de volgende opgeven:

(s)
De invoer-SQLCODE wordt samen met het product-ID (ARI, DSN of QSQ) in het veld van het SQLCA-berichttoken geplaatst.

De oorspronkelijke SQLCODE wordt als enig token teruggezonden. Deze optie is bedoeld voor het verwerken van niet-gedefinieerde SQLCODE's met uitzondering van +965 en -969. Als de uitvoercode +965 of -969 is, bevat de tokenlijst in het veld SQLERRMC van de SQLA de oorspronkelijke SQLCODE, gevolgd door het product-ID dat weer wordt gevolgd door de oorspronkelijke tokenlijst.

Het teken s moet een kleine letter zijn.

(tokenlijst)
Een lijst van tokens, gescheiden door komma's. Geef alleen een komma op om een bepaald token over te slaan. De vorm (,t2,,t4) bijvoorbeeld, betekent dat het eerste en derde uitvoertoken null zijn.

Elk token heeft de vorm van een getal (n) dat optioneel vooraf wordt gegaan door c en optioneel wordt gevolgd door c of i. Het wordt als volgt geïnterpreteerd:

c
Het gegevenstype van het token in deze positie is CHAR (standaard). Als c wordt gevolgd door n wordt verwezen naar het invoertoken; wanneer het wordt voorafgegaan door n, wordt verwezen naar het uitvoertoken. Het teken c moet een kleine letter zijn.

i
Het gegevenstype van het token in deze positie is INTEGER. Als i wordt voorafgegaan door n, wordt verwezen naar het uitvoertoken. i moet niet worden gevolgd door n omdat programma's van IBM-hosts of AS/400-databaseservers alleen CHAR-tokens ondersteunen. Het teken i moet een kleine letter zijn.

n
Een of meer getallen die aangeven welke tokens voor de host- of de AS/400-databaseserver worden gebruikt. Deze worden gerangschikt in de gewenste volgorde voor plaatsing in de uitvoer-SQLCA. Het nummer geeft het token van de host of de AS/400-databaseserver aan; de rangschikking geeft de volgorde aan waarin de tokens in de SQLCA worden geplaatst.

Zo kan de host of de AS/400-databaseserver twee tokens terugzenden, 1 en 2. Als u wilt dat token 2 in de uitvoer-SQLA voor token 1 verschijnt, dan geeft u (2,1) op.

Meerdere tokengetallen kunnen worden gecombineerd om één CHAR-uitvoertoken te vormen door ze te verbinden met punten.

Uitvoertokens worden gescheiden door komma's. Als er aan een komma geen token voorafgaat, wordt er in de SQLCA voor die positie geen uitvoertoken opgenomen. Tokens die in de uitvoer-SQLA na het laatste opgegeven token staan, worden toegewezen aan een nulltoken.

Figuur 7 toont een voorbeeld van een SQLCODE-toewijzingsbestand.

Figuur 7. Een SQLCODE-toewijzingsbestand

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

Alle toewijzingsinstructies in dit bestand worden als volgt beschreven:

  1. De SQLCODE wordt toegewezen van -007 naar -007. Het eerste invoertoken dat wordt ontvangen van de host of AS/400-databaseserver, wordt gebruikt als het eerste uitvoertoken en is standaard CHAR. Er worden geen andere tokens overgebracht.
  2. De SQLCODE wordt toegewezen van -010 naar -010 (er is geen uitvoer-SQLCODE opgegeven). Er worden geen tokens in de uitvoer-SQLCA geplaatst.
  3. De SQLCODE wordt toegewezen van -060 naar -171. Het eerste invoertoken dat van de host of AS/400-databaseserver wordt ontvangen, wordt gewist. Het tweede token wordt gebruikt als het eerste token in de uitvoer-SQLCA en is CHAR. Er bevindt zich geen tweede token in de uitvoer-SQLCA.
  4. De SQLCODE wordt toegewezen van -204 naar -204. De eerste en tweede tokens die van de host of de AS/400-databaseserver worden ontvangen, zijn CHAR. Deze twee invoertokens worden gecombineerd om een G van CHAR te vormen. Dit zal het eerste uitvoertoken in de SQLCA zijn.
  5. De SQLCODE wordt toegewezen van -633 naar -206. Het eerste invoertoken dat wordt ontvangen van de host of de AS/400-databaseserver is CHAR. Het wordt geconverteerd naar INTEGER en wordt gebruikt als het tweede token in de uitvoer-SQLCA. Het eerste token in de uitvoer-SQLCA is null, zoals aangegeven door een komma.
  6. De SQLCODE wordt toegewezen van -30021 naar -30021. De eerste en tweede invoertokens die van de host of de AS/400-databaseserver worden ontvangen, zijn CHAR en worden gebruikt als de eerste en de tweede tokens in de uitvoer-SQLCA.
  7. Alle SQLCODE's in SQLCA's met SQLSTATE's in de klasse 00 zullen worden toegewezen aan SQLCODE +000.
  8. Alle niet-gedefinieerde SQLCODE's worden toegewezen aan -969. Deze optie mag uitsluitend worden gebruikt als alle toewijsbare codes in de lijst worden vermeld, inclusief de identieke die geen toewijzing behoeven. De optie (s) geeft aan dat de tokenlijst die naar het veld SQLERRMC van de SQLCA terug moet worden gezonden de oorspronkelijke SQLCODE bevat, gevolgd door het programma waarin de fout is opgetreden, gevolgd door de oorspronkelijke tokenlijst. Wanneer U niet wordt opgegeven, worden alle niet-vermelde codes doorgegeven zonder enige toewijzing.
  9. Alle niet-gedefinieerde positieve SQLCODE's worden toegewezen aan +965. Deze optie mag uitsluitend worden gebruikt als alle toewijsbare codes in de lijst worden vermeld, inclusief de identieke die geen toewijzing behoeven. De optie (s) geeft aan dat de tokenlijst die naar het veld SQLERRMC van de SQLCA terug moet worden gezonden de oorspronkelijke SQLCODE bevat, gevolgd door het programma waarin de waarschuwing is opgetreden, gevolgd door de oorspronkelijke tokenlijst. Wanneer de waarde P niet is opgenomen, worden alle niet-vermelde positieve codes doorgegeven zonder enige toewijzing.


[ Begin van pagina | Vorige pagina | Volgende pagina | Inhoud | Trefwoordenregister ]