diff --git a/swad_RSS.c b/swad_RSS.c index 2c665a5eb..b4a43a985 100644 --- a/swad_RSS.c +++ b/swad_RSS.c @@ -160,12 +160,12 @@ static void RSS_WriteNotices (FILE *FileRSS,struct Course *Crs) char Content[Cns_MAX_BYTES_TEXT + 1]; /***** Get active notices in course *****/ - DB_BuildQuery ("SELECT NotCod,UNIX_TIMESTAMP(CreatTime) AS T,UsrCod,Content" - " FROM notices" - " WHERE CrsCod=%ld AND Status=%u" - " ORDER BY T DESC", - Crs->CrsCod,(unsigned) Not_ACTIVE_NOTICE); - NumNotices = DB_QuerySELECT_new (&mysql_res,"can not get notices from database"); + NumNotices = DB_QuerySELECT (&mysql_res,"can not get notices from database", + "SELECT NotCod,UNIX_TIMESTAMP(CreatTime) AS T,UsrCod,Content" + " FROM notices" + " WHERE CrsCod=%ld AND Status=%u" + " ORDER BY T DESC", + Crs->CrsCod,(unsigned) Not_ACTIVE_NOTICE); /***** Write items with notices *****/ if (NumNotices) @@ -257,14 +257,14 @@ static void RSS_WriteExamAnnouncements (FILE *FileRSS,struct Course *Crs) if (Gbl.DB.DatabaseIsOpen) { /***** Get exam announcements (only future exams) in current course from database *****/ - DB_BuildQuery ("SELECT ExaCod,UNIX_TIMESTAMP(CallDate) AS T," - "DATE_FORMAT(ExamDate,'%%d/%%m/%%Y %%H:%%i')" - " FROM exam_announcements" - " WHERE CrsCod=%ld AND Status=%u AND ExamDate>=NOW()" - " ORDER BY T", - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Exa_VISIBLE_EXAM_ANNOUNCEMENT); - NumExamAnnouncements = DB_QuerySELECT_new (&mysql_res,"can not get exam announcements"); + NumExamAnnouncements = DB_QuerySELECT (&mysql_res,"can not get exam announcements", + "SELECT ExaCod,UNIX_TIMESTAMP(CallDate) AS T," + "DATE_FORMAT(ExamDate,'%%d/%%m/%%Y %%H:%%i')" + " FROM exam_announcements" + " WHERE CrsCod=%ld AND Status=%u AND ExamDate>=NOW()" + " ORDER BY T", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Exa_VISIBLE_EXAM_ANNOUNCEMENT); /***** Write items with notices *****/ if (NumExamAnnouncements) diff --git a/swad_changelog.h b/swad_changelog.h index 189e7258e..b32b6f4ce 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.13 (2018-11-01)" +#define Log_PLATFORM_VERSION "SWAD 18.11.14 (2018-11-01)" #define CSS_FILE "swad18.4.css" #define JS_FILE "swad17.17.1.js" /* + Version 18.11.14: Nov 01, 2018 Joining building and performing query into one function. (236211 lines) Version 18.11.13: Nov 01, 2018 Joining building and performing query into one function. (236011 lines) Version 18.11.12: Nov 01, 2018 Joining building and performing query into one function. (235965 lines) Version 18.11.11: Nov 01, 2018 Joining building and performing query into one function. (235896 lines) diff --git a/swad_role.c b/swad_role.c index db3f4d55d..0d4c7e830 100644 --- a/swad_role.c +++ b/swad_role.c @@ -353,10 +353,10 @@ Rol_Role_t Rol_GetRoleUsrInCrs (long UsrCod,long CrsCod) Gbl.Cache.RoleUsrInCrs.UsrCod = UsrCod; Gbl.Cache.RoleUsrInCrs.CrsCod = CrsCod; Gbl.Cache.RoleUsrInCrs.Role = Rol_UNK; - DB_BuildQuery ("SELECT Role FROM crs_usr" - " WHERE CrsCod=%ld AND UsrCod=%ld", - CrsCod,UsrCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get the role of a user in a course") == 1) // User belongs to the course + if (DB_QuerySELECT (&mysql_res,"can not get the role of a user in a course", + "SELECT Role FROM crs_usr" + " WHERE CrsCod=%ld AND UsrCod=%ld", + CrsCod,UsrCod) == 1) // User belongs to the course { row = mysql_fetch_row (mysql_res); Gbl.Cache.RoleUsrInCrs.Role = Rol_ConvertUnsignedStrToRole (row[0]); @@ -383,11 +383,12 @@ void Rol_GetRolesInAllCrssIfNotYetGot (struct UsrData *UsrDat) if (UsrDat->Roles.InCrss < 0) // Not yet filled { /***** Get distinct roles in all courses of the user from database *****/ - DB_BuildQuery ("SELECT DISTINCT(Role) FROM crs_usr WHERE UsrCod=%ld", - UsrDat->UsrCod); - NumRoles = (unsigned) DB_QuerySELECT_new (&mysql_res, - "can not get the roles of a user" - " in all his/her courses"); + NumRoles = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get the roles of a user" + " in all his/her courses", + "SELECT DISTINCT(Role) FROM crs_usr" + " WHERE UsrCod=%ld", + UsrDat->UsrCod); for (NumRole = 0, UsrDat->Roles.InCrss = 0; NumRole < NumRoles; NumRole++) @@ -588,10 +589,10 @@ Rol_Role_t Rol_GetRequestedRole (long UsrCod) Rol_Role_t Role = Rol_UNK; /***** Get requested role from database *****/ - DB_BuildQuery ("SELECT Role FROM crs_usr_requests" - " WHERE CrsCod=%ld AND UsrCod=%ld", - Gbl.CurrentCrs.Crs.CrsCod,UsrCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get requested role")) + if (DB_QuerySELECT (&mysql_res,"can not get requested role", + "SELECT Role FROM crs_usr_requests" + " WHERE CrsCod=%ld AND UsrCod=%ld", + Gbl.CurrentCrs.Crs.CrsCod,UsrCod)) { /***** Get role *****/ row = mysql_fetch_row (mysql_res); diff --git a/swad_session.c b/swad_session.c index ed1224fcc..83716dd24 100644 --- a/swad_session.c +++ b/swad_session.c @@ -257,15 +257,21 @@ bool Ses_GetSessionData (void) unsigned UnsignedNum; bool Result = false; - /***** Query data of session from database *****/ - DB_BuildQuery ("SELECT UsrCod,Password,Role," - "CtyCod,InsCod,CtrCod,DegCod,CrsCod," - "WhatToSearch,SearchStr" - " FROM sessions WHERE SessionId='%s'", - Gbl.Session.Id); - /***** Check if the session existed in the database *****/ - if (DB_QuerySELECT_new (&mysql_res,"can not get data of session")) + if (DB_QuerySELECT (&mysql_res,"can not get data of session", + "SELECT UsrCod," // row[0] + "Password," // row[1] + "Role," // row[2] + "CtyCod," // row[3] + "InsCod," // row[4] + "CtrCod," // row[5] + "DegCod," // row[6] + "CrsCod," // row[7] + "WhatToSearch," // row[8] + "SearchStr" // row[9] + " FROM sessions" + " WHERE SessionId='%s'", + Gbl.Session.Id)) { row = mysql_fetch_row (mysql_res); @@ -414,10 +420,15 @@ unsigned Ses_GetHiddenParFromDB (Act_Action_t NextAction, if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB { /***** Get a hidden parameter from database *****/ - DB_BuildQuery ("SELECT ParamValue FROM hidden_params" - " WHERE SessionId='%s' AND Action=%ld AND ParamName='%s'", - Gbl.Session.Id,Act_GetActCod (NextAction),ParamName); - NumRows = DB_QuerySELECT_new (&mysql_res,"can not get a hidden parameter"); + NumRows = DB_QuerySELECT (&mysql_res,"can not get a hidden parameter", + "SELECT ParamValue" + " FROM hidden_params" + " WHERE SessionId='%s'" + " AND Action=%ld" + " AND ParamName='%s'", + Gbl.Session.Id, + Act_GetActCod (NextAction), + ParamName); /***** Check if the parameter is found in database *****/ if (NumRows) diff --git a/swad_social.c b/swad_social.c index c5f2b8422..fe14c6813 100644 --- a/swad_social.c +++ b/swad_social.c @@ -251,7 +251,8 @@ static unsigned Soc_GetNumTimesACommHasBeenFav (struct SocialComment *SocCom); static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot); static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *SocNot); static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment *SocCom); -static void Soc_ShowSharersOrFavers (unsigned NumUsrs); +static void Soc_ShowSharersOrFavers (MYSQL_RES **mysql_res, + unsigned NumUsrs,unsigned NumFirstUsrs); static void Soc_GetDataOfSocialNotByCod (struct SocialNote *SocNot); static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom); @@ -517,6 +518,7 @@ static void Soc_BuildQueryToGetTimeline (char **Query, } RangePubsToGet; MYSQL_RES *mysql_res; MYSQL_ROW row; + unsigned NumPubs; unsigned NumPub; long PubCod; long NotCod; @@ -726,35 +728,42 @@ static void Soc_BuildQueryToGetTimeline (char **Query, switch (TimelineUsrOrGbl) { case Soc_TIMELINE_USR: // Show the timeline of a user - DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs" - " WHERE %s%s%s%s" - " ORDER BY PubCod DESC LIMIT 1", - SubQueryRangeBottom,SubQueryRangeTop, - SubQueryPublishers, - SubQueryAlreadyExists); + NumPubs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing", + "SELECT PubCod,NotCod FROM social_pubs" + " WHERE %s%s%s%s" + " ORDER BY PubCod DESC LIMIT 1", + SubQueryRangeBottom,SubQueryRangeTop, + SubQueryPublishers, + SubQueryAlreadyExists); break; case Soc_TIMELINE_GBL: // Show the global timeline switch (Gbl.Social.WhichUsrs) { case Soc_FOLLOWED: // Show the timeline of the users I follow - DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs,publishers" - " WHERE %s%s%s%s" - " ORDER BY social_pubs.PubCod DESC LIMIT 1", - SubQueryRangeBottom,SubQueryRangeTop, - SubQueryPublishers, - SubQueryAlreadyExists); + NumPubs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing", + "SELECT PubCod,NotCod FROM social_pubs,publishers" + " WHERE %s%s%s%s" + " ORDER BY social_pubs.PubCod DESC LIMIT 1", + SubQueryRangeBottom,SubQueryRangeTop, + SubQueryPublishers, + SubQueryAlreadyExists); break; case Soc_ALL_USRS: // Show the timeline of all users - DB_BuildQuery ("SELECT PubCod,NotCod FROM social_pubs" - " WHERE %s%s%s" - " ORDER BY PubCod DESC LIMIT 1", - SubQueryRangeBottom,SubQueryRangeTop, - SubQueryAlreadyExists); + NumPubs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get publishing", + "SELECT PubCod,NotCod FROM social_pubs" + " WHERE %s%s%s" + " ORDER BY PubCod DESC LIMIT 1", + SubQueryRangeBottom,SubQueryRangeTop, + SubQueryAlreadyExists); break; } break; } - if (DB_QuerySELECT_new (&mysql_res,"can not get publishing") == 1) + + if (NumPubs == 1) { /* Get code of social publishing */ row = mysql_fetch_row (mysql_res); @@ -813,9 +822,9 @@ static long Soc_GetPubCodFromSession (const char *FieldName) long PubCod; /***** Get last publishing code from database *****/ - DB_BuildQuery ("SELECT %s FROM sessions WHERE SessionId='%s'", - FieldName,Gbl.Session.Id); - if (DB_QuerySELECT_new (&mysql_res,"can not get publishing code from session") != 1) + if (DB_QuerySELECT (&mysql_res,"can not get publishing code from session", + "SELECT %s FROM sessions WHERE SessionId='%s'", + FieldName,Gbl.Session.Id) != 1) Lay_ShowErrorAndExit ("Error when getting publishing code from session."); /***** Get last publishing code *****/ @@ -1644,10 +1653,11 @@ static void Soc_GetAndWriteSocialPost (long PstCod) Img_ImageConstructor (&Image); /***** Get social post from database *****/ - DB_BuildQuery ("SELECT Content,ImageName,ImageTitle,ImageURL" - " FROM social_posts WHERE PstCod=%ld", - PstCod); - NumRows = DB_QuerySELECT_new (&mysql_res,"can not get the content of a social post"); + NumRows = DB_QuerySELECT (&mysql_res,"can not get the content" + " of a social post", + "SELECT Content,ImageName,ImageTitle,ImageURL" + " FROM social_posts WHERE PstCod=%ld", + PstCod); /***** Result should have a unique row *****/ if (NumRows == 1) @@ -2428,20 +2438,22 @@ static void Soc_WriteCommentsInSocialNote (const struct SocialNote *SocNot) struct SocialComment SocCom; /***** Get comments of this social note from database *****/ - DB_BuildQuery ("SELECT social_pubs.PubCod,social_pubs.PublisherCod," - "social_pubs.NotCod," - "UNIX_TIMESTAMP(social_pubs.TimePublish)," - "social_comments.Content," - "social_comments.ImageName," - "social_comments.ImageTitle," - "social_comments.ImageURL" - " FROM social_pubs,social_comments" - " WHERE social_pubs.NotCod=%ld" - " AND social_pubs.PubType=%u" - " AND social_pubs.PubCod=social_comments.PubCod" - " ORDER BY social_pubs.PubCod", - SocNot->NotCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE); - NumComments = DB_QuerySELECT_new (&mysql_res,"can not get social comments"); + NumComments = DB_QuerySELECT (&mysql_res,"can not get social comments", + "SELECT social_pubs.PubCod," // row[0] + "social_pubs.PublisherCod," // row[1] + "social_pubs.NotCod," // row[2] + "UNIX_TIMESTAMP(" + "social_pubs.TimePublish)," // row[3] + "social_comments.Content," // row[4] + "social_comments.ImageName," // row[5] + "social_comments.ImageTitle," // row[6] + "social_comments.ImageURL" // row[7] + " FROM social_pubs,social_comments" + " WHERE social_pubs.NotCod=%ld" + " AND social_pubs.PubType=%u" + " AND social_pubs.PubCod=social_comments.PubCod" + " ORDER BY social_pubs.PubCod", + SocNot->NotCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE); /***** List comments *****/ if (NumComments) // Comments to this social note found @@ -3732,9 +3744,9 @@ static void Soc_RemoveImgFileFromSocialPost (long PstCod) MYSQL_ROW row; /***** Get name of image associated to a social post from database *****/ - DB_BuildQuery ("SELECT ImageName FROM social_posts WHERE PstCod=%ld", - PstCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get image")) + if (DB_QuerySELECT (&mysql_res,"can not get image", + "SELECT ImageName FROM social_posts WHERE PstCod=%ld", + PstCod)) { /***** Get image name (row[0]) *****/ row = mysql_fetch_row (mysql_res); @@ -3772,10 +3784,11 @@ static void Soc_RemoveASocialNoteFromDB (struct SocialNote *SocNot) } /* Get comments of this social note */ - DB_BuildQuery ("SELECT PubCod FROM social_pubs" - " WHERE NotCod=%ld AND PubType=%u", - SocNot->NotCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE); - NumComments = DB_QuerySELECT_new (&mysql_res,"can not get social comments"); + NumComments = DB_QuerySELECT (&mysql_res,"can not get social comments", + "SELECT PubCod FROM social_pubs" + " WHERE NotCod=%ld AND PubType=%u", + SocNot->NotCod, + (unsigned) Soc_PUB_COMMENT_TO_NOTE); /* For each comment... */ for (NumCom = 0; @@ -3857,9 +3870,9 @@ static long Soc_GetNotCodOfSocialPublishing (long PubCod) long NotCod = -1L; /***** Get code of social note from database *****/ - DB_BuildQuery ("SELECT NotCod FROM social_pubs WHERE PubCod=%ld", - PubCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get code of social note") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get code of social note", + "SELECT NotCod FROM social_pubs WHERE PubCod=%ld", + PubCod) == 1) // Result should have a unique row { /* Get code of social note */ row = mysql_fetch_row (mysql_res); @@ -3883,10 +3896,10 @@ static long Soc_GetPubCodOfOriginalSocialNote (long NotCod) long OriginalPubCod = -1L; /***** Get code of social publishing of the original note *****/ - DB_BuildQuery ("SELECT PubCod FROM social_pubs" - " WHERE NotCod=%ld AND PubType=%u", - NotCod,(unsigned) Soc_PUB_ORIGINAL_NOTE); - if (DB_QuerySELECT_new (&mysql_res,"can not get code of social publishing") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get code of social publishing", + "SELECT PubCod FROM social_pubs" + " WHERE NotCod=%ld AND PubType=%u", + NotCod,(unsigned) Soc_PUB_ORIGINAL_NOTE) == 1) // Result should have a unique row { /* Get code of social publishing (row[0]) */ row = mysql_fetch_row (mysql_res); @@ -4074,9 +4087,10 @@ static void Soc_RemoveImgFileFromSocialComment (long PubCod) MYSQL_ROW row; /***** Get name of image associated to a social post from database *****/ - DB_BuildQuery ("SELECT ImageName FROM social_comments WHERE PubCod=%ld", - PubCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get image")) + if (DB_QuerySELECT (&mysql_res,"can not get image", + "SELECT ImageName FROM social_comments" + " WHERE PubCod=%ld", + PubCod)) { /***** Get image name (row[0]) *****/ row = mysql_fetch_row (mysql_res); @@ -4313,18 +4327,29 @@ static unsigned Soc_GetNumTimesACommHasBeenFav (struct SocialComment *SocCom) static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot) { + MYSQL_RES *mysql_res; + unsigned NumFirstUsrs = 0; + /***** Get users who have shared this note *****/ if (SocNot->NumShared) - DB_BuildQuery ("SELECT PublisherCod FROM social_pubs" - " WHERE NotCod=%ld" - " AND PublisherCod<>%ld" - " AND PubType=%u" - " ORDER BY PubCod LIMIT %u", - SocNot->NotCod, - SocNot->UsrCod, - (unsigned) Soc_PUB_SHARED_NOTE, - Soc_MAX_SHARERS_FAVERS_SHOWN); - Soc_ShowSharersOrFavers (SocNot->NumShared); + NumFirstUsrs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get users", + "SELECT PublisherCod FROM social_pubs" + " WHERE NotCod=%ld" + " AND PublisherCod<>%ld" + " AND PubType=%u" + " ORDER BY PubCod LIMIT %u", + SocNot->NotCod, + SocNot->UsrCod, + (unsigned) Soc_PUB_SHARED_NOTE, + Soc_MAX_SHARERS_FAVERS_SHOWN); + + /***** Show users *****/ + Soc_ShowSharersOrFavers (&mysql_res,SocNot->NumShared,NumFirstUsrs); + + /***** Free structure that stores the query result *****/ + if (SocNot->NumShared) + DB_FreeMySQLResult (&mysql_res); } /*****************************************************************************/ @@ -4333,16 +4358,28 @@ static void Soc_ShowUsrsWhoHaveSharedSocialNote (const struct SocialNote *SocNot static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *SocNot) { + MYSQL_RES *mysql_res; + unsigned NumFirstUsrs = 0; + /***** Get users who have marked this note as favourite *****/ if (SocNot->NumFavs) - DB_BuildQuery ("SELECT UsrCod FROM social_notes_fav" - " WHERE NotCod=%ld" - " AND UsrCod<>%ld" // Extra check - " ORDER BY FavCod LIMIT %u", - SocNot->NotCod, - SocNot->UsrCod, - Soc_MAX_SHARERS_FAVERS_SHOWN); - Soc_ShowSharersOrFavers (SocNot->NumFavs); + /***** Get list of users from database *****/ + NumFirstUsrs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get users", + "SELECT UsrCod FROM social_notes_fav" + " WHERE NotCod=%ld" + " AND UsrCod<>%ld" // Extra check + " ORDER BY FavCod LIMIT %u", + SocNot->NotCod, + SocNot->UsrCod, + Soc_MAX_SHARERS_FAVERS_SHOWN); + + /***** Show users *****/ + Soc_ShowSharersOrFavers (&mysql_res,SocNot->NumFavs,NumFirstUsrs); + + /***** Free structure that stores the query result *****/ + if (SocNot->NumFavs) + DB_FreeMySQLResult (&mysql_res); } /*****************************************************************************/ @@ -4351,16 +4388,28 @@ static void Soc_ShowUsrsWhoHaveMarkedSocialNoteAsFav (const struct SocialNote *S static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment *SocCom) { + MYSQL_RES *mysql_res; + unsigned NumFirstUsrs = 0; + /***** Get users who have marked this comment as favourite *****/ if (SocCom->NumFavs) - DB_BuildQuery ("SELECT UsrCod FROM social_comments_fav" - " WHERE PubCod=%ld" - " AND UsrCod<>%ld" // Extra check - " ORDER BY FavCod LIMIT %u", - SocCom->PubCod, - SocCom->UsrCod, - Soc_MAX_SHARERS_FAVERS_SHOWN); - Soc_ShowSharersOrFavers (SocCom->NumFavs); + /***** Get list of users from database *****/ + NumFirstUsrs = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get users", + "SELECT UsrCod FROM social_comments_fav" + " WHERE PubCod=%ld" + " AND UsrCod<>%ld" // Extra check + " ORDER BY FavCod LIMIT %u", + SocCom->PubCod, + SocCom->UsrCod, + Soc_MAX_SHARERS_FAVERS_SHOWN); + + /***** Show users *****/ + Soc_ShowSharersOrFavers (&mysql_res,SocCom->NumFavs,NumFirstUsrs); + + /***** Free structure that stores the query result *****/ + if (SocCom->NumFavs) + DB_FreeMySQLResult (&mysql_res); } /*****************************************************************************/ @@ -4368,11 +4417,10 @@ static void Soc_ShowUsrsWhoHaveMarkedSocialCommAsFav (const struct SocialComment /*****************************************************************************/ // All forms in this function and nested functions must have unique identifiers -static void Soc_ShowSharersOrFavers (unsigned NumUsrs) +static void Soc_ShowSharersOrFavers (MYSQL_RES **mysql_res, + unsigned NumUsrs,unsigned NumFirstUsrs) { - MYSQL_RES *mysql_res; MYSQL_ROW row; - unsigned NumFirstUsrs; unsigned NumUsr; unsigned NumUsrsShown = 0; struct UsrData UsrDat; @@ -4385,8 +4433,7 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs) if (NumUsrs) { - /***** Get list of users from database *****/ - NumFirstUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get users"); + /***** A list of users has been got from database *****/ if (NumFirstUsrs) { /***** Initialize structure with user's data *****/ @@ -4398,7 +4445,7 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs) NumUsr++) { /***** Get user *****/ - row = mysql_fetch_row (mysql_res); + row = mysql_fetch_row (*mysql_res); /* Get user's code (row[0]) */ UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); @@ -4421,9 +4468,6 @@ static void Soc_ShowSharersOrFavers (unsigned NumUsrs) Usr_UsrDataDestructor (&UsrDat); } - /***** Free structure that stores the query result *****/ - DB_FreeMySQLResult (&mysql_res); - if (NumUsrs > NumUsrsShown) fprintf (Gbl.F.Out,"
" "NotCod > 0) { /***** Get data of social note from database *****/ - DB_BuildQuery ("SELECT NotCod,NoteType,Cod,UsrCod,HieCod,Unavailable,UNIX_TIMESTAMP(TimeNote)" - " FROM social_notes" - " WHERE NotCod=%ld", - SocNot->NotCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get data of social note")) + if (DB_QuerySELECT (&mysql_res,"can not get data of social note", + "SELECT NotCod," // row[0] + "NoteType," // row[1] + "Cod," // row[2] + "UsrCod," // row[3] + "HieCod," // row[4] + "Unavailable," // row[5] + "UNIX_TIMESTAMP(TimeNote)" // row[6] + " FROM social_notes" + " WHERE NotCod=%ld", + SocNot->NotCod)) { /***** Get data of social note *****/ row = mysql_fetch_row (mysql_res); @@ -4482,19 +4532,20 @@ static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom) if (SocCom->PubCod > 0) { /***** Get data of social comment from database *****/ - DB_BuildQuery ("SELECT social_pubs.PubCod,social_pubs.PublisherCod," - "social_pubs.NotCod," - "UNIX_TIMESTAMP(social_pubs.TimePublish)," - "social_comments.Content," - "social_comments.ImageName," - "social_comments.ImageTitle," - "social_comments.ImageURL" - " FROM social_pubs,social_comments" - " WHERE social_pubs.PubCod=%ld" - " AND social_pubs.PubType=%u" - " AND social_pubs.PubCod=social_comments.PubCod", - SocCom->PubCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE); - if (DB_QuerySELECT_new (&mysql_res,"can not get data of social comment")) + if (DB_QuerySELECT (&mysql_res,"can not get data of social comment", + "SELECT social_pubs.PubCod," // row[0] + "social_pubs.PublisherCod," // row[1] + "social_pubs.NotCod," // row[2] + "UNIX_TIMESTAMP(social_pubs.TimePublish)," // row[3] + "social_comments.Content," // row[4] + "social_comments.ImageName," // row[5] + "social_comments.ImageTitle," // row[6] + "social_comments.ImageURL" // row[7] + " FROM social_pubs,social_comments" + " WHERE social_pubs.PubCod=%ld" + " AND social_pubs.PubType=%u" + " AND social_pubs.PubCod=social_comments.PubCod", + SocCom->PubCod,(unsigned) Soc_PUB_COMMENT_TO_NOTE)) { /***** Get data of social comment *****/ row = mysql_fetch_row (mysql_res); @@ -4734,10 +4785,14 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], Content[0] = '\0'; /***** Get summary and content from social post from database *****/ - DB_BuildQuery ("SELECT PubCod,NotCod,PublisherCod,PubType,UNIX_TIMESTAMP(TimePublish)" - " FROM social_pubs WHERE PubCod=%ld", - PubCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get data of social publishing") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get data of social publishing", + "SELECT PubCod," // row[0] + "NotCod," // row[1] + "PublisherCod," // row[2] + "PubType," // row[3] + "UNIX_TIMESTAMP(TimePublish)" // row[4] + " FROM social_pubs WHERE PubCod=%ld", + PubCod) == 1) // Result should have a unique row { /* Get data of social publishing */ row = mysql_fetch_row (mysql_res); @@ -4762,10 +4817,11 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], { /***** Get content of social post from database *****/ // TODO: What happens if content is empty and an image is attached? - DB_BuildQuery ("SELECT Content FROM social_posts" - " WHERE PstCod=%ld", - SocNot.Cod); - if (DB_QuerySELECT_new (&mysql_res,"can not get the content of a social post") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get the content" + " of a social post", + "SELECT Content FROM social_posts" + " WHERE PstCod=%ld", + SocNot.Cod) == 1) // Result should have a unique row { /***** Get row *****/ row = mysql_fetch_row (mysql_res); @@ -4801,10 +4857,11 @@ void Soc_GetNotifSocialPublishing (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], case Soc_PUB_COMMENT_TO_NOTE: /***** Get content of social post from database *****/ // TODO: What happens if content is empty and an image is attached? - DB_BuildQuery ("SELECT Content FROM social_comments" - " WHERE PubCod=%ld", - SocPub.PubCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get the content of a comment to a social note") == 1) // Result should have a unique row + if (DB_QuerySELECT (&mysql_res,"can not get the content" + " of a comment to a social note", + "SELECT Content FROM social_comments" + " WHERE PubCod=%ld", + SocPub.PubCod) == 1) // Result should have a unique row { /***** Get row *****/ row = mysql_fetch_row (mysql_res); diff --git a/swad_statistic.c b/swad_statistic.c index 18082d791..f479d41dc 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -206,7 +206,8 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void); static void Sta_GetAndShowInssOrderedByNumCrss (void); static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void); static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void); -static void Sta_GetAndShowInss (const char *TxtFigure); +static void Sta_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss, + const char *TxtFigure); static unsigned Sta_GetInsAndStat (struct Instit *Ins,MYSQL_RES *mysql_res); static void Sta_GetAndShowDegreeTypesStats (void); @@ -1879,8 +1880,9 @@ static void Sta_WriteLogComments (long LogCod) MYSQL_ROW row; /***** Get log comments from database *****/ - DB_BuildQuery ("SELECT Comments FROM log_comments WHERE LogCod=%ld",LogCod); - if (DB_QuerySELECT_new (&mysql_res,"can not get log comments")) + if (DB_QuerySELECT (&mysql_res,"can not get log comments", + "SELECT Comments FROM log_comments WHERE LogCod=%ld", + LogCod)) { /***** Get and write comments *****/ row = mysql_fetch_row (mysql_res); @@ -5155,6 +5157,8 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void) { extern const char *Txt_Institutions_by_number_of_centres; extern const char *Txt_Centres; + MYSQL_RES *mysql_res; + unsigned NumInss = 0; /***** Start box and table *****/ Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_centres,NULL, @@ -5164,36 +5168,47 @@ static void Sta_GetAndShowInssOrderedByNumCtrs (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT InsCod,COUNT(*) AS N" - " FROM centres" - " GROUP BY InsCod" - " ORDER BY N DESC"); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT InsCod,COUNT(*) AS N" + " FROM centres" + " GROUP BY InsCod" + " ORDER BY N DESC"); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM institutions,centres" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentCty.Cty.CtyCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM institutions,centres" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: case Sco_SCOPE_CTR: case Sco_SCOPE_DEG: case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT InsCod,COUNT(*) AS N" - " FROM centres" - " WHERE InsCod=%ld" - " GROUP BY InsCod" - " ORDER BY N DESC", - Gbl.CurrentIns.Ins.InsCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT InsCod,COUNT(*) AS N" + " FROM centres" + " WHERE InsCod=%ld" + " GROUP BY InsCod" + " ORDER BY N DESC", + Gbl.CurrentIns.Ins.InsCod); break; default: Lay_WrongScopeExit (); break; } - Sta_GetAndShowInss (Txt_Centres); + + /***** Show institutions *****/ + Sta_ShowInss (&mysql_res,NumInss,Txt_Centres); + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); /***** End table and box *****/ Box_EndBoxTable (); @@ -5207,6 +5222,8 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void) { extern const char *Txt_Institutions_by_number_of_degrees; extern const char *Txt_Degrees; + MYSQL_RES *mysql_res; + unsigned NumInss = 0; /***** Start box and table *****/ Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_degrees,NULL, @@ -5216,39 +5233,50 @@ static void Sta_GetAndShowInssOrderedByNumDegs (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM centres,degrees" - " WHERE centres.CtrCod=degrees.CtrCod" - " GROUP BY InsCod" - " ORDER BY N DESC"); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM centres,degrees" + " WHERE centres.CtrCod=degrees.CtrCod" + " GROUP BY InsCod" + " ORDER BY N DESC"); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM institutions,centres,degrees" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentCty.Cty.CtyCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM institutions,centres,degrees" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: case Sco_SCOPE_CTR: case Sco_SCOPE_DEG: case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM centres,degrees" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentIns.Ins.InsCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM centres,degrees" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentIns.Ins.InsCod); break; default: Lay_WrongScopeExit (); break; } - Sta_GetAndShowInss (Txt_Degrees); + + /***** Show institutions *****/ + Sta_ShowInss (&mysql_res,NumInss,Txt_Degrees); + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); /***** End table and box *****/ Box_EndBoxTable (); @@ -5262,6 +5290,8 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void) { extern const char *Txt_Institutions_by_number_of_courses; extern const char *Txt_Courses; + MYSQL_RES *mysql_res; + unsigned NumInss = 0; /***** Start box and table *****/ Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_courses,NULL, @@ -5271,42 +5301,53 @@ static void Sta_GetAndShowInssOrderedByNumCrss (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM centres,degrees,courses" - " WHERE centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " GROUP BY InsCod" - " ORDER BY N DESC"); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM centres,degrees,courses" + " WHERE centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " GROUP BY InsCod" + " ORDER BY N DESC"); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM institutions,centres,degrees,courses" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentCty.Cty.CtyCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM institutions,centres,degrees,courses" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: case Sco_SCOPE_CTR: case Sco_SCOPE_DEG: case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(*) AS N" - " FROM centres,degrees,courses" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentIns.Ins.InsCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(*) AS N" + " FROM centres,degrees,courses" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentIns.Ins.InsCod); break; default: Lay_WrongScopeExit (); break; } - Sta_GetAndShowInss (Txt_Courses); + + /***** Show institutions *****/ + Sta_ShowInss (&mysql_res,NumInss,Txt_Courses); + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); /***** End table and box *****/ Box_EndBoxTable (); @@ -5320,6 +5361,8 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void) { extern const char *Txt_Institutions_by_number_of_users_in_courses; extern const char *Txt_Users; + MYSQL_RES *mysql_res; + unsigned NumInss = 0; /***** Start box and table *****/ Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_users_in_courses,NULL, @@ -5329,45 +5372,56 @@ static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM centres,degrees,courses,crs_usr" - " WHERE centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " GROUP BY InsCod" - " ORDER BY N DESC"); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" + " FROM centres,degrees,courses,crs_usr" + " WHERE centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " GROUP BY InsCod" + " ORDER BY N DESC"); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM institutions,centres,degrees,courses,crs_usr" - " 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" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentCty.Cty.CtyCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" + " FROM institutions,centres,degrees,courses,crs_usr" + " 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" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: case Sco_SCOPE_CTR: case Sco_SCOPE_DEG: case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" - " FROM centres,degrees,courses,crs_usr" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " GROUP BY centres.InsCod" - " ORDER BY N DESC", - Gbl.CurrentIns.Ins.InsCod); + NumInss = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get institutions", + "SELECT centres.InsCod,COUNT(DISTINCT crs_usr.UsrCod) AS N" + " FROM centres,degrees,courses,crs_usr" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " GROUP BY centres.InsCod" + " ORDER BY N DESC", + Gbl.CurrentIns.Ins.InsCod); break; default: Lay_WrongScopeExit (); break; } - Sta_GetAndShowInss (Txt_Users); + + /***** Show institutions *****/ + Sta_ShowInss (&mysql_res,NumInss,Txt_Users); + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); /***** End table and box *****/ Box_EndBoxTable (); @@ -5382,6 +5436,8 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void) { extern const char *Txt_Institutions_by_number_of_users_who_claim_to_belong_to_them; extern const char *Txt_Users; + MYSQL_RES *mysql_res; + unsigned NumInss = 0; /***** Start box and table *****/ Box_StartBoxTable ("100%",Txt_Institutions_by_number_of_users_who_claim_to_belong_to_them, @@ -5422,7 +5478,12 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void) Lay_WrongScopeExit (); break; } - Sta_GetAndShowInss (Txt_Users); + + /***** Show institutions *****/ + Sta_ShowInss (&mysql_res,NumInss,Txt_Users); + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); /***** End table and box *****/ Box_EndBoxTable (); @@ -5432,12 +5493,11 @@ static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void) /****************** Get and show stats about institutions ********************/ /*****************************************************************************/ -static void Sta_GetAndShowInss (const char *TxtFigure) +static void Sta_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss, + const char *TxtFigure) { extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *Txt_Institution; - MYSQL_RES *mysql_res; - unsigned NumInss; unsigned NumIns; unsigned NumOrder; unsigned NumberLastRow; @@ -5446,7 +5506,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure) bool TRIsOpen = false; /***** Query database *****/ - if ((NumInss = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get institutions"))) + if (NumInss) { /* Draw the classphoto/list */ switch (Gbl.Usrs.Me.ListType) @@ -5463,7 +5523,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure) } /***** Get institution data and statistic *****/ - NumberThisRow = Sta_GetInsAndStat (&Ins,mysql_res); + NumberThisRow = Sta_GetInsAndStat (&Ins,*mysql_res); /***** Write link to institution *****/ fprintf (Gbl.F.Out,"", @@ -5504,7 +5564,7 @@ static void Sta_GetAndShowInss (const char *TxtFigure) NumIns++) { /***** Get institution data and statistic *****/ - NumberThisRow = Sta_GetInsAndStat (&Ins,mysql_res); + NumberThisRow = Sta_GetInsAndStat (&Ins,*mysql_res); /***** Number of order *****/ if (NumberThisRow != NumberLastRow) @@ -5548,9 +5608,6 @@ static void Sta_GetAndShowInss (const char *TxtFigure) break; } } - - /* Free structure that stores the query result */ - DB_FreeMySQLResult (&mysql_res); } /*****************************************************************************/ @@ -5890,102 +5947,107 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT Cod AS CrsCod," - "-1 AS GrpCod," - "NumLevels," - "NumFolders," - "NumFiles," - "TotalSize" - " FROM file_browser_size" - " WHERE FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM crs_grp_types,crs_grp,file_browser_size" - " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT Cod AS CrsCod," + "-1 AS GrpCod," + "NumLevels," + "NumFolders," + "NumFiles," + "TotalSize" + " FROM file_browser_size" + " WHERE FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM crs_grp_types,crs_grp,file_browser_size" + " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT Cod)," - "-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM file_browser_size" - " WHERE FileBrowser=%u", - (unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT Cod)," + "-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM file_browser_size" + " WHERE FileBrowser=%u", + (unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM crs_grp_types,crs_grp,file_browser_size" - " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - (unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM crs_grp_types,crs_grp,file_browser_size" + " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + (unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT COUNT(DISTINCT Cod)," - "-1," - "COUNT(DISTINCT ZoneUsrCod)," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM file_browser_size" - " WHERE FileBrowser=%u", - (unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT Cod)," + "-1," + "COUNT(DISTINCT ZoneUsrCod)," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM file_browser_size" + " WHERE FileBrowser=%u", + (unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT ZoneUsrCod)," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM file_browser_size" - " WHERE FileBrowser=%u", - (unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT ZoneUsrCod)," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM file_browser_size" + " WHERE FileBrowser=%u", + (unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -5997,135 +6059,140 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT file_browser_size.Cod AS CrsCod," - "-1 AS GrpCod," // Course zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM institutions,centres,degrees,courses,file_browser_size" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," // Group zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - Gbl.CurrentCty.Cty.CtyCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - Gbl.CurrentCty.Cty.CtyCod, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT file_browser_size.Cod AS CrsCod," + "-1 AS GrpCod," // Course zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM institutions,centres,degrees,courses,file_browser_size" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," // Group zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM institutions,centres,degrees,courses,file_browser_size" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " and file_browser_size.FileBrowser=%u", - Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM institutions,centres,degrees,courses,file_browser_size" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " and file_browser_size.FileBrowser=%u", + Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM institutions,centres,degrees,courses,file_browser_size" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM institutions,centres,degrees,courses,file_browser_size" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM institutions,centres,degrees,courses,crs_usr,file_browser_size" - " 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=file_browser_size.ZoneUsrCod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM institutions,centres,degrees,courses,crs_usr,file_browser_size" + " 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=file_browser_size.ZoneUsrCod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -6137,129 +6204,134 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT file_browser_size.Cod AS CrsCod," - "-1 AS GrpCod," // Course zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM centres,degrees,courses,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," // Group zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - Gbl.CurrentIns.Ins.InsCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - Gbl.CurrentIns.Ins.InsCod, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT file_browser_size.Cod AS CrsCod," + "-1 AS GrpCod," // Course zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM centres,degrees,courses,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," // Group zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + Gbl.CurrentIns.Ins.InsCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + Gbl.CurrentIns.Ins.InsCod, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM centres,degrees,courses,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " and file_browser_size.FileBrowser=%u", - Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM centres,degrees,courses,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " and file_browser_size.FileBrowser=%u", + Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM centres,degrees,courses,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM centres,degrees,courses,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM centres,degrees,courses,crs_usr,file_browser_size" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM centres,degrees,courses,crs_usr,file_browser_size" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -6271,123 +6343,128 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT file_browser_size.Cod AS CrsCod," - "-1 AS GrpCod," // Course zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM degrees,courses,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," // Group zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - Gbl.CurrentCtr.Ctr.CtrCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - Gbl.CurrentCtr.Ctr.CtrCod, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT file_browser_size.Cod AS CrsCod," + "-1 AS GrpCod," // Course zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM degrees,courses,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," // Group zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM degrees,courses,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM degrees,courses,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM degrees,courses,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM degrees,courses,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM degrees,courses,crs_usr,file_browser_size" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM degrees,courses,crs_usr,file_browser_size" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -6399,117 +6476,122 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT file_browser_size.Cod AS CrsCod," - "-1 AS GrpCod," // Course zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM courses,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," // Group zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - Gbl.CurrentDeg.Deg.DegCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - Gbl.CurrentDeg.Deg.DegCod, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT file_browser_size.Cod AS CrsCod," + "-1 AS GrpCod," // Course zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM courses,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," // Group zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM courses,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM courses,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM courses,crs_grp_types,crs_grp,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_grp_types.CrsCod" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM courses,crs_grp_types,crs_grp,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_grp_types.CrsCod" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM courses,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM courses,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM courses,crs_usr,file_browser_size" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM courses,crs_usr,file_browser_size" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -6521,109 +6603,114 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, switch (FileBrowser) { case Brw_UNKNOWN: - DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)," - "COUNT(DISTINCT GrpCod)-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM " - "(" - "SELECT Cod AS CrsCod," - "-1 AS GrpCod," // Course zones - "NumLevels," - "NumFolders," - "NumFiles," - "TotalSize" - " FROM file_browser_size" - " WHERE Cod=%ld" - " AND FileBrowser IN (%u,%u,%u,%u,%u,%u)" - " UNION " - "SELECT crs_grp_types.CrsCod," - "file_browser_size.Cod AS GrpCod," // Group zones - "file_browser_size.NumLevels," - "file_browser_size.NumFolders," - "file_browser_size.NumFiles," - "file_browser_size.TotalSize" - " FROM crs_grp_types,crs_grp,file_browser_size" - " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" - ") AS sizes", - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_TCH_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) Brw_ADMI_ASG_USR, - (unsigned) Brw_ADMI_WRK_USR, - (unsigned) Brw_ADMI_MRK_CRS, - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Brw_ADMI_DOC_GRP, - (unsigned) Brw_ADMI_TCH_GRP, - (unsigned) Brw_ADMI_SHR_GRP, - (unsigned) Brw_ADMI_MRK_GRP); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT CrsCod)," + "COUNT(DISTINCT GrpCod)-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM " + "(" + "SELECT Cod AS CrsCod," + "-1 AS GrpCod," // Course zones + "NumLevels," + "NumFolders," + "NumFiles," + "TotalSize" + " FROM file_browser_size" + " WHERE Cod=%ld" + " AND FileBrowser IN (%u,%u,%u,%u,%u,%u)" + " UNION " + "SELECT crs_grp_types.CrsCod," + "file_browser_size.Cod AS GrpCod," // Group zones + "file_browser_size.NumLevels," + "file_browser_size.NumFolders," + "file_browser_size.NumFiles," + "file_browser_size.TotalSize" + " FROM crs_grp_types,crs_grp,file_browser_size" + " WHERE crs_grp_types.CrsCod=%ld" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser IN (%u,%u,%u,%u)" + ") AS sizes", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_TCH_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) Brw_ADMI_ASG_USR, + (unsigned) Brw_ADMI_WRK_USR, + (unsigned) Brw_ADMI_MRK_CRS, + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Brw_ADMI_DOC_GRP, + (unsigned) Brw_ADMI_TCH_GRP, + (unsigned) Brw_ADMI_SHR_GRP, + (unsigned) Brw_ADMI_MRK_GRP); break; case Brw_ADMI_DOC_CRS: case Brw_ADMI_TCH_CRS: case Brw_ADMI_SHR_CRS: case Brw_ADMI_MRK_CRS: - DB_BuildQuery ("SELECT 1," - "-1," - "-1," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM file_browser_size" - " WHERE Cod=%ld AND FileBrowser=%u", - Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT 1," + "-1," + "-1," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM file_browser_size" + " WHERE Cod=%ld AND FileBrowser=%u", + Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); break; case Brw_ADMI_DOC_GRP: case Brw_ADMI_TCH_GRP: case Brw_ADMI_SHR_GRP: case Brw_ADMI_MRK_GRP: - DB_BuildQuery ("SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," - "COUNT(DISTINCT file_browser_size.Cod)," - "-1," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM crs_grp_types,crs_grp,file_browser_size" - " WHERE crs_grp_types.CrsCod=%ld" - " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" - " AND crs_grp.GrpCod=file_browser_size.Cod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT COUNT(DISTINCT crs_grp_types.CrsCod)," + "COUNT(DISTINCT file_browser_size.Cod)," + "-1," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM crs_grp_types,crs_grp,file_browser_size" + " WHERE crs_grp_types.CrsCod=%ld" + " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod" + " AND crs_grp.GrpCod=file_browser_size.Cod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); break; case Brw_ADMI_ASG_USR: case Brw_ADMI_WRK_USR: - DB_BuildQuery ("SELECT 1," - "-1," - "COUNT(DISTINCT ZoneUsrCod)," - "MAX(NumLevels)," - "SUM(NumFolders)," - "SUM(NumFiles)," - "SUM(TotalSize)" - " FROM file_browser_size" - " WHERE Cod=%ld AND FileBrowser=%u", - Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT 1," + "-1," + "COUNT(DISTINCT ZoneUsrCod)," + "MAX(NumLevels)," + "SUM(NumFolders)," + "SUM(NumFiles)," + "SUM(TotalSize)" + " FROM file_browser_size" + " WHERE Cod=%ld AND FileBrowser=%u", + Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); break; case Brw_ADMI_BRF_USR: - DB_BuildQuery ("SELECT -1," - "-1," - "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," - "MAX(file_browser_size.NumLevels)," - "SUM(file_browser_size.NumFolders)," - "SUM(file_browser_size.NumFiles)," - "SUM(file_browser_size.TotalSize)" - " FROM crs_usr,file_browser_size" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" - " AND file_browser_size.FileBrowser=%u", - Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); + DB_QuerySELECT (&mysql_res,"can not get size of a file browser", + "SELECT -1," + "-1," + "COUNT(DISTINCT file_browser_size.ZoneUsrCod)," + "MAX(file_browser_size.NumLevels)," + "SUM(file_browser_size.NumFolders)," + "SUM(file_browser_size.NumFiles)," + "SUM(file_browser_size.TotalSize)" + " FROM crs_usr,file_browser_size" + " WHERE crs_usr.CrsCod=%ld" + " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod" + " AND file_browser_size.FileBrowser=%u", + Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser); break; default: Lay_ShowErrorAndExit ("Wrong file browser."); @@ -6634,7 +6721,6 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope, Lay_WrongScopeExit (); break; } - DB_QuerySELECT_new (&mysql_res,"can not get size of a file browser"); /* Get row */ row = mysql_fetch_row (mysql_res); @@ -6753,94 +6839,106 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u { MYSQL_RES *mysql_res; MYSQL_ROW row; - unsigned NumRows,NumRow; + unsigned NumRows = 0; // Initialized to avoid warning + unsigned NumRow; unsigned Public; /***** Get the size of a file browser *****/ switch (Scope) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT Public,COUNT(*)" - " FROM files" - " WHERE License=%u" - " GROUP BY Public", - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT Public,COUNT(*)" + " FROM files" + " WHERE License=%u" + " GROUP BY Public", + (unsigned) License); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT files.Public,COUNT(*)" - " FROM institutions,centres,degrees,courses,files" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=files.Cod" - " AND files.FileBrowser IN (%u,%u)" - " AND files.License=%u" - " GROUP BY files.Public", - Gbl.CurrentCty.Cty.CtyCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT files.Public,COUNT(*)" + " FROM institutions,centres,degrees,courses,files" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=files.Cod" + " AND files.FileBrowser IN (%u,%u)" + " AND files.License=%u" + " GROUP BY files.Public", + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) License); break; case Sco_SCOPE_INS: - DB_BuildQuery ("SELECT files.Public,COUNT(*)" - " FROM centres,degrees,courses,files" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=files.Cod" - " AND files.FileBrowser IN (%u,%u)" - " AND files.License=%u" - " GROUP BY files.Public", - Gbl.CurrentIns.Ins.InsCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT files.Public,COUNT(*)" + " FROM centres,degrees,courses,files" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=files.Cod" + " AND files.FileBrowser IN (%u,%u)" + " AND files.License=%u" + " GROUP BY files.Public", + Gbl.CurrentIns.Ins.InsCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) License); break; case Sco_SCOPE_CTR: - DB_BuildQuery ("SELECT files.Public,COUNT(*)" - " FROM degrees,courses,files" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=files.Cod" - " AND files.FileBrowser IN (%u,%u)" - " AND files.License=%u" - " GROUP BY files.Public", - Gbl.CurrentCtr.Ctr.CtrCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT files.Public,COUNT(*)" + " FROM degrees,courses,files" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=files.Cod" + " AND files.FileBrowser IN (%u,%u)" + " AND files.License=%u" + " GROUP BY files.Public", + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) License); break; case Sco_SCOPE_DEG: - DB_BuildQuery ("SELECT files.Public,COUNT(*)" - " FROM courses,files" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=files.Cod" - " AND files.FileBrowser IN (%u,%u)" - " AND files.License=%u" - " GROUP BY files.Public", - Gbl.CurrentDeg.Deg.DegCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT files.Public,COUNT(*)" + " FROM courses,files" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=files.Cod" + " AND files.FileBrowser IN (%u,%u)" + " AND files.License=%u" + " GROUP BY files.Public", + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) License); break; case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT Public,COUNT(*)" - " FROM files" - " WHERE Cod=%ld" - " AND FileBrowser IN (%u,%u)" - " AND License=%u" - " GROUP BY Public", - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Brw_ADMI_DOC_CRS, - (unsigned) Brw_ADMI_SHR_CRS, - (unsigned) License); + NumRows = + (unsigned) DB_QuerySELECT (&mysql_res,"can not get number of OERs", + "SELECT Public,COUNT(*)" + " FROM files" + " WHERE Cod=%ld" + " AND FileBrowser IN (%u,%u)" + " AND License=%u" + " GROUP BY Public", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Brw_ADMI_DOC_CRS, + (unsigned) Brw_ADMI_SHR_CRS, + (unsigned) License); break; default: Lay_WrongScopeExit (); break; } - NumRows = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get number of OERs"); /* Reset values to zero */ NumFiles[0] = NumFiles[1] = 0L; @@ -7241,6 +7339,7 @@ static void Sta_GetAndShowSocialActivityStats (void) MYSQL_ROW row; Soc_NoteType_t NoteType; unsigned long NumSocialNotes; + unsigned long NumRows; unsigned NumUsrs; unsigned NumUsrsTotal; @@ -7287,72 +7386,86 @@ static void Sta_GetAndShowSocialActivityStats (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT COUNT(*),COUNT(DISTINCT UsrCod)" - " FROM social_notes WHERE NoteType=%u", - NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(*)," + "COUNT(DISTINCT UsrCod)" + " FROM social_notes WHERE NoteType=%u", + NoteType); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM institutions,centres,degrees,courses,crs_usr,social_notes" - " 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=social_notes.UsrCod" - " AND social_notes.NoteType=%u", - Gbl.CurrentCty.Cty.CtyCod, - (unsigned) NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM institutions,centres,degrees,courses,crs_usr,social_notes" + " 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=social_notes.UsrCod" + " AND social_notes.NoteType=%u", + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) NoteType); break; case Sco_SCOPE_INS: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM centres,degrees,courses,crs_usr,social_notes" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod" - " AND social_notes.NoteType=%u", - Gbl.CurrentIns.Ins.InsCod, - (unsigned) NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM centres,degrees,courses,crs_usr,social_notes" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType=%u", + Gbl.CurrentIns.Ins.InsCod, + (unsigned) NoteType); break; case Sco_SCOPE_CTR: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM degrees,courses,crs_usr,social_notes" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod" - " AND social_notes.NoteType=%u", - Gbl.CurrentCtr.Ctr.CtrCod, - (unsigned) NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM degrees,courses,crs_usr,social_notes" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType=%u", + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) NoteType); break; case Sco_SCOPE_DEG: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM courses,crs_usr,social_notes" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod" - " AND social_notes.NoteType=%u", - Gbl.CurrentDeg.Deg.DegCod, - (unsigned) NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM courses,crs_usr,social_notes" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType=%u", + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) NoteType); break; case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM crs_usr,social_notes" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=social_notes.UsrCod" - " AND social_notes.NoteType=%u", - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) NoteType); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM crs_usr,social_notes" + " WHERE crs_usr.CrsCod=%ld" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType=%u", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) NoteType); break; default: Lay_WrongScopeExit (); + NumRows = 0; // Initialized to avoid warning break; } NumSocialNotes = 0; NumUsrs = 0; - if (DB_QuerySELECT_new (&mysql_res,"can not get number of social notes")) + + if (NumRows) { /***** Get number of social notes and number of users *****/ row = mysql_fetch_row (mysql_res); @@ -7402,61 +7515,75 @@ static void Sta_GetAndShowSocialActivityStats (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT COUNT(*),COUNT(DISTINCT UsrCod)" - " FROM social_notes"); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(*)," + "COUNT(DISTINCT UsrCod)" + " FROM social_notes"); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM institutions,centres,degrees,courses,crs_usr,social_notes" - " 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=social_notes.UsrCod", - Gbl.CurrentCty.Cty.CtyCod); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM institutions,centres,degrees,courses,crs_usr,social_notes" + " 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=social_notes.UsrCod", + Gbl.CurrentCty.Cty.CtyCod); break; case Sco_SCOPE_INS: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM centres,degrees,courses,crs_usr,social_notes" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod", - Gbl.CurrentIns.Ins.InsCod); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM centres,degrees,courses,crs_usr,social_notes" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentIns.Ins.InsCod); break; case Sco_SCOPE_CTR: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM degrees,courses,crs_usr,social_notes" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod", - Gbl.CurrentCtr.Ctr.CtrCod); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM degrees,courses,crs_usr,social_notes" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentCtr.Ctr.CtrCod); break; case Sco_SCOPE_DEG: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM courses,crs_usr,social_notes" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=social_notes.UsrCod", - Gbl.CurrentDeg.Deg.DegCod); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM courses,crs_usr,social_notes" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentDeg.Deg.DegCod); break; case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" - " FROM crs_usr,social_notes" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=social_notes.UsrCod", - Gbl.CurrentCrs.Crs.CrsCod); + NumRows = DB_QuerySELECT (&mysql_res,"can not get number of social notes", + "SELECT COUNT(DISTINCT social_notes.NotCod)," + "COUNT(DISTINCT social_notes.UsrCod)" + " FROM crs_usr,social_notes" + " WHERE crs_usr.CrsCod=%ld" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentCrs.Crs.CrsCod); break; default: Lay_WrongScopeExit (); + NumRows = 0; // Initialized to avoid warning break; } NumSocialNotes = 0; NumUsrs = 0; - if (DB_QuerySELECT_new (&mysql_res,"can not get number of social notes")) + + if (NumRows) { /* Get number of social notes and number of users */ row = mysql_fetch_row (mysql_res); @@ -7658,88 +7785,99 @@ static void Sta_GetAndShowFollowStats (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(%s) AS N" - " FROM usr_follow" - " GROUP BY %s) AS F", - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(%s) AS N" + " FROM usr_follow" + " GROUP BY %s) AS F", + FieldDB[Fol], + FieldDB[1 - Fol]); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM institutions,centres,degrees,courses,crs_usr,usr_follow" - " 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=usr_follow.%s" - " GROUP BY %s) AS F", - FieldDB[Fol], - Gbl.CurrentCty.Cty.CtyCod, - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" + " FROM institutions,centres,degrees,courses,crs_usr,usr_follow" + " 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=usr_follow.%s" + " GROUP BY %s) AS F", + FieldDB[Fol], + Gbl.CurrentCty.Cty.CtyCod, + FieldDB[Fol], + FieldDB[1 - Fol]); break; case Sco_SCOPE_INS: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM centres,degrees,courses,crs_usr,usr_follow" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", - FieldDB[Fol], - Gbl.CurrentIns.Ins.InsCod, - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" + " FROM centres,degrees,courses,crs_usr,usr_follow" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", + FieldDB[Fol], + Gbl.CurrentIns.Ins.InsCod, + FieldDB[Fol], + FieldDB[1 - Fol]); break; case Sco_SCOPE_CTR: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM degrees,courses,crs_usr,usr_follow" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=courses.DegCod" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", - FieldDB[Fol], - Gbl.CurrentCtr.Ctr.CtrCod, - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" + " FROM degrees,courses,crs_usr,usr_follow" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", + FieldDB[Fol], + Gbl.CurrentCtr.Ctr.CtrCod, + FieldDB[Fol], + FieldDB[1 - Fol]); break; case Sco_SCOPE_DEG: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM courses,crs_usr,usr_follow" - " WHERE courses.DegCod=%ld" - " AND courses.CrsCod=crs_usr.CrsCod" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", - FieldDB[Fol], - Gbl.CurrentDeg.Deg.DegCod, - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" + " FROM courses,crs_usr,usr_follow" + " WHERE courses.DegCod=%ld" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", + FieldDB[Fol], + Gbl.CurrentDeg.Deg.DegCod, + FieldDB[Fol], + FieldDB[1 - Fol]); break; case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT AVG(N) FROM " - "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" - " FROM crs_usr,usr_follow" - " WHERE crs_usr.CrsCod=%ld" - " AND crs_usr.UsrCod=usr_follow.%s" - " GROUP BY %s) AS F", - FieldDB[Fol], - Gbl.CurrentCrs.Crs.CrsCod, - FieldDB[Fol], - FieldDB[1 - Fol]); + DB_QuerySELECT (&mysql_res,"can not get number of questions" + " per survey", + "SELECT AVG(N) FROM " + "(SELECT COUNT(DISTINCT usr_follow.%s) AS N" + " FROM crs_usr,usr_follow" + " WHERE crs_usr.CrsCod=%ld" + " AND crs_usr.UsrCod=usr_follow.%s" + " GROUP BY %s) AS F", + FieldDB[Fol], + Gbl.CurrentCrs.Crs.CrsCod, + FieldDB[Fol], + FieldDB[1 - Fol]); break; default: Lay_WrongScopeExit (); break; } - DB_QuerySELECT_new (&mysql_res,"can not get number of questions per survey"); /***** Get average *****/ row = mysql_fetch_row (mysql_res); @@ -8320,57 +8458,68 @@ static void Sta_GetAndShowNumUsrsPerNotifyEvent (void) switch (Gbl.Scope.Current) { case Sco_SCOPE_SYS: - DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)" - " FROM sta_notif" - " WHERE NotifyEvent=%u", - (unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(NumEvents),SUM(NumMails)" + " FROM sta_notif" + " WHERE NotifyEvent=%u", + (unsigned) NotifyEvent); break; case Sco_SCOPE_CTY: - DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" - " FROM institutions,centres,degrees,sta_notif" - " WHERE institutions.CtyCod=%ld" - " AND institutions.InsCod=centres.InsCod" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=sta_notif.DegCod" - " AND sta_notif.NotifyEvent=%u", - Gbl.CurrentCty.Cty.CtyCod,(unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" + " FROM institutions,centres,degrees,sta_notif" + " WHERE institutions.CtyCod=%ld" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=sta_notif.DegCod" + " AND sta_notif.NotifyEvent=%u", + Gbl.CurrentCty.Cty.CtyCod,(unsigned) NotifyEvent); break; case Sco_SCOPE_INS: - DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" - " FROM centres,degrees,sta_notif" - " WHERE centres.InsCod=%ld" - " AND centres.CtrCod=degrees.CtrCod" - " AND degrees.DegCod=sta_notif.DegCod" - " AND sta_notif.NotifyEvent=%u", - Gbl.CurrentIns.Ins.InsCod,(unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" + " FROM centres,degrees,sta_notif" + " WHERE centres.InsCod=%ld" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=sta_notif.DegCod" + " AND sta_notif.NotifyEvent=%u", + Gbl.CurrentIns.Ins.InsCod,(unsigned) NotifyEvent); break; case Sco_SCOPE_CTR: - DB_BuildQuery ("SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" - " FROM degrees,sta_notif" - " WHERE degrees.CtrCod=%ld" - " AND degrees.DegCod=sta_notif.DegCod" - " AND sta_notif.NotifyEvent=%u", - Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(sta_notif.NumEvents),SUM(sta_notif.NumMails)" + " FROM degrees,sta_notif" + " WHERE degrees.CtrCod=%ld" + " AND degrees.DegCod=sta_notif.DegCod" + " AND sta_notif.NotifyEvent=%u", + Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) NotifyEvent); break; case Sco_SCOPE_DEG: - DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)" - " FROM sta_notif" - " WHERE DegCod=%ld" - " AND NotifyEvent=%u", - Gbl.CurrentDeg.Deg.DegCod,(unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(NumEvents),SUM(NumMails)" + " FROM sta_notif" + " WHERE DegCod=%ld" + " AND NotifyEvent=%u", + Gbl.CurrentDeg.Deg.DegCod,(unsigned) NotifyEvent); break; case Sco_SCOPE_CRS: - DB_BuildQuery ("SELECT SUM(NumEvents),SUM(NumMails)" - " FROM sta_notif" - " WHERE CrsCod=%ld" - " AND NotifyEvent=%u", - Gbl.CurrentCrs.Crs.CrsCod,(unsigned) NotifyEvent); + DB_QuerySELECT (&mysql_res,"can not get the number" + " of notifications by email", + "SELECT SUM(NumEvents),SUM(NumMails)" + " FROM sta_notif" + " WHERE CrsCod=%ld" + " AND NotifyEvent=%u", + Gbl.CurrentCrs.Crs.CrsCod,(unsigned) NotifyEvent); break; default: Lay_WrongScopeExit (); break; } - DB_QuerySELECT_new (&mysql_res,"can not get the number of notifications by email"); row = mysql_fetch_row (mysql_res);