Version 18.11

This commit is contained in:
Antonio Cañas Vargas 2018-10-30 09:02:14 +01:00
parent 6ca705598e
commit f7b1f69fc3
15 changed files with 352 additions and 297 deletions

View File

@ -233,7 +233,7 @@ unsigned ID_GetListUsrCodsFromUsrID (struct UsrData *UsrDat,
Str_Concat (Query," AND Confirmed='Y'", Str_Concat (Query," AND Confirmed='Y'",
MaxLength); MaxLength);
ListUsrCods->NumUsrs = (unsigned) DB_QuerySELECT (&Query,&mysql_res,"can not get user's codes"); ListUsrCods->NumUsrs = (unsigned) DB_QuerySELECT_old (&Query,&mysql_res,"can not get user's codes");
if (ListUsrCods->NumUsrs) if (ListUsrCods->NumUsrs)
{ {
/***** Allocate space for the list of users' codes *****/ /***** Allocate space for the list of users' codes *****/

View File

@ -200,14 +200,13 @@ void Acc_CheckIfEmptyAccountExists (void)
/***** Check if there are users with this user's ID *****/ /***** Check if there are users with this user's ID *****/
if (ID_CheckIfUsrIDIsValid (ID)) if (ID_CheckIfUsrIDIsValid (ID))
{ {
DB_BuildQuery ("SELECT usr_IDs.UsrCod" NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes"
" FROM usr_IDs,usr_data" "SELECT usr_IDs.UsrCod"
" WHERE usr_IDs.UsrID='%s'" " FROM usr_IDs,usr_data"
" AND usr_IDs.UsrCod=usr_data.UsrCod" " WHERE usr_IDs.UsrID='%s'"
" AND usr_data.Password=''", " AND usr_IDs.UsrCod=usr_data.UsrCod"
ID); " AND usr_data.Password=''",
NumUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get user's codes"); ID);
if (NumUsrs) if (NumUsrs)
{ {
/***** Start box and table *****/ /***** Start box and table *****/

View File

@ -5123,10 +5123,10 @@ char *Act_GetActionTextFromDB (long ActCod,
MYSQL_ROW row; MYSQL_ROW row;
/***** Get test for an action from database *****/ /***** Get test for an action from database *****/
DB_BuildQuery ("SELECT Txt FROM actions" if (DB_QuerySELECT (&mysql_res,"can not get text for an action",
" WHERE ActCod=%ld AND Language='%s'", "SELECT Txt FROM actions"
ActCod,Txt_STR_LANG_ID[Txt_LANGUAGE_ES]); // !!! TODO: Replace Txt_LANGUAGE_ES by Gbl.Prefs.Language !!! " WHERE ActCod=%ld AND Language='%s'",
if (DB_QuerySELECT_new (&mysql_res,"can not get text for an action")) ActCod,Txt_STR_LANG_ID[Txt_LANGUAGE_ES])) // !!! TODO: Replace Txt_LANGUAGE_ES by Gbl.Prefs.Language !!!
{ {
/***** Get text *****/ /***** Get text *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);

View File

@ -1105,15 +1105,15 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
} }
/* Build full query */ /* Build full query */
DB_BuildQuery ("SELECT AgdCod FROM agendas" NumRows = DB_QuerySELECT (&mysql_res,"can not get agenda events",
" WHERE %s%s%s%s" "SELECT AgdCod FROM agendas"
" ORDER BY %s", " WHERE %s%s%s%s"
UsrSubQuery, " ORDER BY %s",
Past__FutureEventsSubQuery, UsrSubQuery,
PrivatPublicEventsSubQuery, Past__FutureEventsSubQuery,
HiddenVisiblEventsSubQuery, PrivatPublicEventsSubQuery,
OrderBySubQuery); HiddenVisiblEventsSubQuery,
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get agenda events"); OrderBySubQuery);
/* Free allocated memory for subqueries */ /* Free allocated memory for subqueries */
free ((void *) OrderBySubQuery); free ((void *) OrderBySubQuery);
@ -1157,19 +1157,17 @@ static void Agd_GetDataOfEventByCod (struct AgendaEvent *AgdEvent)
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
/***** Build query *****/
DB_BuildQuery ("SELECT AgdCod,Public,Hidden,"
"UNIX_TIMESTAMP(StartTime),"
"UNIX_TIMESTAMP(EndTime),"
"NOW()>EndTime," // Past event?
"NOW()<StartTime," // Future event?
"Event,Location"
" FROM agendas"
" WHERE AgdCod=%ld AND UsrCod=%ld",
AgdEvent->AgdCod,AgdEvent->UsrCod);
/***** Get data of event from database *****/ /***** Get data of event from database *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get agenda event data")) // Event found... if (DB_QuerySELECT (&mysql_res,"can not get agenda event data",
"SELECT AgdCod,Public,Hidden,"
"UNIX_TIMESTAMP(StartTime),"
"UNIX_TIMESTAMP(EndTime),"
"NOW()>EndTime," // Past event?
"NOW()<StartTime," // Future event?
"Event,Location"
" FROM agendas"
" WHERE AgdCod=%ld AND UsrCod=%ld",
AgdEvent->AgdCod,AgdEvent->UsrCod)) // Event found...
{ {
/* Get row: /* Get row:
row[0] AgdCod row[0] AgdCod
@ -1257,10 +1255,10 @@ static void Agd_GetEventTxtFromDB (struct AgendaEvent *AgdEvent,
unsigned long NumRows; unsigned long NumRows;
/***** Get text of event from database *****/ /***** Get text of event from database *****/
DB_BuildQuery ("SELECT Txt FROM agendas" NumRows = DB_QuerySELECT (&mysql_res,"can not get event text",
" WHERE AgdCod=%ld AND UsrCod=%ld", "SELECT Txt FROM agendas"
AgdEvent->AgdCod,AgdEvent->UsrCod); " WHERE AgdCod=%ld AND UsrCod=%ld",
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get event text"); AgdEvent->AgdCod,AgdEvent->UsrCod);
/***** The result of the query must have one row or none *****/ /***** The result of the query must have one row or none *****/
if (NumRows == 1) if (NumRows == 1)
@ -1782,64 +1780,69 @@ unsigned Agd_GetNumUsrsWithEvents (Sco_Scope_t Scope)
switch (Scope) switch (Scope)
{ {
case Sco_SCOPE_SYS: case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(DISTINCT UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM agendas" "SELECT COUNT(DISTINCT UsrCod)"
" WHERE UsrCod>0"); " FROM agendas"
" WHERE UsrCod>0");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(DISTINCT agendas.UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM institutions,centres,degrees,courses,crs_usr,agendas" "SELECT COUNT(DISTINCT agendas.UsrCod)"
" WHERE institutions.CtyCod=%ld" " FROM institutions,centres,degrees,courses,crs_usr,agendas"
" AND institutions.InsCod=centres.InsCod" " WHERE institutions.CtyCod=%ld"
" AND centres.CtrCod=degrees.CtrCod" " AND institutions.InsCod=centres.InsCod"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.Status=0"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentCty.Cty.CtyCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCty.Cty.CtyCod);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(DISTINCT agendas.UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM centres,degrees,courses,crs_usr,agendas" "SELECT COUNT(DISTINCT agendas.UsrCod)"
" WHERE centres.InsCod=%ld" " FROM centres,degrees,courses,crs_usr,agendas"
" AND centres.CtrCod=degrees.CtrCod" " WHERE centres.InsCod=%ld"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.Status=0"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentIns.Ins.InsCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentIns.Ins.InsCod);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(DISTINCT agendas.UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM degrees,courses,crs_usr,agendas" "SELECT COUNT(DISTINCT agendas.UsrCod)"
" WHERE degrees.CtrCod=%ld" " FROM degrees,courses,crs_usr,agendas"
" AND degrees.DegCod=courses.DegCod" " WHERE degrees.CtrCod=%ld"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.Status=0"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentCtr.Ctr.CtrCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(DISTINCT agendas.UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM courses,crs_usr,agendas" "SELECT COUNT(DISTINCT agendas.UsrCod)"
" WHERE courses.DegCod=%ld" " FROM courses,crs_usr,agendas"
" AND courses.Status=0" " WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.Status=0"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentDeg.Deg.DegCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentDeg.Deg.DegCod);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT agendas.UsrCod)" DB_QuerySELECT (&mysql_res,"can not get number of users with events",
" FROM crs_usr,agendas" "SELECT COUNT(DISTINCT agendas.UsrCod)"
" WHERE crs_usr.CrsCod=%ld" " FROM crs_usr,agendas"
" AND crs_usr.UsrCod=agendas.UsrCod", " WHERE crs_usr.CrsCod=%ld"
Gbl.CurrentCrs.Crs.CrsCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCrs.Crs.CrsCod);
break; break;
default: default:
Lay_WrongScopeExit (); Lay_WrongScopeExit ();
break; break;
} }
DB_QuerySELECT_new (&mysql_res,"can not get number of users with events");
/***** Get number of users *****/ /***** Get number of users *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
@ -1867,60 +1870,65 @@ unsigned Agd_GetNumEvents (Sco_Scope_t Scope)
switch (Scope) switch (Scope)
{ {
case Sco_SCOPE_SYS: case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM agendas" "SELECT COUNT(*)"
" WHERE UsrCod>0"); " FROM agendas"
" WHERE UsrCod>0");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM institutions,centres,degrees,courses,crs_usr,agendas" "SELECT COUNT(*)"
" WHERE institutions.CtyCod=%ld" " FROM institutions,centres,degrees,courses,crs_usr,agendas"
" AND institutions.InsCod=centres.InsCod" " WHERE institutions.CtyCod=%ld"
" AND centres.CtrCod=degrees.CtrCod" " AND institutions.InsCod=centres.InsCod"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.CrsCod=crs_usr.CrsCod" " AND degrees.DegCod=courses.DegCod"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentCty.Cty.CtyCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCty.Cty.CtyCod);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM centres,degrees,courses,crs_usr,agendas" "SELECT COUNT(*)"
" WHERE centres.InsCod=%ld" " FROM centres,degrees,courses,crs_usr,agendas"
" AND centres.CtrCod=degrees.CtrCod" " WHERE centres.InsCod=%ld"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.CrsCod=crs_usr.CrsCod" " AND degrees.DegCod=courses.DegCod"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentIns.Ins.InsCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentIns.Ins.InsCod);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM degrees,courses,crs_usr,agendas" "SELECT COUNT(*)"
" WHERE degrees.CtrCod=%ld" " FROM degrees,courses,crs_usr,agendas"
" AND degrees.DegCod=courses.DegCod" " WHERE degrees.CtrCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod" " AND degrees.DegCod=courses.DegCod"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentCtr.Ctr.CtrCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM courses,crs_usr,agendas" "SELECT COUNT(*)"
" WHERE courses.DegCod=%ld" " FROM courses,crs_usr,agendas"
" AND courses.CrsCod=crs_usr.CrsCod" " WHERE courses.DegCod=%ld"
" AND crs_usr.UsrCod=agendas.UsrCod", " AND courses.CrsCod=crs_usr.CrsCod"
Gbl.CurrentDeg.Deg.DegCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentDeg.Deg.DegCod);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(*)" DB_QuerySELECT (&mysql_res,"can not get number of events",
" FROM crs_usr,agendas" "SELECT COUNT(*)"
" WHERE crs_usr.CrsCod=%ld" " FROM crs_usr,agendas"
" AND crs_usr.UsrCod=agendas.UsrCod", " WHERE crs_usr.CrsCod=%ld"
Gbl.CurrentCrs.Crs.CrsCod); " AND crs_usr.UsrCod=agendas.UsrCod",
Gbl.CurrentCrs.Crs.CrsCod);
break; break;
default: default:
Lay_WrongScopeExit (); Lay_WrongScopeExit ();
break; break;
} }
DB_QuerySELECT_new (&mysql_res,"can not get number of events");
/***** Get number of events *****/ /***** Get number of events *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);

View File

@ -96,31 +96,33 @@ void Ann_ShowAllAnnouncements (void)
if (ICanEdit) if (ICanEdit)
{ {
/* Select all announcements */ /* Select all announcements */
DB_BuildQuery ("SELECT AnnCod,Status,Roles,Subject,Content" NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
" FROM announcements" "SELECT AnnCod,Status,Roles,Subject,Content"
" ORDER BY AnnCod DESC"); " FROM announcements"
" ORDER BY AnnCod DESC");
} }
else if (Gbl.Usrs.Me.Logged) else if (Gbl.Usrs.Me.Logged)
{ {
/* Select only announcements I can see */ /* Select only announcements I can see */
Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat); Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat);
DB_BuildQuery ("SELECT AnnCod,Status,Roles,Subject,Content" NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
" FROM announcements" "SELECT AnnCod,Status,Roles,Subject,Content"
" WHERE (Roles&%u)<>0 " " FROM announcements"
" ORDER BY AnnCod DESC", " WHERE (Roles&%u)<>0 "
(unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss); // All my roles in different courses " ORDER BY AnnCod DESC",
(unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss); // All my roles in different courses
} }
else // No user logged else // No user logged
{ {
/* Select only active announcements for unknown users */ /* Select only active announcements for unknown users */
DB_BuildQuery ("SELECT AnnCod,Status,Roles,Subject,Content" NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
" FROM announcements" "SELECT AnnCod,Status,Roles,Subject,Content"
" WHERE Status=%u AND (Roles&%u)<>0 " " FROM announcements"
" ORDER BY AnnCod DESC", " WHERE Status=%u AND (Roles&%u)<>0 "
(unsigned) Ann_ACTIVE_ANNOUNCEMENT, " ORDER BY AnnCod DESC",
(unsigned) (1 << Rol_UNK)); (unsigned) Ann_ACTIVE_ANNOUNCEMENT,
(unsigned) (1 << Rol_UNK));
} }
NumAnnouncements = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get announcements");
/***** Start box *****/ /***** Start box *****/
Box_StartBox ("550px",Txt_Announcements, Box_StartBox ("550px",Txt_Announcements,
@ -219,15 +221,15 @@ void Ann_ShowMyAnnouncementsNotMarkedAsSeen (void)
/***** Select announcements not seen *****/ /***** Select announcements not seen *****/
Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat); Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat);
DB_BuildQuery ("SELECT AnnCod,Subject,Content FROM announcements" NumAnnouncements = (unsigned) DB_QuerySELECT (&mysql_res,"can not get announcements",
" WHERE Status=%u AND (Roles&%u)<>0 " "SELECT AnnCod,Subject,Content FROM announcements"
" AND AnnCod NOT IN" " WHERE Status=%u AND (Roles&%u)<>0 "
" (SELECT AnnCod FROM ann_seen WHERE UsrCod=%ld)" " AND AnnCod NOT IN"
" ORDER BY AnnCod DESC", // Newest first " (SELECT AnnCod FROM ann_seen WHERE UsrCod=%ld)"
(unsigned) Ann_ACTIVE_ANNOUNCEMENT, " ORDER BY AnnCod DESC", // Newest first
(unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss, // All my roles in different courses (unsigned) Ann_ACTIVE_ANNOUNCEMENT,
Gbl.Usrs.Me.UsrDat.UsrCod); (unsigned) Gbl.Usrs.Me.UsrDat.Roles.InCrss, // All my roles in different courses
NumAnnouncements = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get announcements"); Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Show the announcements *****/ /***** Show the announcements *****/
if (NumAnnouncements) if (NumAnnouncements)

View File

@ -81,7 +81,9 @@ static void Asg_GetParamAsgOrder (void);
static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden); static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden);
static void Asg_PutParams (void); static void Asg_PutParams (void);
static void Asg_GetDataOfAssignment (struct Assignment *Asg); static void Asg_GetDataOfAssignment (struct Assignment *Asg,
MYSQL_RES **mysql_res,
unsigned long NumRows);
static void Asg_ResetAssignment (struct Assignment *Asg); static void Asg_ResetAssignment (struct Assignment *Asg);
static void Asg_GetAssignmentTxtFromDB (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT + 1]); static void Asg_GetAssignmentTxtFromDB (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
static void Asg_PutParamAsgCod (long AsgCod); static void Asg_PutParamAsgCod (long AsgCod);
@ -657,24 +659,25 @@ void Asg_GetListAssignments (void)
break; break;
} }
if (Gbl.CurrentCrs.Grps.WhichGrps == Grp_ONLY_MY_GROUPS) if (Gbl.CurrentCrs.Grps.WhichGrps == Grp_ONLY_MY_GROUPS)
DB_BuildQuery ("SELECT AsgCod" NumRows = DB_QuerySELECT (&mysql_res,"can not get assignments",
" FROM assignments" "SELECT AsgCod"
" WHERE CrsCod=%ld%s" " FROM assignments"
" AND (AsgCod NOT IN (SELECT AsgCod FROM asg_grp) OR" " WHERE CrsCod=%ld%s"
" AsgCod IN (SELECT asg_grp.AsgCod FROM asg_grp,crs_grp_usr" " AND (AsgCod NOT IN (SELECT AsgCod FROM asg_grp) OR"
" WHERE crs_grp_usr.UsrCod=%ld AND asg_grp.GrpCod=crs_grp_usr.GrpCod))" " AsgCod IN (SELECT asg_grp.AsgCod FROM asg_grp,crs_grp_usr"
" ORDER BY %s", " WHERE crs_grp_usr.UsrCod=%ld AND asg_grp.GrpCod=crs_grp_usr.GrpCod))"
Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, " ORDER BY %s",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery,
OrderBySubQuery); Gbl.Usrs.Me.UsrDat.UsrCod,
OrderBySubQuery);
else // Gbl.CurrentCrs.Grps.WhichGrps == Grp_ALL_GROUPS else // Gbl.CurrentCrs.Grps.WhichGrps == Grp_ALL_GROUPS
DB_BuildQuery ("SELECT AsgCod" NumRows = DB_QuerySELECT (&mysql_res,"can not get assignments",
" FROM assignments" "SELECT AsgCod"
" WHERE CrsCod=%ld%s" " FROM assignments"
" ORDER BY %s", " WHERE CrsCod=%ld%s"
Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, " ORDER BY %s",
OrderBySubQuery); Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery,
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get assignments"); OrderBySubQuery);
/* Free allocated memory for subqueries */ /* Free allocated memory for subqueries */
free ((void *) OrderBySubQuery); free ((void *) OrderBySubQuery);
@ -714,20 +717,24 @@ void Asg_GetListAssignments (void)
void Asg_GetDataOfAssignmentByCod (struct Assignment *Asg) void Asg_GetDataOfAssignmentByCod (struct Assignment *Asg)
{ {
MYSQL_RES *mysql_res;
unsigned long NumRows;
if (Asg->AsgCod > 0) if (Asg->AsgCod > 0)
{ {
/***** Build query *****/ /***** Build query *****/
DB_BuildQuery ("SELECT AsgCod,Hidden,UsrCod," NumRows = DB_QuerySELECT (&mysql_res,"can not get assignment data",
"UNIX_TIMESTAMP(StartTime)," "SELECT AsgCod,Hidden,UsrCod,"
"UNIX_TIMESTAMP(EndTime)," "UNIX_TIMESTAMP(StartTime),"
"NOW() BETWEEN StartTime AND EndTime," "UNIX_TIMESTAMP(EndTime),"
"Title,Folder" "NOW() BETWEEN StartTime AND EndTime,"
" FROM assignments" "Title,Folder"
" WHERE AsgCod=%ld AND CrsCod=%ld", " FROM assignments"
Asg->AsgCod,Gbl.CurrentCrs.Crs.CrsCod); " WHERE AsgCod=%ld AND CrsCod=%ld",
Asg->AsgCod,Gbl.CurrentCrs.Crs.CrsCod);
/***** Get data of assignment *****/ /***** Get data of assignment *****/
Asg_GetDataOfAssignment (Asg); Asg_GetDataOfAssignment (Asg,&mysql_res,NumRows);
} }
else else
{ {
@ -743,20 +750,24 @@ void Asg_GetDataOfAssignmentByCod (struct Assignment *Asg)
void Asg_GetDataOfAssignmentByFolder (struct Assignment *Asg) void Asg_GetDataOfAssignmentByFolder (struct Assignment *Asg)
{ {
MYSQL_RES *mysql_res;
unsigned long NumRows;
if (Asg->Folder[0]) if (Asg->Folder[0])
{ {
/***** Query database *****/ /***** Query database *****/
DB_BuildQuery ("SELECT AsgCod,Hidden,UsrCod," NumRows = DB_QuerySELECT (&mysql_res,"can not get assignment data",
"UNIX_TIMESTAMP(StartTime)," "SELECT AsgCod,Hidden,UsrCod,"
"UNIX_TIMESTAMP(EndTime)," "UNIX_TIMESTAMP(StartTime),"
"NOW() BETWEEN StartTime AND EndTime," "UNIX_TIMESTAMP(EndTime),"
"Title,Folder" "NOW() BETWEEN StartTime AND EndTime,"
" FROM assignments" "Title,Folder"
" WHERE CrsCod=%ld AND Folder='%s'", " FROM assignments"
Gbl.CurrentCrs.Crs.CrsCod,Asg->Folder); " WHERE CrsCod=%ld AND Folder='%s'",
Gbl.CurrentCrs.Crs.CrsCod,Asg->Folder);
/***** Get data of assignment *****/ /***** Get data of assignment *****/
Asg_GetDataOfAssignment (Asg); Asg_GetDataOfAssignment (Asg,&mysql_res,NumRows);
} }
else else
{ {
@ -770,19 +781,20 @@ void Asg_GetDataOfAssignmentByFolder (struct Assignment *Asg)
/************************* Get assignment data *******************************/ /************************* Get assignment data *******************************/
/*****************************************************************************/ /*****************************************************************************/
static void Asg_GetDataOfAssignment (struct Assignment *Asg) static void Asg_GetDataOfAssignment (struct Assignment *Asg,
MYSQL_RES **mysql_res,
unsigned long NumRows)
{ {
MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
/***** Clear all assignment data *****/ /***** Clear all assignment data *****/
Asg_ResetAssignment (Asg); Asg_ResetAssignment (Asg);
/***** Get data of assignment from database *****/ /***** Get data of assignment from database *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get assignment data")) // Assignment found... if (NumRows) // Assignment found...
{ {
/* Get row */ /* Get row */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (*mysql_res);
/* Get code of the assignment (row[0]) */ /* Get code of the assignment (row[0]) */
Asg->AsgCod = Str_ConvertStrCodToLongCod (row[0]); Asg->AsgCod = Str_ConvertStrCodToLongCod (row[0]);
@ -816,7 +828,7 @@ static void Asg_GetDataOfAssignment (struct Assignment *Asg)
} }
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res); DB_FreeMySQLResult (mysql_res);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -866,10 +878,10 @@ static void Asg_GetAssignmentTxtFromDB (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT
unsigned long NumRows; unsigned long NumRows;
/***** Get text of assignment from database *****/ /***** Get text of assignment from database *****/
DB_BuildQuery ("SELECT Txt FROM assignments" NumRows = DB_QuerySELECT (&mysql_res,"can not get assignment text",
" WHERE AsgCod=%ld AND CrsCod=%ld", "SELECT Txt FROM assignments"
AsgCod,Gbl.CurrentCrs.Crs.CrsCod); " WHERE AsgCod=%ld AND CrsCod=%ld",
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get assignment text"); AsgCod,Gbl.CurrentCrs.Crs.CrsCod);
/***** The result of the query must have one row or none *****/ /***** The result of the query must have one row or none *****/
if (NumRows == 1) if (NumRows == 1)
@ -906,8 +918,10 @@ void Asg_GetNotifAssignment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
SummaryStr[0] = '\0'; // Return nothing on error SummaryStr[0] = '\0'; // Return nothing on error
/***** Build query *****/ /***** Build query *****/
DB_BuildQuery ("SELECT Title,Txt FROM assignments WHERE AsgCod=%ld",AsgCod); NumRows = DB_QuerySELECT (&mysql_res,"can not get assignment title and text",
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get assignment title and text"); "SELECT Title,Txt FROM assignments"
" WHERE AsgCod=%ld",
AsgCod);
/***** Result should have a unique row *****/ /***** Result should have a unique row *****/
if (NumRows == 1) if (NumRows == 1)
@ -1630,14 +1644,14 @@ static void Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (struct Assignment *Asg)
unsigned long NumRows; unsigned long NumRows;
/***** Get groups associated to an assignment from database *****/ /***** Get groups associated to an assignment from database *****/
DB_BuildQuery ("SELECT crs_grp_types.GrpTypName,crs_grp.GrpName" NumRows = DB_QuerySELECT (&mysql_res,"can not get groups of an assignment",
" FROM asg_grp,crs_grp,crs_grp_types" "SELECT crs_grp_types.GrpTypName,crs_grp.GrpName"
" WHERE asg_grp.AsgCod=%ld" " FROM asg_grp,crs_grp,crs_grp_types"
" AND asg_grp.GrpCod=crs_grp.GrpCod" " WHERE asg_grp.AsgCod=%ld"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod" " AND asg_grp.GrpCod=crs_grp.GrpCod"
" ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName", " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
Asg->AsgCod); " ORDER BY crs_grp_types.GrpTypName,crs_grp.GrpName",
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get groups of an assignment"); Asg->AsgCod);
/***** Write heading *****/ /***** Write heading *****/
fprintf (Gbl.F.Out,"<div class=\"%s\">%s: ", fprintf (Gbl.F.Out,"<div class=\"%s\">%s: ",
@ -1762,59 +1776,64 @@ unsigned Asg_GetNumCoursesWithAssignments (Sco_Scope_t Scope)
switch (Scope) switch (Scope)
{ {
case Sco_SCOPE_SYS: case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM assignments" "SELECT COUNT(DISTINCT CrsCod)"
" WHERE CrsCod>0"); " FROM assignments"
" WHERE CrsCod>0");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(DISTINCT assignments.CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM institutions,centres,degrees,courses,assignments" "SELECT COUNT(DISTINCT assignments.CrsCod)"
" WHERE institutions.CtyCod=%ld" " FROM institutions,centres,degrees,courses,assignments"
" AND institutions.InsCod=centres.InsCod" " WHERE institutions.CtyCod=%ld"
" AND centres.CtrCod=degrees.CtrCod" " AND institutions.InsCod=centres.InsCod"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=assignments.CrsCod", " AND courses.Status=0"
Gbl.CurrentCty.Cty.CtyCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentCty.Cty.CtyCod);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(DISTINCT assignments.CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM centres,degrees,courses,assignments" "SELECT COUNT(DISTINCT assignments.CrsCod)"
" WHERE centres.InsCod=%ld" " FROM centres,degrees,courses,assignments"
" AND centres.CtrCod=degrees.CtrCod" " WHERE centres.InsCod=%ld"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=assignments.CrsCod", " AND courses.Status=0"
Gbl.CurrentIns.Ins.InsCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentIns.Ins.InsCod);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(DISTINCT assignments.CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM degrees,courses,assignments" "SELECT COUNT(DISTINCT assignments.CrsCod)"
" WHERE degrees.CtrCod=%ld" " FROM degrees,courses,assignments"
" AND degrees.DegCod=courses.DegCod" " WHERE degrees.CtrCod=%ld"
" AND courses.Status=0" " AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=assignments.CrsCod", " AND courses.Status=0"
Gbl.CurrentCtr.Ctr.CtrCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(DISTINCT assignments.CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM courses,assignments" "SELECT COUNT(DISTINCT assignments.CrsCod)"
" WHERE courses.DegCod=%ld" " FROM courses,assignments"
" AND courses.Status=0" " WHERE courses.DegCod=%ld"
" AND courses.CrsCod=assignments.CrsCod", " AND courses.Status=0"
Gbl.CurrentDeg.Deg.DegCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentDeg.Deg.DegCod);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(DISTINCT CrsCod)" DB_QuerySELECT (&mysql_res,"can not get number of courses with assignments",
" FROM assignments" "SELECT COUNT(DISTINCT CrsCod)"
" WHERE CrsCod=%ld", " FROM assignments"
Gbl.CurrentCrs.Crs.CrsCod); " WHERE CrsCod=%ld",
Gbl.CurrentCrs.Crs.CrsCod);
break; break;
default: default:
Lay_WrongScopeExit (); Lay_WrongScopeExit ();
break; break;
} }
DB_QuerySELECT_new (&mysql_res,"can not get number of courses with assignments");
/***** Get number of courses *****/ /***** Get number of courses *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
@ -1843,55 +1862,60 @@ unsigned Asg_GetNumAssignments (Sco_Scope_t Scope,unsigned *NumNotif)
switch (Scope) switch (Scope)
{ {
case Sco_SCOPE_SYS: case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT COUNT(*),SUM(NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM assignments" "SELECT COUNT(*),SUM(NumNotif)"
" WHERE CrsCod>0"); " FROM assignments"
" WHERE CrsCod>0");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT COUNT(*),SUM(assignments.NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM institutions,centres,degrees,courses,assignments" "SELECT COUNT(*),SUM(assignments.NumNotif)"
" WHERE institutions.CtyCod=%ld" " FROM institutions,centres,degrees,courses,assignments"
" AND institutions.InsCod=centres.InsCod" " WHERE institutions.CtyCod=%ld"
" AND centres.CtrCod=degrees.CtrCod" " AND institutions.InsCod=centres.InsCod"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.CrsCod=assignments.CrsCod", " AND degrees.DegCod=courses.DegCod"
Gbl.CurrentCty.Cty.CtyCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentCty.Cty.CtyCod);
break; break;
case Sco_SCOPE_INS: case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT COUNT(*),SUM(assignments.NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM centres,degrees,courses,assignments" "SELECT COUNT(*),SUM(assignments.NumNotif)"
" WHERE centres.InsCod=%ld" " FROM centres,degrees,courses,assignments"
" AND centres.CtrCod=degrees.CtrCod" " WHERE centres.InsCod=%ld"
" AND degrees.DegCod=courses.DegCod" " AND centres.CtrCod=degrees.CtrCod"
" AND courses.CrsCod=assignments.CrsCod", " AND degrees.DegCod=courses.DegCod"
Gbl.CurrentIns.Ins.InsCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentIns.Ins.InsCod);
break; break;
case Sco_SCOPE_CTR: case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT COUNT(*),SUM(assignments.NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM degrees,courses,assignments" "SELECT COUNT(*),SUM(assignments.NumNotif)"
" WHERE degrees.CtrCod=%ld" " FROM degrees,courses,assignments"
" AND degrees.DegCod=courses.DegCod" " WHERE degrees.CtrCod=%ld"
" AND courses.CrsCod=assignments.CrsCod", " AND degrees.DegCod=courses.DegCod"
Gbl.CurrentCtr.Ctr.CtrCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
case Sco_SCOPE_DEG: case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT COUNT(*),SUM(assignments.NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM courses,assignments" "SELECT COUNT(*),SUM(assignments.NumNotif)"
" WHERE courses.DegCod=%ld" " FROM courses,assignments"
" AND courses.CrsCod=assignments.CrsCod", " WHERE courses.DegCod=%ld"
Gbl.CurrentDeg.Deg.DegCod); " AND courses.CrsCod=assignments.CrsCod",
Gbl.CurrentDeg.Deg.DegCod);
break; break;
case Sco_SCOPE_CRS: case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT COUNT(*),SUM(NumNotif)" DB_QuerySELECT (&mysql_res,"can not get number of assignments",
" FROM assignments" "SELECT COUNT(*),SUM(NumNotif)"
" WHERE CrsCod=%ld", " FROM assignments"
Gbl.CurrentCrs.Crs.CrsCod); " WHERE CrsCod=%ld",
Gbl.CurrentCrs.Crs.CrsCod);
break; break;
default: default:
Lay_WrongScopeExit (); Lay_WrongScopeExit ();
break; break;
} }
DB_QuerySELECT_new (&mysql_res,"can not get number of assignments");
/***** Get number of assignments *****/ /***** Get number of assignments *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);

View File

@ -2452,7 +2452,7 @@ static unsigned Att_GetNumStdsFromAListWhoAreInAttEvent (long AttCod,long LstSel
MaxLength); MaxLength);
NumStdsInAttEvent = (unsigned) DB_QueryCOUNT (&Query,"can not get number of students from a list who are registered in an event"); NumStdsInAttEvent = (unsigned) DB_QueryCOUNT_old (&Query,"can not get number of students from a list who are registered in an event");
} }
return NumStdsInAttEvent; return NumStdsInAttEvent;
} }

View File

@ -355,10 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 18.10.2 (2018-10-30)" #define Log_PLATFORM_VERSION "SWAD 18.11 (2018-10-30)"
#define CSS_FILE "swad18.4.css" #define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js" #define JS_FILE "swad17.17.1.js"
/* /*
Version 18.11: Oct 30, 2018 Joining building and performing query into one function. (235465 lines)
Version 18.10.2: Oct 30, 2018 Fixed bugs in access to database. (235414 lines) Version 18.10.2: Oct 30, 2018 Fixed bugs in access to database. (235414 lines)
Version 18.10.1: Oct 30, 2018 Fixed bugs in access to database. (235399 lines) Version 18.10.1: Oct 30, 2018 Fixed bugs in access to database. (235399 lines)
Version 18.10: Oct 30, 2018 Fixing bugs in access to database. Not finished. (235399 lines) Version 18.10: Oct 30, 2018 Fixing bugs in access to database. Not finished. (235399 lines)

View File

@ -3123,12 +3123,31 @@ static void DB_QueryPrintf (char **strp,const char *fmt,...)
/******************** Make a SELECT query from database **********************/ /******************** Make a SELECT query from database **********************/
/*****************************************************************************/ /*****************************************************************************/
unsigned long DB_QuerySELECT_new (MYSQL_RES **mysql_res,const char *MsgError) unsigned long DB_QuerySELECT (MYSQL_RES **mysql_res,const char *MsgError,
const char *fmt,...)
{ {
return DB_QuerySELECT (&Gbl.DB.QueryPtr,mysql_res,MsgError); int NumBytesPrinted;
va_list ap;
char *Query = NULL;
va_start (ap,fmt);
NumBytesPrinted = vasprintf (&Query,fmt,ap);
va_end (ap);
if (NumBytesPrinted < 0) // If memory allocation wasn't possible,
// or some other error occurs,
// vasprintf will return -1
Lay_NotEnoughMemoryExit ();
return DB_QuerySELECT_old (&Query,mysql_res,MsgError);
} }
unsigned long DB_QuerySELECT (char **Query,MYSQL_RES **mysql_res,const char *MsgError) unsigned long DB_QuerySELECT_new (MYSQL_RES **mysql_res,const char *MsgError)
{
return DB_QuerySELECT_old (&Gbl.DB.QueryPtr,mysql_res,MsgError);
}
unsigned long DB_QuerySELECT_old (char **Query,MYSQL_RES **mysql_res,const char *MsgError)
{ {
int Result; int Result;
@ -3158,17 +3177,17 @@ unsigned long DB_QuerySELECT (char **Query,MYSQL_RES **mysql_res,const char *Msg
unsigned long DB_QueryCOUNT_new (const char *MsgError) unsigned long DB_QueryCOUNT_new (const char *MsgError)
{ {
return DB_QueryCOUNT (&Gbl.DB.QueryPtr,MsgError); return DB_QueryCOUNT_old (&Gbl.DB.QueryPtr,MsgError);
} }
unsigned long DB_QueryCOUNT (char **Query,const char *MsgError) unsigned long DB_QueryCOUNT_old (char **Query,const char *MsgError)
{ {
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned long NumRows; unsigned long NumRows;
/***** Make query "SELECT COUNT(*) FROM..." *****/ /***** Make query "SELECT COUNT(*) FROM..." *****/
DB_QuerySELECT (Query,&mysql_res,MsgError); DB_QuerySELECT_old (Query,&mysql_res,MsgError);
/***** Get number of rows *****/ /***** Get number of rows *****/
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
@ -3206,7 +3225,7 @@ void DB_QueryINSERT_new (const char *MsgError)
/******************** Make an INSERT query in database ***********************/ /******************** Make an INSERT query in database ***********************/
/*****************************************************************************/ /*****************************************************************************/
void DB_QueryINSERT (char **Query,const char *MsgError) void DB_QueryINSERT_old (char **Query,const char *MsgError)
{ {
int Result; int Result;
@ -3274,10 +3293,10 @@ void DB_QueryREPLACE_new (const char *MsgError)
void DB_QueryUPDATE_new (const char *MsgError) void DB_QueryUPDATE_new (const char *MsgError)
{ {
DB_QueryUPDATE (&Gbl.DB.QueryPtr,MsgError); DB_QueryUPDATE_old (&Gbl.DB.QueryPtr,MsgError);
} }
void DB_QueryUPDATE (char **Query,const char *MsgError) void DB_QueryUPDATE_old (char **Query,const char *MsgError)
{ {
int Result; int Result;

View File

@ -40,21 +40,23 @@ void DB_CloseDBConnection (void);
void DB_BuildQuery (const char *fmt,...); void DB_BuildQuery (const char *fmt,...);
void DB_BuildQuery_old (char **Query,const char *fmt,...); void DB_BuildQuery_old (char **Query,const char *fmt,...);
unsigned long DB_QuerySELECT (MYSQL_RES **mysql_res,const char *MsgError,
const char *fmt,...);
unsigned long DB_QuerySELECT_new (MYSQL_RES **mysql_res,const char *MsgError); unsigned long DB_QuerySELECT_new (MYSQL_RES **mysql_res,const char *MsgError);
unsigned long DB_QuerySELECT (char **Query,MYSQL_RES **mysql_res,const char *MsgError); unsigned long DB_QuerySELECT_old (char **Query,MYSQL_RES **mysql_res,const char *MsgError);
unsigned long DB_QueryCOUNT_new (const char *MsgError); unsigned long DB_QueryCOUNT_new (const char *MsgError);
unsigned long DB_QueryCOUNT (char **Query,const char *MsgError); unsigned long DB_QueryCOUNT_old (char **Query,const char *MsgError);
void DB_QueryINSERT_new (const char *MsgError); void DB_QueryINSERT_new (const char *MsgError);
void DB_QueryINSERT (char **Query,const char *MsgError); void DB_QueryINSERT_old (char **Query,const char *MsgError);
long DB_QueryINSERTandReturnCode_new (const char *MsgError); long DB_QueryINSERTandReturnCode_new (const char *MsgError);
void DB_QueryREPLACE_new (const char *MsgError); void DB_QueryREPLACE_new (const char *MsgError);
void DB_QueryUPDATE_new (const char *MsgError); void DB_QueryUPDATE_new (const char *MsgError);
void DB_QueryUPDATE (char **Query,const char *MsgError); void DB_QueryUPDATE_old (char **Query,const char *MsgError);
void DB_QueryDELETE_new (const char *MsgError); void DB_QueryDELETE_new (const char *MsgError);

View File

@ -912,7 +912,7 @@ static void Soc_ShowTimeline (char **Query,
bool ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod); bool ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
/***** Get publishings from database *****/ /***** Get publishings from database *****/
NumPubsGot = DB_QuerySELECT (Query,&mysql_res,"can not get timeline"); NumPubsGot = DB_QuerySELECT_old (Query,&mysql_res,"can not get timeline");
/***** Start box *****/ /***** Start box *****/
Box_StartBox (Soc_WIDTH_TIMELINE,Title,Soc_PutIconsTimeline, Box_StartBox (Soc_WIDTH_TIMELINE,Title,Soc_PutIconsTimeline,
@ -1111,7 +1111,7 @@ static void Soc_InsertNewPubsInTimeline (char **Query)
struct SocialNote SocNot; struct SocialNote SocNot;
/***** Get new publishings timeline from database *****/ /***** Get new publishings timeline from database *****/
NumPubsGot = DB_QuerySELECT (Query,&mysql_res,"can not get timeline"); NumPubsGot = DB_QuerySELECT_old (Query,&mysql_res,"can not get timeline");
/***** List new publishings timeline *****/ /***** List new publishings timeline *****/
for (NumPub = 0; for (NumPub = 0;
@ -1151,7 +1151,7 @@ static void Soc_ShowOldPubsInTimeline (char **Query)
struct SocialNote SocNot; struct SocialNote SocNot;
/***** Get old publishings timeline from database *****/ /***** Get old publishings timeline from database *****/
NumPubsGot = DB_QuerySELECT (Query,&mysql_res,"can not get timeline"); NumPubsGot = DB_QuerySELECT_old (Query,&mysql_res,"can not get timeline");
/***** List old publishings in timeline *****/ /***** List old publishings in timeline *****/
for (NumPub = 0; for (NumPub = 0;

View File

@ -349,7 +349,7 @@ void Sta_LogAccess (const char *Comments)
Str_Concat (Query,"')", Str_Concat (Query,"')",
MaxLength); MaxLength);
DB_QueryINSERT (&Query,"can not log access (comments)"); DB_QueryINSERT_old (&Query,"can not log access (comments)");
} }
if (Gbl.Search.LogSearch && Gbl.Search.Str[0]) if (Gbl.Search.LogSearch && Gbl.Search.Str[0])
@ -370,7 +370,7 @@ void Sta_LogAccess (const char *Comments)
Str_Concat (Query,"')", Str_Concat (Query,"')",
MaxLength); MaxLength);
DB_QueryINSERT (&Query,"can not log access (search)"); DB_QueryINSERT_old (&Query,"can not log access (search)");
} }
if (Gbl.WebService.IsWebService) if (Gbl.WebService.IsWebService)
@ -1484,7 +1484,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Ale_ShowAlert (Ale_INFO,Query); Ale_ShowAlert (Ale_INFO,Query);
*/ */
/***** Make the query *****/ /***** Make the query *****/
NumRows = DB_QuerySELECT (&Query,&mysql_res,"can not get clicks"); NumRows = DB_QuerySELECT_old (&Query,&mysql_res,"can not get clicks");
/***** Count the number of rows in result *****/ /***** Count the number of rows in result *****/
if (NumRows == 0) if (NumRows == 0)

View File

@ -2635,7 +2635,7 @@ static unsigned long Tst_GetQuestions (MYSQL_RES **mysql_res)
} }
/* Make the query */ /* Make the query */
NumRows = DB_QuerySELECT (&Query,mysql_res,"can not get questions"); NumRows = DB_QuerySELECT_old (&Query,mysql_res,"can not get questions");
if (NumRows == 0) if (NumRows == 0)
Ale_ShowAlert (Ale_INFO,Txt_No_questions_found_matching_your_search_criteria); Ale_ShowAlert (Ale_INFO,Txt_No_questions_found_matching_your_search_criteria);
@ -2771,7 +2771,7 @@ static unsigned long Tst_GetQuestionsForTest (MYSQL_RES **mysql_res)
Lay_ShowAlert (Lay_INFO,Query); Lay_ShowAlert (Lay_INFO,Query);
*/ */
/* Make the query */ /* Make the query */
return DB_QuerySELECT (&Query,mysql_res,"can not get questions"); return DB_QuerySELECT_old (&Query,mysql_res,"can not get questions");
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -5104,7 +5104,7 @@ static void Usr_GetListUsrsFromQuery (char **Query,Rol_Role_t Role,Sco_Scope_t S
} }
/***** Query database *****/ /***** Query database *****/
if ((Gbl.Usrs.LstUsrs[Role].NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get list of users"))) if ((Gbl.Usrs.LstUsrs[Role].NumUsrs = (unsigned) DB_QuerySELECT_old (Query,&mysql_res,"can not get list of users")))
{ {
if (Gbl.Usrs.LstUsrs[Role].NumUsrs > Cfg_MAX_USRS_IN_LIST) if (Gbl.Usrs.LstUsrs[Role].NumUsrs > Cfg_MAX_USRS_IN_LIST)
{ {

View File

@ -2779,7 +2779,7 @@ int swad__sendAttendanceUsers (struct soap *soap,
Str_Concat (Query,")", Str_Concat (Query,")",
Length); Length);
DB_QueryUPDATE (&Query,"can not set other users as absent"); DB_QueryUPDATE_old (&Query,"can not set other users as absent");
/* Clean table att_usr */ /* Clean table att_usr */
Att_RemoveUsrsAbsentWithoutCommentsFromAttEvent (Att.AttCod); Att_RemoveUsrsAbsentWithoutCommentsFromAttEvent (Att.AttCod);
@ -3296,7 +3296,7 @@ int swad__sendMessage (struct soap *soap,
if (ReplyUsrCod > 0 || ThereAreNicknames) // There are a recipient to reply or nicknames in "to" if (ReplyUsrCod > 0 || ThereAreNicknames) // There are a recipient to reply or nicknames in "to"
{ {
/***** Get users *****/ /***** Get users *****/
NumRows = DB_QuerySELECT (&Query,&mysql_res,"can not get users"); NumRows = DB_QuerySELECT_old (&Query,&mysql_res,"can not get users");
sendMessageOut->numUsers = (int) NumRows; sendMessageOut->numUsers = (int) NumRows;
sendMessageOut->usersArray.__size = (int) NumRows; sendMessageOut->usersArray.__size = (int) NumRows;