Files
MBS/DATABASE/dbdgii_dbxdata.code
T

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 &apos;dbxdata.tcl&apos; template
--Warning: Enter your changes within a &lt;BLOCK&gt; or &lt;POINT&gt; section, otherwise they will be lost.
{&lt;POINT Name=&quot;user.comments&quot;&gt;}
{&lt;/POINT&gt;}
--------------------------------------------------------------------------------
--Importing modules
IMPORT FGL dbdgii_dbxconstraints
IMPORT FGL libdbappCommon
{&lt;POINT Name=&quot;import&quot;&gt;}
{&lt;/POINT&gt;}
--------------------------------------------------------------------------------
--Database schema
SCHEMA dbdgii
--------------------------------------------------------------------------------
--CRUD functions
{&lt;BLOCK Name=&quot;fct.empresastmp_selectRowByKey&quot;&gt;}
#+ Select a row identified by the primary key in the &quot;empresastmp&quot; 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
{&lt;/BLOCK&gt;} --fct.empresastmp_selectRowByKey
{&lt;BLOCK Name=&quot;fct.empresastmp_insertRowByKey&quot;&gt;}
#+ Insert a row in the &quot;empresastmp&quot; 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
{&lt;/BLOCK&gt;} --fct.empresastmp_insertRowByKey
{&lt;BLOCK Name=&quot;fct.empresastmp_updateRowByKey&quot;&gt;}
#+ Update a row identified by the primary key in the &quot;empresastmp&quot; 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()) != &quot;SQT&quot;) 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
{&lt;/BLOCK&gt;} --fct.empresastmp_updateRowByKey
{&lt;BLOCK Name=&quot;fct.empresastmp_deleteRowByKey&quot;&gt;}
#+ Delete a row identified by the primary key in the &quot;empresastmp&quot; 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
{&lt;/BLOCK&gt;} --fct.empresastmp_deleteRowByKey
{&lt;BLOCK Name=&quot;fct.empresastmp_setDefaultValuesFromDBSchema&quot;&gt;}
#+ 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 = &quot;&quot;
LET l_data.razon_social = &quot;&quot;
LET l_data.nombre_empresa = &quot;&quot;
LET l_data.actividad = &quot;&quot;
LET l_data.calle = &quot;&quot;
LET l_data.no_local = &quot;&quot;
LET l_data.sector = &quot;&quot;
LET l_data.telefono = &quot;&quot;
LET l_data.fecha_inicio = &quot;&quot;
LET l_data.estado1 = &quot;&quot;
LET l_data.estado2 = &quot;&quot;
RETURN l_data.*
END FUNCTION
{&lt;/BLOCK&gt;} --fct.empresastmp_setDefaultValuesFromDBSchema
--------------------------------------------------------------------------------
--Add user functions
{&lt;POINT Name=&quot;user.functions&quot;&gt;}
{&lt;/POINT&gt;}
</Generated>
<Diff/>
<Lost/>
</File>