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,"
"
"
![](\"%s/ellipsis32x32.gif\"")
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);
|