OSI/MHS Management Programming Manual

Examples
OSI/MHS Management Programming Manual424824-001
C-52
Example in C
return (sql_error);
} /* end add_mspwtabl_row */
/***************************************************************************/
/* Function: alter_mspwtabl_row */
/* Usage : error = alter_mspwtabl_row (appl_name, */
/* passw_in, */
/* appl_orname, */
/* ua_osi_address) */
/* Parameters: appl_name INPUT */
/* passw_in INPUT */
/* appl_orname INPUT */
/* ua_osi_address INPUT */
/*-------------------------------------------------------------------------*/
/* Alter a MSPWTABL row in response to an ALTER APPL request. If an */
/* SQL error is encountered, return the error code, otherwise return zero. */
/* If the OSI address is not present, set the zlength fields in */
/* ua_osi_address to -1. */
/***************************************************************************/
int alter_mspwtabl_row (zmhs_ddl_appl_name_def *appl_name,
zmhs_ddl_passw_def *passw_in,
zmhs_ddl_appl_orname_def *appl_orname,
zmhs_ddl_ua_osi_address_def *ua_osi_address)
{
int sql_error;
memset (&mspwtabl_row, BLANKS, sizeof (mspwtabl_row));
memcpy (mspwtabl_row.appl_name, appl_name, sizeof
(zmhs_ddl_appl_name_def));
exec sql begin work;
/* obtain the old values for the optional fields */
exec sql
select password,
pselector,
sselector,
tselector,
nsap
into :mspwtabl_row.password,
:mspwtabl_row.pselector,
:mspwtabl_row.sselector,
:mspwtabl_row.tselector,
:mspwtabl_row.nsap
from =mspwtabl
where (appl_name = :mspwtabl_row.appl_name);
sql_error = sqlcode;
if (sql_error)
{
exec sql rollback work;
return (sql_error);
}
if (passw_in->zlength >= 0)
{
memset (mspwtabl_row.password, BLANKS, sizeof (mspwtabl_row.password));
memcpy (mspwtabl_row.password, passw_in->zstring, passw_in->zlength);
}
if (appl_orname->zisocountry.zlength > 0)
{
memcpy (mspwtabl_row.iso_country, appl_orname->zisocountry.zstring,
appl_orname->zisocountry.zlength);