From 0ef767800c567d593b4708ddb276d396c3c829bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Wed, 31 Oct 2018 13:00:40 +0100 Subject: [PATCH] Version 18.11.8 --- swad_ID.c | 13 ++- swad_changelog.h | 3 +- swad_connected.c | 129 ++++++++++++--------- swad_degree.h | 2 + swad_holiday.c | 112 ++++++++++-------- swad_indicator.c | 292 ++++++++++++++++++++++++++--------------------- 6 files changed, 311 insertions(+), 240 deletions(-) diff --git a/swad_ID.c b/swad_ID.c index 42e4f25d6..6f9fec987 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -99,13 +99,14 @@ void ID_GetListIDsFromUsrCod (struct UsrData *UsrDat) if (UsrDat->UsrCod > 0) { /***** Get user's IDs from database *****/ - // First the confirmed (Confirmed == 'Y') + // First the confirmed (Confirmed == 'Y') // Then the unconfirmed (Confirmed == 'N') - DB_BuildQuery ("SELECT UsrID,Confirmed FROM usr_IDs" - " WHERE UsrCod=%ld" - " ORDER BY Confirmed DESC,UsrID", - UsrDat->UsrCod); - if ((NumIDs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get user's IDs"))) + NumIDs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's IDs", + "SELECT UsrID,Confirmed FROM usr_IDs" + " WHERE UsrCod=%ld" + " ORDER BY Confirmed DESC,UsrID", + UsrDat->UsrCod); + if (NumIDs) { /***** Allocate space for the list *****/ ID_ReallocateListIDs (UsrDat,NumIDs); diff --git a/swad_changelog.h b/swad_changelog.h index dabea1867..eb8df0b27 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -355,10 +355,11 @@ En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 18.11.7 (2018-10-31)" +#define Log_PLATFORM_VERSION "SWAD 18.11.8 (2018-10-31)" #define CSS_FILE "swad18.4.css" #define JS_FILE "swad17.17.1.js" /* + Version 18.11.8: Oct 31, 2018 Joining building and performing query into one function. (235810 lines) Version 18.11.7: Oct 31, 2018 Joining building and performing query into one function. (235741 lines) Version 18.11.6: Oct 31, 2018 Joining building and performing query into one function. (235687 lines) Version 18.11.5: Oct 31, 2018 Joining building and performing query into one function. (235619 lines) diff --git a/swad_connected.c b/swad_connected.c index 731bc584c..2fe450bca 100644 --- a/swad_connected.c +++ b/swad_connected.c @@ -699,65 +699,83 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: // Show connected users in the whole platform - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM connected,usr_data" - " WHERE connected.UsrCod=usr_data.UsrCod"); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM connected,usr_data" + " WHERE connected.UsrCod=usr_data.UsrCod"); break; case Sco_SCOPE_CTY: // Show connected users in the current country - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=connected.UsrCod" - " AND connected.UsrCod=usr_data.UsrCod", - Gbl.CurrentCty.Cty.CtyCod); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=connected.UsrCod" + " AND connected.UsrCod=usr_data.UsrCod", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: // Show connected users in the current institution - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM centres,degrees,courses,crs_usr,connected,usr_data" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=connected.UsrCod" - " AND connected.UsrCod=usr_data.UsrCod", - Gbl.CurrentIns.Ins.InsCod); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM centres,degrees,courses,crs_usr,connected,usr_data" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=connected.UsrCod" + " AND connected.UsrCod=usr_data.UsrCod", + Gbl.CurrentIns.Ins.InsCod); break; case Sco_SCOPE_CTR: // Show connected users in the current centre - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM degrees,courses,crs_usr,connected,usr_data" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=connected.UsrCod" - " AND connected.UsrCod=usr_data.UsrCod", - Gbl.CurrentCtr.Ctr.CtrCod); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM degrees,courses,crs_usr,connected,usr_data" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=connected.UsrCod" + " AND connected.UsrCod=usr_data.UsrCod", + Gbl.CurrentCtr.Ctr.CtrCod); break; case Sco_SCOPE_DEG: // Show connected users in the current degree - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM courses,crs_usr,connected,usr_data" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=connected.UsrCod" - " AND connected.UsrCod=usr_data.UsrCod", - Gbl.CurrentDeg.Deg.DegCod); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM courses,crs_usr,connected,usr_data" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=connected.UsrCod" + " AND connected.UsrCod=usr_data.UsrCod", + Gbl.CurrentDeg.Deg.DegCod); break; case Sco_SCOPE_CRS: // Show connected users in the current course - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM crs_usr,connected,usr_data" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=connected.UsrCod" - " AND connected.UsrCod=usr_data.UsrCod", - Gbl.CurrentCrs.Crs.CrsCod); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM crs_usr,connected,usr_data" + " WHERE crs_usr.CrsCod=%ld" + " AND crs_usr.UsrCod=connected.UsrCod" + " AND connected.UsrCod=usr_data.UsrCod", + Gbl.CurrentCrs.Crs.CrsCod); break; default: Lay_WrongScopeExit (); @@ -765,11 +783,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t } break; case Rol_GST: - DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod)," - "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" - " FROM connected,usr_data" - " WHERE connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" - " AND connected.UsrCod=usr_data.UsrCod"); + DB_QuerySELECT (&mysql_res,"can not get number" + " of connected users" + " who belong to this location", + "SELECT COUNT(DISTINCT connected.UsrCod)," + "COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)" + " FROM connected,usr_data" + " WHERE connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)" + " AND connected.UsrCod=usr_data.UsrCod"); break; case Rol_STD: case Rol_NET: diff --git a/swad_degree.h b/swad_degree.h index e2b2272d3..ec9fe1d89 100644 --- a/swad_degree.h +++ b/swad_degree.h @@ -27,6 +27,8 @@ /********************************* Headers ***********************************/ /*****************************************************************************/ +#include // To access MySQL databases + #include "swad_action.h" #include "swad_constant.h" #include "swad_hierarchy.h" diff --git a/swad_holiday.c b/swad_holiday.c index 0ca53a814..f0a5897a2 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -269,30 +269,39 @@ void Hld_GetListHolidays (void) sprintf (OrderBySubQuery,"StartDate,Place"); break; } - DB_BuildQuery ("(SELECT holidays.HldCod,holidays.PlcCod," - "places.FullName as Place,HldTyp," - "DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate," - "DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate," - "holidays.Name" - " FROM holidays,places" - " WHERE holidays.InsCod=%ld" - " AND holidays.PlcCod=places.PlcCod" - " AND places.InsCod=%ld)" - " UNION " - "(SELECT HldCod,PlcCod,'' as Place,HldTyp," - "DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate," - "DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate,Name" - " FROM holidays" - " WHERE InsCod=%ld" - " AND PlcCod NOT IN" - "(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))" - " ORDER BY %s", - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentIns.Ins.InsCod, - OrderBySubQuery); - if ((Gbl.Hlds.Num = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get holidays"))) // Holidays found... + Gbl.Hlds.Num = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get holidays", + "(SELECT holidays.HldCod," + "holidays.PlcCod," + "places.FullName as Place," + "holidays.HldTyp," + "DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate," + "DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate," + "holidays.Name" + " FROM holidays,places" + " WHERE holidays.InsCod=%ld" + " AND holidays.PlcCod=places.PlcCod" + " AND places.InsCod=%ld)" + " UNION " + "(SELECT HldCod," + "PlcCod," + "'' as Place," + "HldTyp," + "DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate," + "DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate," + "Name" + " FROM holidays" + " WHERE InsCod=%ld" + " AND PlcCod NOT IN" + "(SELECT DISTINCT PlcCod FROM places" + " WHERE InsCod=%ld))" + " ORDER BY %s", + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.InsCod, + OrderBySubQuery); + if (Gbl.Hlds.Num) // Holidays found... { /***** Create list of holidays *****/ if ((Gbl.Hlds.Lst = (struct Holiday *) calloc ((size_t) Gbl.Hlds.Num,sizeof (struct Holiday))) == NULL) @@ -375,30 +384,37 @@ static void Hld_GetDataOfHolidayByCod (struct Holiday *Hld) Lay_ShowErrorAndExit ("Wrong code of holiday."); /***** Get data of holiday from database *****/ - DB_BuildQuery ("(SELECT holidays.PlcCod,places.FullName as Place,HldTyp," - "DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d')," - "DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d'),holidays.Name" - " FROM holidays,places" - " WHERE holidays.HldCod=%ld" - " AND holidays.InsCod=%ld" - " AND holidays.PlcCod=places.PlcCod" - " AND places.InsCod=%ld)" - " UNION " - "(SELECT PlcCod,'' as Place,HldTyp," - "DATE_FORMAT(StartDate,'%%Y%%m%%d')," - "DATE_FORMAT(EndDate,'%%Y%%m%%d'),Name" - " FROM holidays" - " WHERE HldCod=%ld" - " AND InsCod=%ld" - " AND PlcCod NOT IN" - "(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))", - Hld->HldCod, - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentIns.Ins.InsCod, - Hld->HldCod, - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentIns.Ins.InsCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get data of a holiday")) // Holiday found... + if (DB_QuerySELECT (&mysql_res,"can not get data of a holiday", + "(SELECT holidays.PlcCod," + "places.FullName as Place," + "holidays.HldTyp," + "DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d')," + "DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d')," + "holidays.Name" + " FROM holidays,places" + " WHERE holidays.HldCod=%ld" + " AND holidays.InsCod=%ld" + " AND holidays.PlcCod=places.PlcCod" + " AND places.InsCod=%ld)" + " UNION " + "(SELECT PlcCod," + "'' as Place," + "HldTyp," + "DATE_FORMAT(StartDate,'%%Y%%m%%d')," + "DATE_FORMAT(EndDate,'%%Y%%m%%d')," + "Name" + " FROM holidays" + " WHERE HldCod=%ld" + " AND InsCod=%ld" + " AND PlcCod NOT IN" + "(SELECT DISTINCT PlcCod FROM places" + " WHERE InsCod=%ld))", + Hld->HldCod, + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.InsCod, + Hld->HldCod, + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.InsCod)) // Holiday found... { /* Get row */ row = mysql_fetch_row (mysql_res); diff --git a/swad_indicator.c b/swad_indicator.c index 1815821b2..0d04133b8 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -327,176 +327,206 @@ static void Ind_GetParamNumIndicators (void) static unsigned Ind_GetTableOfCourses (MYSQL_RES **mysql_res) { + unsigned NumCrss = 0; // Initialized to avoid warning + switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: if (Gbl.Stat.DptCod >= 0) // 0 means another department { if (Gbl.Stat.DegTypCod > 0) - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses,crs_usr,usr_data" - " WHERE degrees.DegTypCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.Stat.DegTypCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses,crs_usr,usr_data" + " WHERE degrees.DegTypCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.Stat.DegTypCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses,crs_usr,usr_data" - " WHERE degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses,crs_usr,usr_data" + " WHERE degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); } else { if (Gbl.Stat.DegTypCod > 0) - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses" - " WHERE degrees.DegTypCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.Stat.DegTypCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses" + " WHERE degrees.DegTypCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.Stat.DegTypCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses" - " WHERE degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName"); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses" + " WHERE degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName"); } break; case Sco_SCOPE_CTY: if (Gbl.Stat.DptCod >= 0) // 0 means another department - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM institutions,centres,degrees,courses,crs_usr,usr_data" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCty.Cty.CtyCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM institutions,centres,degrees,courses,crs_usr,usr_data" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM institutions,centres,degrees,courses" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCty.Cty.CtyCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM institutions,centres,degrees,courses" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: if (Gbl.Stat.DptCod >= 0) // 0 means another department - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM centres,degrees,courses,crs_usr,usr_data" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentIns.Ins.InsCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM centres,degrees,courses,crs_usr,usr_data" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentIns.Ins.InsCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM centres,degrees,courses" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentIns.Ins.InsCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM centres,degrees,courses" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentIns.Ins.InsCod); break; case Sco_SCOPE_CTR: if (Gbl.Stat.DptCod >= 0) // 0 means another department - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses,crs_usr,usr_data" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCtr.Ctr.CtrCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses,crs_usr,usr_data" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCtr.Ctr.CtrCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCtr.Ctr.CtrCod); break; case Sco_SCOPE_DEG: if (Gbl.Stat.DptCod >= 0) // 0 means another department - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses,crs_usr,usr_data" - " WHERE degrees.DegCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentDeg.Deg.DegCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses,crs_usr,usr_data" + " WHERE degrees.DegCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses" - " WHERE degrees.DegCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentDeg.Deg.DegCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses" + " WHERE degrees.DegCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentDeg.Deg.DegCod); break; case Sco_SCOPE_CRS: if (Gbl.Stat.DptCod >= 0) // 0 means another department - DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses,crs_usr,usr_data" - " WHERE courses.CrsCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.CrsCod=%ld" - " AND crs_usr.Role=%u" - " AND crs_usr.UsrCod=usr_data.UsrCod" - " AND usr_data.DptCod=%ld" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCrs.Crs.CrsCod, - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Rol_TCH, - Gbl.Stat.DptCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses,crs_usr,usr_data" + " WHERE courses.CrsCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.CrsCod=%ld" + " AND crs_usr.Role=%u" + " AND crs_usr.UsrCod=usr_data.UsrCod" + " AND usr_data.DptCod=%ld" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Rol_TCH, + Gbl.Stat.DptCod); else - DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" - " FROM degrees,courses" - " WHERE courses.CrsCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " ORDER BY degrees.FullName,courses.FullName", - Gbl.CurrentCrs.Crs.CrsCod); + NumCrss = + (unsigned) DB_QuerySELECT (mysql_res,"can not get courses", + "SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod" + " FROM degrees,courses" + " WHERE courses.CrsCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " ORDER BY degrees.FullName,courses.FullName", + Gbl.CurrentCrs.Crs.CrsCod); break; default: Lay_WrongScopeExit (); break; } - return (unsigned) DB_QuerySELECT_new (mysql_res,"can not get courses"); + return NumCrss; } /*****************************************************************************/