%SSC_MAPMSG

Map a database‑specific error code

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
value = %SSC_MAPMSG(dbchannel, mapfile, dfltcode, mapcode)

Return value

value

This function returns SSQL_NORMAL (success) or SSQL_FAILURE (failure). (i)

Arguments

dbchannel

An internal database channel previously initialized using %SSC_INIT and connected by %SSC_CONNECT. (n)

mapfile

The filename (without filename extension) that contains the error code mapping. (a)

dfltcode

The code to return if no match is found in the map file. (n)

mapcode

Returned with the mapped code. (n)

Discussion

%SSC_MAPMSG maps a database‑specific error code to a generic error code.

The text file that mapfile is set to must contain two numbers in each line: the first number is the database‑specific error code (most are negative), and the second number is the matching generic error code that you want returned. SQL Connection opens the error code mapping file once for each open database channel and appends the xx filename extension to the name of the mapfile text file, where xx is the database ID from the last %SSC_GETDBID function call.

When a status value of SSQL_FAILURE is returned, you can call this function to get the map message code. You can then process general error messages in your own error processing system.

Examples

The following code segment demonstrates how to map a database‑specific error code to an application generic error code using an Oracle database (with a mapfile of my_map.0).

mapfile = "my_map"
sts = %ssc_getemsg(dbchn, msg, len,, ecode)
sts = %ssc_mapmsg(dbchn, mapfile, ecode, map_code)
call do_case_map_code

The contents of the first line of the file if it mapped Oracle error –2 to a returned error 3 would be

–2 3