예제 #1
0
        public static Boolean LoadLongTermApplications(ref ApplicationTDS AMainDS, long ATargetFieldKey, long APlacementPersonKey)
        {
            ApplicationTDS MainDS                   = new ApplicationTDS();
            String         GenAppTableName          = AMainDS.PmGeneralApplication.TableName;
            string         QueryLongTermApplication = "";

            List <OdbcParameter> Parameters = new List <OdbcParameter>();
            OdbcParameter        Parameter1 = new OdbcParameter(
                "targetfieldkey", OdbcType.BigInt, PmGeneralApplicationTable.GetGenAppPossSrvUnitKeyLength());
            OdbcParameter Parameter2 = new OdbcParameter(
                "Placementpersonkey", OdbcType.BigInt, PmGeneralApplicationTable.GetPlacementPartnerKeyLength());

            TDBTransaction Transaction = null;

            DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum,
                                                                      ref Transaction,
                                                                      delegate
            {
                QueryLongTermApplication =
                    "SELECT PUB_pm_general_application.*, PUB_pm_year_program_application.*, PUB_p_partner.p_partner_short_name_c " +
                    "FROM PUB_pm_general_application, PUB_pm_year_program_application, PUB_p_partner WHERE ";

                if (ATargetFieldKey != 0)
                {
                    Parameter1.Value = ATargetFieldKey;
                    Parameters.Add(Parameter1);

                    // load all appicants with given Target Field
                    QueryLongTermApplication += "PUB_pm_general_application.pm_gen_app_poss_srv_unit_key_n = ? AND ";
                }

                if (APlacementPersonKey != 0)
                {
                    Parameter2.Value = APlacementPersonKey;
                    Parameters.Add(
                        Parameter2);

                    // load all appicants with given Placement Person
                    QueryLongTermApplication += "PUB_pm_general_application.pm_placement_partner_key_n = ? AND ";
                }

                QueryLongTermApplication += "PUB_pm_year_program_application.p_partner_key_n = PUB_pm_general_application.p_partner_key_n " +
                                            "AND PUB_pm_year_program_application.pm_application_key_i = PUB_pm_general_application.pm_application_key_i "
                                            +
                                            "AND PUB_pm_year_program_application.pm_registration_office_n = PUB_pm_general_application.pm_registration_office_n "
                                            +
                                            "AND PUB_p_partner.p_partner_key_n = PUB_pm_general_application.p_partner_key_n";

                DBAccess.GDBAccessObj.Select(MainDS,
                                             QueryLongTermApplication,
                                             GenAppTableName, Transaction, Parameters.ToArray());
            });

            AMainDS.Merge(MainDS);

            return(true);
        }
예제 #2
0
        public static Boolean LoadLongTermApplications(ref ApplicationTDS AMainDS, long ATargetFieldKey, long APlacementPersonKey)
        {
            Boolean NewTransaction;

            string QueryLongTermApplication = "";

            List <OdbcParameter> Parameters = new List <OdbcParameter>();
            OdbcParameter        Parameter1 = new OdbcParameter(
                "targetfieldkey", OdbcType.BigInt, PmGeneralApplicationTable.GetGenAppPossSrvUnitKeyLength());
            OdbcParameter Parameter2 = new OdbcParameter(
                "Placementpersonkey", OdbcType.BigInt, PmGeneralApplicationTable.GetPlacementPartnerKeyLength());

            TDBTransaction ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(
                IsolationLevel.ReadCommitted,
                TEnforceIsolationLevel.eilMinimum,
                out NewTransaction);

            try
            {
                QueryLongTermApplication =
                    "SELECT PUB_pm_general_application.*, PUB_pm_year_program_application.*, PUB_p_partner.p_partner_short_name_c " +
                    "FROM PUB_pm_general_application, PUB_pm_year_program_application, PUB_p_partner WHERE ";

                if (ATargetFieldKey != 0)
                {
                    Parameter1.Value = ATargetFieldKey;
                    Parameters.Add(Parameter1);

                    // load all appicants with given Target Field
                    QueryLongTermApplication += "PUB_pm_general_application.pm_gen_app_poss_srv_unit_key_n = ? AND ";
                }

                if (APlacementPersonKey != 0)
                {
                    Parameter2.Value = APlacementPersonKey;
                    Parameters.Add(Parameter2);

                    // load all appicants with given Placement Person
                    QueryLongTermApplication += "PUB_pm_general_application.pm_placement_partner_key_n = ? AND ";
                }

                QueryLongTermApplication += "PUB_pm_year_program_application.p_partner_key_n = PUB_pm_general_application.p_partner_key_n " +
                                            "AND PUB_pm_year_program_application.pm_application_key_i = PUB_pm_general_application.pm_application_key_i "
                                            +
                                            "AND PUB_pm_year_program_application.pm_registration_office_n = PUB_pm_general_application.pm_registration_office_n "
                                            +
                                            "AND PUB_p_partner.p_partner_key_n = PUB_pm_general_application.p_partner_key_n";

                DBAccess.GDBAccessObj.Select(AMainDS,
                                             QueryLongTermApplication,
                                             AMainDS.PmGeneralApplication.TableName, ReadTransaction, Parameters.ToArray());
            }
            finally
            {
                if (NewTransaction)
                {
                    DBAccess.GDBAccessObj.CommitTransaction();
                    TLogging.LogAtLevel(7, "TConferenceDataReaderWebConnector.LoadLongTermApplications: commit own transaction.");
                }
            }

            return(true);
        }