#+ 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>}