208 lines
6.6 KiB
XML
208 lines
6.6 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<File name="dbdgii_dbxdata.code">
|
|
<Generated>#+ Data Management from DB schema (dbdgii)
|
|
|
|
--------------------------------------------------------------------------------
|
|
--This code is generated by the 'dbxdata.tcl' template
|
|
--Warning: Enter your changes within a <BLOCK> or <POINT> section, otherwise they will be lost.
|
|
{<POINT Name="user.comments">}
|
|
{</POINT>}
|
|
|
|
--------------------------------------------------------------------------------
|
|
--Importing modules
|
|
IMPORT FGL dbdgii_dbxconstraints
|
|
IMPORT FGL libdbappCommon
|
|
{<POINT Name="import">}
|
|
{</POINT>}
|
|
|
|
--------------------------------------------------------------------------------
|
|
--Database schema
|
|
SCHEMA dbdgii
|
|
|
|
--------------------------------------------------------------------------------
|
|
--CRUD functions
|
|
|
|
{<BLOCK Name="fct.empresastmp_selectRowByKey">}
|
|
#+ Select a row identified by the primary key in the "empresastmp" table
|
|
#+
|
|
#+ @param p_key - Primary Key
|
|
#+
|
|
#+ @returnType - INTEGER
|
|
#+ @return - ERROR_SUCCESS|ERROR_FAILURE, l_data
|
|
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_selectRowByKey(p_key)
|
|
DEFINE p_key
|
|
RECORD
|
|
empresastmp_rnc LIKE empresastmp.rnc
|
|
END RECORD
|
|
DEFINE l_data RECORD LIKE empresastmp.*
|
|
DEFINE errNo INTEGER
|
|
|
|
INITIALIZE l_data.* TO NULL
|
|
LET errNo = ERROR_SUCCESS
|
|
TRY
|
|
SELECT * INTO l_data.* FROM empresastmp
|
|
WHERE empresastmp.rnc = p_key.empresastmp_rnc
|
|
CATCH
|
|
INITIALIZE l_data.* TO NULL
|
|
LET errNo = ERROR_FAILURE
|
|
END TRY
|
|
|
|
RETURN errNo, l_data.*
|
|
END FUNCTION
|
|
{</BLOCK>} --fct.empresastmp_selectRowByKey
|
|
|
|
{<BLOCK Name="fct.empresastmp_insertRowByKey">}
|
|
#+ Insert a row in the "empresastmp" table and return the primary key created
|
|
#+
|
|
#+ @param p_data - a row data LIKE empresastmp.*
|
|
#+
|
|
#+ @returnType - INTEGER, CHAR(11)
|
|
#+ @return - ERROR_SUCCESS|ERROR_FAILURE, empresastmp.rnc
|
|
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_insertRowByKey(p_data)
|
|
DEFINE p_data RECORD LIKE empresastmp.*
|
|
DEFINE errNo INTEGER
|
|
DEFINE errMsg STRING
|
|
|
|
LET errNo = libdbapp_begin_work()
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
CALL dbdgii_dbxconstraints.dbdgii_dbxconstraints_empresastmp_checkTableConstraints(FALSE, p_data.*) RETURNING errNo, errMsg
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
TRY
|
|
INSERT INTO empresastmp VALUES (p_data.*)
|
|
CATCH
|
|
LET errNo = ERROR_FAILURE
|
|
END TRY
|
|
END IF
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
LET errNo = libdbapp_commit_work()
|
|
ELSE
|
|
CALL libdbapp_rollback_work()
|
|
END IF
|
|
END IF
|
|
RETURN errNo, errMsg, p_data.rnc
|
|
END FUNCTION
|
|
{</BLOCK>} --fct.empresastmp_insertRowByKey
|
|
|
|
{<BLOCK Name="fct.empresastmp_updateRowByKey">}
|
|
#+ Update a row identified by the primary key in the "empresastmp" table
|
|
#+
|
|
#+ @param p_key - Primary Key
|
|
#+ @param p_dataT0 - a row data LIKE empresastmp.*
|
|
#+ @param p_dataT1 - a row data LIKE empresastmp.*
|
|
#+
|
|
#+ @returnType - INTEGER
|
|
#+ @return - ERROR_SUCCESS|ERROR_FAILURE
|
|
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_updateRowByKey(p_key, p_dataT0, p_dataT1)
|
|
DEFINE p_key
|
|
RECORD
|
|
empresastmp_rnc LIKE empresastmp.rnc
|
|
END RECORD
|
|
DEFINE p_dataT0 RECORD LIKE empresastmp.*
|
|
DEFINE p_dataT1 RECORD LIKE empresastmp.*
|
|
DEFINE l_dataT2 RECORD LIKE empresastmp.*
|
|
DEFINE errNo INTEGER
|
|
DEFINE errMsg STRING
|
|
DEFINE errDiff INTEGER
|
|
|
|
INITIALIZE l_dataT2.* TO NULL
|
|
INITIALIZE errMsg TO NULL
|
|
LET errDiff = FALSE
|
|
LET errNo = libdbapp_begin_work()
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
TRY
|
|
-- Concurrent Access done with the FOR UPDATE (not supported by SQLite)
|
|
IF (UPSHIFT(fgl_db_driver_type()) != "SQT") THEN
|
|
SELECT * INTO l_dataT2.* FROM empresastmp
|
|
WHERE empresastmp.rnc = p_key.empresastmp_rnc
|
|
FOR UPDATE
|
|
LET errDiff = (p_dataT0.* != l_dataT2.*)
|
|
END IF
|
|
|
|
IF NOT errDiff THEN
|
|
CALL dbdgii_dbxconstraints.dbdgii_dbxconstraints_empresastmp_checkTableConstraints(TRUE, p_dataT1.*) RETURNING errNo, errMsg
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
UPDATE empresastmp
|
|
SET empresastmp.* = p_dataT1.*
|
|
WHERE empresastmp.rnc = p_key.empresastmp_rnc
|
|
END IF
|
|
ELSE
|
|
LET errNo = ERROR_CONCURRENT_ACCESS_FAILURE
|
|
END IF
|
|
CATCH
|
|
LET errNo = ERROR_FAILURE
|
|
END TRY
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
LET errNo = libdbapp_commit_work()
|
|
ELSE
|
|
CALL libdbapp_rollback_work()
|
|
END IF
|
|
END IF
|
|
|
|
RETURN errNo, errMsg
|
|
END FUNCTION
|
|
{</BLOCK>} --fct.empresastmp_updateRowByKey
|
|
|
|
{<BLOCK Name="fct.empresastmp_deleteRowByKey">}
|
|
#+ Delete a row identified by the primary key in the "empresastmp" table
|
|
#+
|
|
#+ @param p_key - Primary Key
|
|
#+
|
|
#+ @returnType - INTEGER
|
|
#+ @return - ERROR_SUCCESS|ERROR_FAILURE
|
|
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_deleteRowByKey(p_key)
|
|
DEFINE p_key
|
|
RECORD
|
|
empresastmp_rnc LIKE empresastmp.rnc
|
|
END RECORD
|
|
DEFINE errNo INTEGER
|
|
|
|
LET errNo = libdbapp_begin_work()
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
TRY
|
|
DELETE FROM empresastmp
|
|
WHERE empresastmp.rnc = p_key.empresastmp_rnc
|
|
CATCH
|
|
LET errNo = ERROR_FAILURE
|
|
END TRY
|
|
END IF
|
|
IF errNo == ERROR_SUCCESS THEN
|
|
LET errNo = libdbapp_commit_work()
|
|
ELSE
|
|
CALL libdbapp_rollback_work()
|
|
END IF
|
|
|
|
RETURN errNo
|
|
END FUNCTION
|
|
{</BLOCK>} --fct.empresastmp_deleteRowByKey
|
|
|
|
{<BLOCK Name="fct.empresastmp_setDefaultValuesFromDBSchema">}
|
|
#+ Set data with the default values coming from the DB schema
|
|
#+
|
|
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_setDefaultValuesFromDBSchema()
|
|
DEFINE l_data RECORD LIKE empresastmp.*
|
|
|
|
INITIALIZE l_data.* TO NULL
|
|
LET l_data.rnc = ""
|
|
LET l_data.razon_social = ""
|
|
LET l_data.nombre_empresa = ""
|
|
LET l_data.actividad = ""
|
|
LET l_data.calle = ""
|
|
LET l_data.no_local = ""
|
|
LET l_data.sector = ""
|
|
LET l_data.telefono = ""
|
|
LET l_data.fecha_inicio = ""
|
|
LET l_data.estado1 = ""
|
|
LET l_data.estado2 = ""
|
|
|
|
RETURN l_data.*
|
|
END FUNCTION
|
|
{</BLOCK>} --fct.empresastmp_setDefaultValuesFromDBSchema
|
|
|
|
--------------------------------------------------------------------------------
|
|
--Add user functions
|
|
{<POINT Name="user.functions">}
|
|
{</POINT>}
|
|
</Generated>
|
|
<Diff/>
|
|
<Lost/>
|
|
</File> |