{}
#+ DB schema - Data Management (dbdgii)
--------------------------------------------------------------------------------
--This code is generated with the template dbapp5.0
--Warning: Enter your changes within a or section, otherwise they will be lost.
{}
{}
--------------------------------------------------------------------------------
--Importing modules
IMPORT FGL libdbappCore
IMPORT FGL libdbappSql
IMPORT FGL dbdgii
IMPORT FGL dbdgii_events
IMPORT FGL dbdgii_dbxconstraints
{}
{}
--------------------------------------------------------------------------------
--Database schema
SCHEMA dbdgii
--------------------------------------------------------------------------------
--Functions
{}
#+ Select a row identified by the primary key in the "empresastmp" table
#+
#+ @param p_key - Primary Key
#+ @param p_lock - Indicate if a lock is used in order to prevent several users editing the same rows at the same time
#+
#+ @returnType INTEGER, LIKE empresastmp.*
#+ @return ERROR_SUCCESS|ERROR_FAILURE|ERROR_NOTFOUND, RECORD LIKE empresastmp.*
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_empresastmp_selectRowByKey(p_key, p_lock)
DEFINE p_key
RECORD
empresastmp_rnc LIKE empresastmp.rnc
END RECORD
DEFINE p_lock BOOLEAN
DEFINE l_data RECORD LIKE empresastmp.*
DEFINE l_supportLock BOOLEAN
DEFINE errNo INTEGER
{} {}
LET errNo = ERROR_SUCCESS
-- SQLite does not support the FOR UPDATE close in SELECT syntax
LET l_supportLock = (UPSHIFT(fgl_db_driver_type()) != "SQT")
{} {}
TRY
IF p_lock AND l_supportLock THEN
SELECT * INTO l_data.* FROM empresastmp
WHERE @empresastmp.rnc = p_key.empresastmp_rnc
FOR UPDATE
ELSE
SELECT * INTO l_data.* FROM empresastmp
WHERE @empresastmp.rnc = p_key.empresastmp_rnc
END IF
IF SQLCA.SQLCODE == NOTFOUND THEN
LET errNo = ERROR_NOTFOUND
END IF
CATCH
INITIALIZE l_data.* TO NULL
LET errNo = ERROR_FAILURE
END TRY
{} {}
RETURN errNo, l_data.*
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_selectRowByKey
{}
#+ 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
{} --fct.empresastmp_insertRowByKey
{}
#+ Insert a row in the "empresastmp" table and return the table keys
#+
#+ @param p_data - a row data LIKE empresastmp.*
#+
#+ @returnType INTEGER, STRING, CHAR(11)
#+ @return ERROR_SUCCESS|ERROR_FAILURE, error message, empresastmp.rnc
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_empresastmp_insertRowByKey(p_data)
DEFINE p_data RECORD LIKE empresastmp.*
DEFINE errNo INTEGER
DEFINE errMsg STRING
{} {}
{} {}
CALL dbdgii_dbxdata_empresastmp_insertRowByKey(p_data.*) RETURNING errNo, errMsg, p_data.rnc
RETURN errNo, errMsg, p_data.rnc
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_insertRowByKey
{}
#+ Update a row identified by the primary key in the "empresastmp" table
#+
#+ @param p_dataT0 - a row data LIKE empresastmp.*
#+ @param p_dataT1 - a row data LIKE empresastmp.*
#+
#+ @returnType INTEGER, STRING
#+ @return ERROR_SUCCESS|ERROR_FAILURE|ERROR_CONCURRENT_ACCESS_NOTFOUND|ERROR_CONCURRENT_ACCESS_FAILURE, error message
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_empresastmp_updateRowByKey(p_dataT0, p_dataT1)
DEFINE p_dataT0 RECORD LIKE empresastmp.*
DEFINE p_dataT1 RECORD LIKE empresastmp.*
DEFINE l_key
RECORD
empresastmp_rnc LIKE empresastmp.rnc
END RECORD
DEFINE errNo INTEGER
DEFINE errMsg STRING
{} {}
LET l_key.empresastmp_rnc = p_dataT0.rnc
INITIALIZE errMsg TO NULL
LET errNo = libdbapp_begin_work()
IF errNo == ERROR_SUCCESS THEN
{} {}
TRY
LET errNo = dbdgii_dbxdata_empresastmp_pk_empresastmp_checkRowByKeyWithConcurrentAccess(p_dataT0.*, TRUE)
{} {}
IF errNo == ERROR_SUCCESS THEN
CALL dbdgii_dbxconstraints.dbdgii_dbxconstraints_empresastmp_checkTableConstraints(TRUE, p_dataT1.*) RETURNING errNo, errMsg
{} {}
IF errNo == ERROR_SUCCESS THEN
IF dbdgii_events.m_DbxDataEvent_empresastmp_BeforeUpdateRowByKey IS NOT NULL THEN
CALL dbdgii_events.m_DbxDataEvent_empresastmp_BeforeUpdateRowByKey(p_dataT1.*)
RETURNING errNo, errMsg
END IF
UPDATE empresastmp
SET empresastmp.* = p_dataT1.*
WHERE @empresastmp.rnc = l_key.empresastmp_rnc
END IF
END IF
CATCH
LET errNo = ERROR_FAILURE
END TRY
IF dbdgii_events.m_DbxDataEvent_empresastmp_AfterUpdateRowByKey IS NOT NULL THEN
CALL dbdgii_events.m_DbxDataEvent_empresastmp_AfterUpdateRowByKey(p_dataT1.*)
RETURNING errNo, errMsg
END IF
{} {}
IF errNo == ERROR_SUCCESS THEN
LET errNo = libdbapp_commit_work()
ELSE
CALL libdbapp_rollback_work()
END IF
END IF
RETURN errNo, errMsg
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_updateRowByKey
{}
#+ Delete a row identified by the primary key in the "empresastmp" table
#+
#+ @param p_key - Primary Key
#+
#+ @returnType INTEGER
#+ @return ERROR_SUCCESS|ERROR_FAILURE|ERROR_DELETE_CASCADE_ROW_USED
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_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
{} {}
IF dbdgii_events.m_DbxDataEvent_empresastmp_BeforeDeleteRowByKey IS NOT NULL THEN
CALL dbdgii_events.m_DbxDataEvent_empresastmp_BeforeDeleteRowByKey(p_key.*)
RETURNING errNo
END IF
TRY
DELETE FROM empresastmp
WHERE @empresastmp.rnc = p_key.empresastmp_rnc
CATCH
LET errNo = ERROR_FAILURE
END TRY
IF dbdgii_events.m_DbxDataEvent_empresastmp_AfterDeleteRowByKey IS NOT NULL THEN
CALL dbdgii_events.m_DbxDataEvent_empresastmp_AfterDeleteRowByKey(p_key.*)
RETURNING errNo
END IF
{} {}
IF errNo == ERROR_SUCCESS THEN
LET errNo = libdbapp_commit_work()
ELSE
CALL libdbapp_rollback_work()
END IF
END IF
RETURN errNo
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_deleteRowByKey
{}
#+ Delete a row identified by the primary key in the "empresastmp" table if the concurrent access is success
#+
#+ @param p_dataT0 - a row data LIKE empresastmp.*
#+
#+ @returnType INTEGER
#+ @return ERROR_SUCCESS|ERROR_FAILURE|ERROR_CONCURRENT_ACCESS_NOTFOUND|ERROR_CONCURRENT_ACCESS_FAILURE|ERROR_DELETE_CASCADE_ROW_USED
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_empresastmp_deleteRowByKeyWithConcurrentAccess(p_dataT0)
DEFINE p_dataT0 RECORD LIKE empresastmp.*
DEFINE l_key
RECORD
empresastmp_rnc LIKE empresastmp.rnc
END RECORD
DEFINE errNo INTEGER
{} {}
LET l_key.empresastmp_rnc = p_dataT0.rnc
LET errNo = libdbapp_begin_work()
IF errNo == ERROR_SUCCESS THEN
{} {}
LET errNo = dbdgii_dbxdata_empresastmp_pk_empresastmp_checkRowByKeyWithConcurrentAccess(p_dataT0.*, TRUE)
{} {}
IF errNo == ERROR_SUCCESS THEN
LET errNo = dbdgii_dbxdata_empresastmp_pk_empresastmp_deleteRowByKey(l_key.*)
END IF
{} {}
IF errNo == ERROR_SUCCESS THEN
LET errNo = libdbapp_commit_work()
ELSE
CALL libdbapp_rollback_work()
END IF
END IF
RETURN errNo
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_deleteRowByKeyWithConcurrentAccess
{}
#+ Check if a row identified by the primary key in the "empresastmp" table has been modified or deleted
#+
#+ @param p_dataT0 - a row data LIKE empresastmp.*
#+ @param p_lock - Indicate if a lock is used in order to prevent several users editing the same rows at the same time
#+
#+ @returnType INTEGER
#+ @return ERROR_SUCCESS|ERROR_FAILURE|ERROR_CONCURRENT_ACCESS_NOTFOUND|ERROR_CONCURRENT_ACCESS_FAILURE
PUBLIC FUNCTION dbdgii_dbxdata_empresastmp_pk_empresastmp_checkRowByKeyWithConcurrentAccess(p_dataT0, p_lock)
DEFINE p_dataT0 RECORD LIKE empresastmp.*
DEFINE l_dataT2 RECORD LIKE empresastmp.*
DEFINE l_key
RECORD
empresastmp_rnc LIKE empresastmp.rnc
END RECORD
DEFINE p_lock BOOLEAN
DEFINE errNo INTEGER
DEFINE errDiff INTEGER
{} {}
LET l_key.empresastmp_rnc = p_dataT0.rnc
INITIALIZE l_dataT2.* TO NULL
LET errDiff = FALSE
{} {}
CALL dbdgii_dbxdata_empresastmp_pk_empresastmp_selectRowByKey(l_key.*, p_lock) RETURNING errNo, l_dataT2.*
CASE errNo
WHEN ERROR_SUCCESS
LET errDiff = (p_dataT0.* != l_dataT2.*)
{} {}
IF NOT errDiff THEN
LET errNo = ERROR_SUCCESS
ELSE
LET errNo = ERROR_CONCURRENT_ACCESS_FAILURE
END IF
WHEN ERROR_NOTFOUND
LET errNo = ERROR_CONCURRENT_ACCESS_NOTFOUND
END CASE
{} {}
RETURN errNo
END FUNCTION
{} --fct.empresastmp_pk_empresastmp_checkRowByKeyWithConcurrentAccess
{}
#+ 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
{} --fct.empresastmp_setDefaultValuesFromDBSchema
--------------------------------------------------------------------------------
--Add user functions
{}
{}
{}
-- #+ 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
{}
{}
-- #+ 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
{}
{}
-- #+ 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
{}