From 8c2707a52952ae54f7087ac3197a7c555490d99d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sat, 3 Nov 2018 01:45:36 +0100 Subject: [PATCH] Version 18.11.23 --- swad_account.c | 82 +++++++++++++++++++++++---------------------- swad_agenda.c | 25 +++++++------- swad_assignment.c | 27 ++++++++------- swad_attendance.c | 35 +++++++++---------- swad_centre.c | 29 ++++++++-------- swad_changelog.h | 3 +- swad_course.c | 24 +++++++------ swad_database.c | 22 +++++++++--- swad_database.h | 2 +- swad_degree.c | 23 +++++++------ swad_enrolment.c | 19 +++++------ swad_exam.c | 57 +++++++++++++++---------------- swad_file_browser.c | 31 ++++++++--------- swad_forum.c | 42 ++++++++++++----------- swad_game.c | 29 ++++++++-------- swad_group.c | 27 ++++++++------- swad_institution.c | 23 +++++++------ swad_message.c | 19 ++++++----- swad_notice.c | 16 +++++---- swad_project.c | 49 ++++++++++++++------------- swad_social.c | 54 +++++++++++++++-------------- swad_statistic.c | 37 ++++++++++---------- swad_survey.c | 44 ++++++++++++------------ swad_test.c | 71 ++++++++++++++++++++------------------- swad_web_service.c | 33 +++++++++--------- 25 files changed, 433 insertions(+), 390 deletions(-) diff --git a/swad_account.c b/swad_account.c index ea597c382..b8e991aa6 100644 --- a/swad_account.c +++ b/swad_account.c @@ -728,46 +728,48 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat,bool CreatingMyOwnAccount) CommentsLength = strlen (UsrDat->Comments); else CommentsLength = 0; - DB_BuildQuery ("INSERT INTO usr_data" - " (EncryptedUsrCod,Password," - "Surname1,Surname2,FirstName,Sex," - "Theme,IconSet,Language,FirstDayOfWeek,DateFormat," - "PhotoVisibility,ProfileVisibility," - "CtyCod," - "LocalAddress,LocalPhone," - "FamilyAddress,FamilyPhone," - "OriginPlace,Birthday,Comments," - "Menu,SideCols,NotifNtfEvents,EmailNtfEvents)" - " VALUES" - " ('%s','%s'," - "'%s','%s','%s','%s'," - "'%s','%s','%s',%u,%u," - "'%s','%s'," - "%ld," - "'%s','%s'," - "'%s','%s','%s'," - "%s,'%s'," - "%u,%u,-1,0)", - UsrDat->EncryptedUsrCod, - UsrDat->Password, - UsrDat->Surname1,UsrDat->Surname2,UsrDat->FirstName, - Usr_StringsSexDB[UsrDat->Sex], - The_ThemeId[UsrDat->Prefs.Theme], - Ico_IconSetId[UsrDat->Prefs.IconSet], - Txt_STR_LANG_ID[UsrDat->Prefs.Language], - Cal_FIRST_DAY_OF_WEEK_DEFAULT, - (unsigned) Dat_FORMAT_DEFAULT, - Pri_VisibilityDB[UsrDat->PhotoVisibility], - Pri_VisibilityDB[UsrDat->ProfileVisibility], - UsrDat->CtyCod, - UsrDat->LocalAddress ,UsrDat->LocalPhone, - UsrDat->FamilyAddress,UsrDat->FamilyPhone,UsrDat->OriginPlace, - BirthdayStrDB, - CommentsLength ? UsrDat->Comments : - "", - (unsigned) Mnu_MENU_DEFAULT, - (unsigned) Cfg_DEFAULT_COLUMNS); - UsrDat->UsrCod = DB_QueryINSERTandReturnCode_new ("can not create user"); + + UsrDat->UsrCod = + DB_QueryINSERTandReturnCode ("can not create user", + "INSERT INTO usr_data" + " (EncryptedUsrCod,Password," + "Surname1,Surname2,FirstName,Sex," + "Theme,IconSet,Language,FirstDayOfWeek,DateFormat," + "PhotoVisibility,ProfileVisibility," + "CtyCod," + "LocalAddress,LocalPhone," + "FamilyAddress,FamilyPhone," + "OriginPlace,Birthday,Comments," + "Menu,SideCols,NotifNtfEvents,EmailNtfEvents)" + " VALUES" + " ('%s','%s'," + "'%s','%s','%s','%s'," + "'%s','%s','%s',%u,%u," + "'%s','%s'," + "%ld," + "'%s','%s'," + "'%s','%s','%s'," + "%s,'%s'," + "%u,%u,-1,0)", + UsrDat->EncryptedUsrCod, + UsrDat->Password, + UsrDat->Surname1,UsrDat->Surname2,UsrDat->FirstName, + Usr_StringsSexDB[UsrDat->Sex], + The_ThemeId[UsrDat->Prefs.Theme], + Ico_IconSetId[UsrDat->Prefs.IconSet], + Txt_STR_LANG_ID[UsrDat->Prefs.Language], + Cal_FIRST_DAY_OF_WEEK_DEFAULT, + (unsigned) Dat_FORMAT_DEFAULT, + Pri_VisibilityDB[UsrDat->PhotoVisibility], + Pri_VisibilityDB[UsrDat->ProfileVisibility], + UsrDat->CtyCod, + UsrDat->LocalAddress ,UsrDat->LocalPhone, + UsrDat->FamilyAddress,UsrDat->FamilyPhone,UsrDat->OriginPlace, + BirthdayStrDB, + CommentsLength ? UsrDat->Comments : + "", + (unsigned) Mnu_MENU_DEFAULT, + (unsigned) Cfg_DEFAULT_COLUMNS); /* Insert user's IDs as confirmed */ for (NumID = 0; diff --git a/swad_agenda.c b/swad_agenda.c index 9baace9d5..a5e439cf8 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -1710,18 +1710,19 @@ void Agd_RecFormEvent (void) static void Agd_CreateEvent (struct AgendaEvent *AgdEvent,const char *Txt) { /***** Create a new event *****/ - DB_BuildQuery ("INSERT INTO agendas" - " (UsrCod,StartTime,EndTime,Event,Location,Txt)" - " VALUES" - " (%ld,FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," - "'%s','%s','%s')", - AgdEvent->UsrCod, - AgdEvent->TimeUTC[Agd_START_TIME], - AgdEvent->TimeUTC[Agd_END_TIME ], - AgdEvent->Event, - AgdEvent->Location, - Txt); - AgdEvent->AgdCod = DB_QueryINSERTandReturnCode_new ("can not create new event"); + AgdEvent->AgdCod = + DB_QueryINSERTandReturnCode ("can not create new event", + "INSERT INTO agendas" + " (UsrCod,StartTime,EndTime,Event,Location,Txt)" + " VALUES" + " (%ld,FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," + "'%s','%s','%s')", + AgdEvent->UsrCod, + AgdEvent->TimeUTC[Agd_START_TIME], + AgdEvent->TimeUTC[Agd_END_TIME ], + AgdEvent->Event, + AgdEvent->Location, + Txt); } /*****************************************************************************/ diff --git a/swad_assignment.c b/swad_assignment.c index eb040332e..68ae9abed 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -1495,19 +1495,20 @@ static void Asg_UpdateNumUsrsNotifiedByEMailAboutAssignment (long AsgCod,unsigne static void Asg_CreateAssignment (struct Assignment *Asg,const char *Txt) { /***** Create a new assignment *****/ - DB_BuildQuery ("INSERT INTO assignments" - " (CrsCod,UsrCod,StartTime,EndTime,Title,Folder,Txt)" - " VALUES" - " (%ld,%ld,FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," - "'%s','%s','%s')", - Gbl.CurrentCrs.Crs.CrsCod, - Gbl.Usrs.Me.UsrDat.UsrCod, - Asg->TimeUTC[Dat_START_TIME], - Asg->TimeUTC[Dat_END_TIME ], - Asg->Title, - Asg->Folder, - Txt); - Asg->AsgCod = DB_QueryINSERTandReturnCode_new ("can not create new assignment"); + Asg->AsgCod = + DB_QueryINSERTandReturnCode ("can not create new assignment", + "INSERT INTO assignments" + " (CrsCod,UsrCod,StartTime,EndTime,Title,Folder,Txt)" + " VALUES" + " (%ld,%ld,FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," + "'%s','%s','%s')", + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + Asg->TimeUTC[Dat_START_TIME], + Asg->TimeUTC[Dat_END_TIME ], + Asg->Title, + Asg->Folder, + Txt); /***** Create groups *****/ if (Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps) diff --git a/swad_attendance.c b/swad_attendance.c index 8d87cbac6..fb216be2a 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -1355,23 +1355,24 @@ void Att_RecFormAttEvent (void) void Att_CreateAttEvent (struct AttendanceEvent *Att,const char *Txt) { /***** Create a new attendance event *****/ - DB_BuildQuery ("INSERT INTO att_events" - " (CrsCod,Hidden,UsrCod," - "StartTime,EndTime,CommentTchVisible,Title,Txt)" - " VALUES" - " (%ld,'%c',%ld," - "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld),'%c','%s','%s')", - Gbl.CurrentCrs.Crs.CrsCod, - Att->Hidden ? 'Y' : - 'N', - Gbl.Usrs.Me.UsrDat.UsrCod, - Att->TimeUTC[Att_START_TIME], - Att->TimeUTC[Att_END_TIME ], - Att->CommentTchVisible ? 'Y' : - 'N', - Att->Title, - Txt); - Att->AttCod = DB_QueryINSERTandReturnCode_new ("can not create new attendance event"); + Att->AttCod = + DB_QueryINSERTandReturnCode ("can not create new attendance event", + "INSERT INTO att_events" + " (CrsCod,Hidden,UsrCod," + "StartTime,EndTime,CommentTchVisible,Title,Txt)" + " VALUES" + " (%ld,'%c',%ld," + "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld),'%c','%s','%s')", + Gbl.CurrentCrs.Crs.CrsCod, + Att->Hidden ? 'Y' : + 'N', + Gbl.Usrs.Me.UsrDat.UsrCod, + Att->TimeUTC[Att_START_TIME], + Att->TimeUTC[Att_END_TIME ], + Att->CommentTchVisible ? 'Y' : + 'N', + Att->Title, + Txt); /***** Create groups *****/ if (Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps) diff --git a/swad_centre.c b/swad_centre.c index 339256c21..a803b2cef 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -2816,20 +2816,21 @@ static void Ctr_CreateCentre (unsigned Status) extern const char *Txt_Created_new_centre_X; /***** Create a new centre *****/ - DB_BuildQuery ("INSERT INTO centres" - " (InsCod,PlcCod,Status,RequesterUsrCod," - "ShortName,FullName,WWW,PhotoAttribution)" - " VALUES" - " (%ld,%ld,%u,%ld," - "'%s','%s','%s','')", - Gbl.Ctrs.EditingCtr.InsCod, - Gbl.Ctrs.EditingCtr.PlcCod, - Status, - Gbl.Usrs.Me.UsrDat.UsrCod, - Gbl.Ctrs.EditingCtr.ShrtName, - Gbl.Ctrs.EditingCtr.FullName, - Gbl.Ctrs.EditingCtr.WWW); - Gbl.Ctrs.EditingCtr.CtrCod = DB_QueryINSERTandReturnCode_new ("can not create a new centre"); + Gbl.Ctrs.EditingCtr.CtrCod = + DB_QueryINSERTandReturnCode ("can not create a new centre", + "INSERT INTO centres" + " (InsCod,PlcCod,Status,RequesterUsrCod," + "ShortName,FullName,WWW,PhotoAttribution)" + " VALUES" + " (%ld,%ld,%u,%ld," + "'%s','%s','%s','')", + Gbl.Ctrs.EditingCtr.InsCod, + Gbl.Ctrs.EditingCtr.PlcCod, + Status, + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.Ctrs.EditingCtr.ShrtName, + Gbl.Ctrs.EditingCtr.FullName, + Gbl.Ctrs.EditingCtr.WWW); /***** Write message to show the change made and put button to go to centre created *****/ diff --git a/swad_changelog.h b/swad_changelog.h index 09b173087..24eef3340 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.22 (2018-11-02)" +#define Log_PLATFORM_VERSION "SWAD 18.11.23 (2018-11-03)" #define CSS_FILE "swad18.4.css" #define JS_FILE "swad17.17.1.js" /* + Version 18.11.23: Nov 03, 2018 Joining building and performing query into one function. (236630 lines) Version 18.11.22: Nov 02, 2018 Joining building and performing query into one function. (236589 lines) Version 18.11.21: Nov 02, 2018 Joining building and performing query into one function. (236580 lines) Version 18.11.20: Nov 02, 2018 Joining building and performing query into one function. (236585 lines) diff --git a/swad_course.c b/swad_course.c index 8d4a8fd22..12a01560e 100644 --- a/swad_course.c +++ b/swad_course.c @@ -1929,16 +1929,20 @@ static void Crs_CreateCourse (unsigned Status) extern const char *Txt_Created_new_course_X; /***** Insert new course into pending requests *****/ - DB_BuildQuery ("INSERT INTO courses" - " (DegCod,Year,InsCrsCod,Status,RequesterUsrCod,ShortName,FullName)" - " VALUES" - " (%ld,%u,'%s',%u,%ld,'%s','%s')", - Gbl.Degs.EditingCrs.DegCod,Gbl.Degs.EditingCrs.Year, - Gbl.Degs.EditingCrs.InstitutionalCrsCod, - Status, - Gbl.Usrs.Me.UsrDat.UsrCod, - Gbl.Degs.EditingCrs.ShrtName,Gbl.Degs.EditingCrs.FullName); - Gbl.Degs.EditingCrs.CrsCod = DB_QueryINSERTandReturnCode_new ("can not create a new course"); + Gbl.Degs.EditingCrs.CrsCod = + DB_QueryINSERTandReturnCode ("can not create a new course", + "INSERT INTO courses" + " (DegCod,Year,InsCrsCod,Status,RequesterUsrCod," + "ShortName,FullName)" + " VALUES" + " (%ld,%u,'%s',%u,%ld," + "'%s','%s')", + Gbl.Degs.EditingCrs.DegCod,Gbl.Degs.EditingCrs.Year, + Gbl.Degs.EditingCrs.InstitutionalCrsCod, + Status, + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.Degs.EditingCrs.ShrtName, + Gbl.Degs.EditingCrs.FullName); /***** Create success message *****/ Gbl.Alert.Type = Ale_SUCCESS; diff --git a/swad_database.c b/swad_database.c index 6570e3d3c..d71a525ff 100644 --- a/swad_database.c +++ b/swad_database.c @@ -3244,19 +3244,31 @@ void DB_QueryINSERT_old (char **Query,const char *MsgError) /** Make an INSERT query in database and return code of last inserted item ***/ /*****************************************************************************/ -long DB_QueryINSERTandReturnCode_new (const char *MsgError) +long DB_QueryINSERTandReturnCode (const char *MsgError,const char *fmt,...) { + va_list ap; + int NumBytesPrinted; + char *Query = NULL; int Result; + 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 (); + /***** Check that query string pointer does point to an allocated string *****/ - if (Gbl.DB.QueryPtr == NULL) + if (Query == NULL) Lay_ShowErrorAndExit ("Wrong query string."); /***** Query database and free query string pointer *****/ - Result = mysql_query (&Gbl.mysql,Gbl.DB.QueryPtr); // Returns 0 on success - free ((void *) Gbl.DB.QueryPtr); - Gbl.DB.QueryPtr = NULL; + Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success + free ((void *) Query); + Query = NULL; if (Result) DB_ExitOnMySQLError (MsgError); diff --git a/swad_database.h b/swad_database.h index bcf2207b4..e2f2879d2 100644 --- a/swad_database.h +++ b/swad_database.h @@ -51,7 +51,7 @@ unsigned long DB_QueryCOUNT_old (char **Query,const char *MsgError); void DB_QueryINSERT (const char *MsgError,const char *fmt,...); void DB_QueryINSERT_old (char **Query,const char *MsgError); -long DB_QueryINSERTandReturnCode_new (const char *MsgError); +long DB_QueryINSERTandReturnCode (const char *MsgError,const char *fmt,...); void DB_QueryREPLACE (const char *MsgError,const char *fmt,...); diff --git a/swad_degree.c b/swad_degree.c index 0b494cb34..45eca5b38 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -1144,17 +1144,18 @@ static void Deg_CreateDegree (unsigned Status) extern const char *Txt_Created_new_degree_X; /***** Create a new degree *****/ - DB_BuildQuery ("INSERT INTO degrees (CtrCod,DegTypCod,Status," - "RequesterUsrCod,ShortName,FullName,WWW)" - " VALUES (%ld,%ld,%u,%ld,'%s','%s','%s')", - Gbl.Degs.EditingDeg.CtrCod, - Gbl.Degs.EditingDeg.DegTypCod, - Status, - Gbl.Usrs.Me.UsrDat.UsrCod, - Gbl.Degs.EditingDeg.ShrtName, - Gbl.Degs.EditingDeg.FullName, - Gbl.Degs.EditingDeg.WWW); - Gbl.Degs.EditingDeg.DegCod = DB_QueryINSERTandReturnCode_new ("can not create a new degree"); + Gbl.Degs.EditingDeg.DegCod = + DB_QueryINSERTandReturnCode ("can not create a new degree", + "INSERT INTO degrees (CtrCod,DegTypCod,Status," + "RequesterUsrCod,ShortName,FullName,WWW)" + " VALUES (%ld,%ld,%u,%ld,'%s','%s','%s')", + Gbl.Degs.EditingDeg.CtrCod, + Gbl.Degs.EditingDeg.DegTypCod, + Status, + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.Degs.EditingDeg.ShrtName, + Gbl.Degs.EditingDeg.FullName, + Gbl.Degs.EditingDeg.WWW); /***** Write message to show the change made and put button to go to degree created *****/ diff --git a/swad_enrolment.c b/swad_enrolment.c index b62cd8de2..060abcbc8 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -2054,16 +2054,15 @@ void Enr_SignUpInCrs (void) DB_QueryUPDATE_new ("can not update enrolment request"); } else // No request in database for this user in this course - { - DB_BuildQuery ("INSERT INTO crs_usr_requests" - " (CrsCod,UsrCod,Role,RequestTime)" - " VALUES" - " (%ld,%ld,%u,NOW())", - Gbl.CurrentCrs.Crs.CrsCod, - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) RoleFromForm); - ReqCod = DB_QueryINSERTandReturnCode_new ("can not save enrolment request"); - } + ReqCod = + DB_QueryINSERTandReturnCode ("can not save enrolment request", + "INSERT INTO crs_usr_requests" + " (CrsCod,UsrCod,Role,RequestTime)" + " VALUES" + " (%ld,%ld,%u,NOW())", + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) RoleFromForm); /***** Show confirmation message *****/ snprintf (Gbl.Alert.Txt,sizeof (Gbl.Alert.Txt), diff --git a/swad_exam.c b/swad_exam.c index 28dc611f0..fc48b4170 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -734,34 +734,35 @@ static long Exa_AddExamAnnouncementToDB (void) long ExaCod; /***** Add exam announcement *****/ - DB_BuildQuery ("INSERT INTO exam_announcements " - "(CrsCod,Status,NumNotif,CrsFullName,Year,ExamSession," - "CallDate,ExamDate,Duration," - "Place,ExamMode,Structure,DocRequired,MatRequired,MatAllowed,OtherInfo)" - " VALUES " - "(%ld,%u,0,'%s',%u,'%s'," - "NOW(),'%04u-%02u-%02u %02u:%02u:00','%02u:%02u:00','%s'," - "'%s','%s','%s','%s','%s','%s')", - Gbl.CurrentCrs.Crs.CrsCod, - (unsigned) Exa_VISIBLE_EXAM_ANNOUNCEMENT, - Gbl.ExamAnns.ExaDat.CrsFullName, - Gbl.ExamAnns.ExaDat.Year, - Gbl.ExamAnns.ExaDat.Session, - Gbl.ExamAnns.ExaDat.ExamDate.Year, - Gbl.ExamAnns.ExaDat.ExamDate.Month, - Gbl.ExamAnns.ExaDat.ExamDate.Day, - Gbl.ExamAnns.ExaDat.StartTime.Hour, - Gbl.ExamAnns.ExaDat.StartTime.Minute, - Gbl.ExamAnns.ExaDat.Duration.Hour, - Gbl.ExamAnns.ExaDat.Duration.Minute, - Gbl.ExamAnns.ExaDat.Place, - Gbl.ExamAnns.ExaDat.Mode, - Gbl.ExamAnns.ExaDat.Structure, - Gbl.ExamAnns.ExaDat.DocRequired, - Gbl.ExamAnns.ExaDat.MatRequired, - Gbl.ExamAnns.ExaDat.MatAllowed, - Gbl.ExamAnns.ExaDat.OtherInfo); - ExaCod = DB_QueryINSERTandReturnCode_new ("can not create a new exam announcement"); + ExaCod = + DB_QueryINSERTandReturnCode ("can not create a new exam announcement", + "INSERT INTO exam_announcements " + "(CrsCod,Status,NumNotif,CrsFullName,Year,ExamSession," + "CallDate,ExamDate,Duration," + "Place,ExamMode,Structure,DocRequired,MatRequired,MatAllowed,OtherInfo)" + " VALUES " + "(%ld,%u,0,'%s',%u,'%s'," + "NOW(),'%04u-%02u-%02u %02u:%02u:00','%02u:%02u:00','%s'," + "'%s','%s','%s','%s','%s','%s')", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) Exa_VISIBLE_EXAM_ANNOUNCEMENT, + Gbl.ExamAnns.ExaDat.CrsFullName, + Gbl.ExamAnns.ExaDat.Year, + Gbl.ExamAnns.ExaDat.Session, + Gbl.ExamAnns.ExaDat.ExamDate.Year, + Gbl.ExamAnns.ExaDat.ExamDate.Month, + Gbl.ExamAnns.ExaDat.ExamDate.Day, + Gbl.ExamAnns.ExaDat.StartTime.Hour, + Gbl.ExamAnns.ExaDat.StartTime.Minute, + Gbl.ExamAnns.ExaDat.Duration.Hour, + Gbl.ExamAnns.ExaDat.Duration.Minute, + Gbl.ExamAnns.ExaDat.Place, + Gbl.ExamAnns.ExaDat.Mode, + Gbl.ExamAnns.ExaDat.Structure, + Gbl.ExamAnns.ExaDat.DocRequired, + Gbl.ExamAnns.ExaDat.MatRequired, + Gbl.ExamAnns.ExaDat.MatAllowed, + Gbl.ExamAnns.ExaDat.OtherInfo); return ExaCod; } diff --git a/swad_file_browser.c b/swad_file_browser.c index 3f4be3acf..c59cdb9de 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -11831,21 +11831,22 @@ long Brw_AddPathToDB (long PublisherUsrCod,Brw_FileType_t FileType, long ZoneUsrCod = Brw_GetZoneUsrCodForFiles (); /***** Add path to the database *****/ - DB_BuildQuery ("INSERT INTO files" - " (FileBrowser,Cod,ZoneUsrCod," - "PublisherUsrCod,FileType,Path,Hidden,Public,License)" - " VALUES" - " (%u,%ld,%ld," - "%ld,%u,'%s','N','%c',%u)", - (unsigned) Brw_FileBrowserForDB_files[Gbl.FileBrowser.Type], - Cod,ZoneUsrCod, - PublisherUsrCod, - (unsigned) FileType, - FullPathInTree, - IsPublic ? 'Y' : - 'N', - (unsigned) License); - return DB_QueryINSERTandReturnCode_new ("can not add path to database"); + return + DB_QueryINSERTandReturnCode ("can not add path to database", + "INSERT INTO files" + " (FileBrowser,Cod,ZoneUsrCod," + "PublisherUsrCod,FileType,Path,Hidden,Public,License)" + " VALUES" + " (%u,%ld,%ld," + "%ld,%u,'%s','N','%c',%u)", + (unsigned) Brw_FileBrowserForDB_files[Gbl.FileBrowser.Type], + Cod,ZoneUsrCod, + PublisherUsrCod, + (unsigned) FileType, + FullPathInTree, + IsPublic ? 'Y' : + 'N', + (unsigned) License); } /*****************************************************************************/ diff --git a/swad_forum.c b/swad_forum.c index 2e7e63fc2..1fccde781 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -507,18 +507,19 @@ static long For_InsertForumPst (long ThrCod,long UsrCod, Img_MoveImageToDefinitiveDirectory (Image); /***** Insert forum post in the database *****/ - DB_BuildQuery ("INSERT INTO forum_post" - " (ThrCod,UsrCod,CreatTime,ModifTime,NumNotif," - "Subject,Content,ImageName,ImageTitle,ImageURL)" - " VALUES" - " (%ld,%ld,NOW(),NOW(),0," - "'%s','%s','%s','%s','%s')", - ThrCod,UsrCod, - Subject,Content, - Image->Name, - Image->Title ? Image->Title : "", - Image->URL ? Image->URL : ""); - PstCod = DB_QueryINSERTandReturnCode_new ("can not create a new post in a forum"); + PstCod = + DB_QueryINSERTandReturnCode ("can not create a new post in a forum", + "INSERT INTO forum_post" + " (ThrCod,UsrCod,CreatTime,ModifTime,NumNotif," + "Subject,Content,ImageName,ImageTitle,ImageURL)" + " VALUES" + " (%ld,%ld,NOW(),NOW(),0," + "'%s','%s','%s','%s','%s')", + ThrCod,UsrCod, + Subject,Content, + Image->Name, + Image->Title ? Image->Title : "", + Image->URL ? Image->URL : ""); return PstCod; } @@ -595,14 +596,15 @@ static unsigned For_NumPstsInThrWithPstCod (long PstCod,long *ThrCod) static long For_InsertForumThread (long FirstPstCod) { /***** Insert new thread in the database *****/ - DB_BuildQuery ("INSERT INTO forum_thread" - " (ForumType,Location,FirstPstCod,LastPstCod)" - " VALUES" - " (%u,%ld,%ld,%ld)", - (unsigned) Gbl.Forum.ForumSelected.Type, - Gbl.Forum.ForumSelected.Location, - FirstPstCod,FirstPstCod); - return DB_QueryINSERTandReturnCode_new ("can not create a new thread in a forum"); + return + DB_QueryINSERTandReturnCode ("can not create a new thread in a forum", + "INSERT INTO forum_thread" + " (ForumType,Location,FirstPstCod,LastPstCod)" + " VALUES" + " (%u,%ld,%ld,%ld)", + (unsigned) Gbl.Forum.ForumSelected.Type, + Gbl.Forum.ForumSelected.Location, + FirstPstCod,FirstPstCod); } /*****************************************************************************/ diff --git a/swad_game.c b/swad_game.c index 95063ed28..ee61fcc7b 100644 --- a/swad_game.c +++ b/swad_game.c @@ -2180,20 +2180,21 @@ static void Gam_CreateGame (struct Game *Game,const char *Txt) extern const char *Txt_Created_new_game_X; /***** Create a new game *****/ - DB_BuildQuery ("INSERT INTO games" - " (Scope,Cod,Hidden,Roles,UsrCod,StartTime,EndTime,Title,Txt)" - " VALUES" - " ('%s',%ld,'N',%u,%ld," - "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," - "'%s','%s')", - Sco_ScopeDB[Game->Scope],Game->Cod, - Game->Roles, - Gbl.Usrs.Me.UsrDat.UsrCod, - Game->TimeUTC[Gam_START_TIME], - Game->TimeUTC[Gam_END_TIME ], - Game->Title, - Txt); - Game->GamCod = DB_QueryINSERTandReturnCode_new ("can not create new game"); + Game->GamCod = + DB_QueryINSERTandReturnCode ("can not create new game", + "INSERT INTO games" + " (Scope,Cod,Hidden,Roles,UsrCod,StartTime,EndTime,Title,Txt)" + " VALUES" + " ('%s',%ld,'N',%u,%ld," + "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," + "'%s','%s')", + Sco_ScopeDB[Game->Scope],Game->Cod, + Game->Roles, + Gbl.Usrs.Me.UsrDat.UsrCod, + Game->TimeUTC[Gam_START_TIME], + Game->TimeUTC[Gam_END_TIME ], + Game->Title, + Txt); /***** Create groups *****/ if (Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps) diff --git a/swad_group.c b/swad_group.c index 679d10559..7ddb1912b 100644 --- a/swad_group.c +++ b/swad_group.c @@ -3825,19 +3825,20 @@ static bool Grp_CheckIfGroupNameExists (long GrpTypCod,const char *GrpName,long static void Grp_CreateGroupType (void) { /***** Create a new group type *****/ - DB_BuildQuery ("INSERT INTO crs_grp_types" - " (CrsCod,GrpTypName,Mandatory,Multiple,MustBeOpened,OpenTime)" - " VALUES" - " (%ld,'%s','%c','%c','%c',FROM_UNIXTIME(%ld))", - Gbl.CurrentCrs.Crs.CrsCod,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName, - Gbl.CurrentCrs.Grps.GrpTyp.MandatoryEnrolment ? 'Y' : - 'N', - Gbl.CurrentCrs.Grps.GrpTyp.MultipleEnrolment ? 'Y' : - 'N', - Gbl.CurrentCrs.Grps.GrpTyp.MustBeOpened ? 'Y' : - 'N', - (long) Gbl.CurrentCrs.Grps.GrpTyp.OpenTimeUTC); - Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod = DB_QueryINSERTandReturnCode_new ("can not create type of group"); + Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod = + DB_QueryINSERTandReturnCode ("can not create type of group", + "INSERT INTO crs_grp_types" + " (CrsCod,GrpTypName,Mandatory,Multiple,MustBeOpened,OpenTime)" + " VALUES" + " (%ld,'%s','%c','%c','%c',FROM_UNIXTIME(%ld))", + Gbl.CurrentCrs.Crs.CrsCod,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName, + Gbl.CurrentCrs.Grps.GrpTyp.MandatoryEnrolment ? 'Y' : + 'N', + Gbl.CurrentCrs.Grps.GrpTyp.MultipleEnrolment ? 'Y' : + 'N', + Gbl.CurrentCrs.Grps.GrpTyp.MustBeOpened ? 'Y' : + 'N', + (long) Gbl.CurrentCrs.Grps.GrpTyp.OpenTimeUTC); } /*****************************************************************************/ diff --git a/swad_institution.c b/swad_institution.c index 3e773db40..3b07d3387 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -2412,17 +2412,18 @@ static void Ins_CreateInstitution (unsigned Status) extern const char *Txt_Created_new_institution_X; /***** Create a new institution *****/ - DB_BuildQuery ("INSERT INTO institutions" - " (CtyCod,Status,RequesterUsrCod,ShortName,FullName,WWW)" - " VALUES" - " (%ld,%u,%ld,'%s','%s','%s')", - Gbl.Inss.EditingIns.CtyCod, - Status, - Gbl.Usrs.Me.UsrDat.UsrCod, - Gbl.Inss.EditingIns.ShrtName, - Gbl.Inss.EditingIns.FullName, - Gbl.Inss.EditingIns.WWW); - Gbl.Inss.EditingIns.InsCod = DB_QueryINSERTandReturnCode_new ("can not create institution"); + Gbl.Inss.EditingIns.InsCod = + DB_QueryINSERTandReturnCode ("can not create institution", + "INSERT INTO institutions" + " (CtyCod,Status,RequesterUsrCod,ShortName,FullName,WWW)" + " VALUES" + " (%ld,%u,%ld,'%s','%s','%s')", + Gbl.Inss.EditingIns.CtyCod, + Status, + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.Inss.EditingIns.ShrtName, + Gbl.Inss.EditingIns.FullName, + Gbl.Inss.EditingIns.WWW); /***** Write message to show the change made and put button to go to institution created *****/ diff --git a/swad_message.c b/swad_message.c index 3b0d88b50..af1abbff8 100644 --- a/swad_message.c +++ b/swad_message.c @@ -1313,15 +1313,16 @@ static long Msg_InsertNewMsg (const char *Subject,const char *Content, Img_MoveImageToDefinitiveDirectory (Image); /***** Insert message subject and content in the database *****/ - DB_BuildQuery ("INSERT INTO msg_content" - " (Subject,Content,ImageName,ImageTitle,ImageURL)" - " VALUES" - " ('%s','%s','%s','%s','%s')", - Subject,Content, - Image->Name, - Image->Title ? Image->Title : "", - Image->URL ? Image->URL : ""); - MsgCod = DB_QueryINSERTandReturnCode_new ("can not create message"); + MsgCod = + DB_QueryINSERTandReturnCode ("can not create message", + "INSERT INTO msg_content" + " (Subject,Content,ImageName,ImageTitle,ImageURL)" + " VALUES" + " ('%s','%s','%s','%s','%s')", + Subject,Content, + Image->Name, + Image->Title ? Image->Title : "", + Image->URL ? Image->URL : ""); /***** Insert message in sent messages *****/ DB_QueryINSERT ("can not create message", diff --git a/swad_notice.c b/swad_notice.c index 2f841928e..37838ac28 100644 --- a/swad_notice.c +++ b/swad_notice.c @@ -165,13 +165,15 @@ void Not_ReceiveNotice (void) static long Not_InsertNoticeInDB (const char *Content) { /***** Insert notice in the database *****/ - DB_BuildQuery ("INSERT INTO notices" - " (CrsCod,UsrCod,CreatTime,Content,Status)" - " VALUES" - " (%ld,%ld,NOW(),'%s',%u)", - Gbl.CurrentCrs.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod, - Content,(unsigned) Not_ACTIVE_NOTICE); - return DB_QueryINSERTandReturnCode_new ("can not create notice"); + return + DB_QueryINSERTandReturnCode ("can not create notice", + "INSERT INTO notices" + " (CrsCod,UsrCod,CreatTime,Content,Status)" + " VALUES" + " (%ld,%ld,NOW(),'%s',%u)", + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + Content,(unsigned) Not_ACTIVE_NOTICE); } /*****************************************************************************/ diff --git a/swad_project.c b/swad_project.c index c35f5393d..a8cc0d8b1 100644 --- a/swad_project.c +++ b/swad_project.c @@ -3314,30 +3314,31 @@ static void Prj_CreateProject (struct Project *Prj) Prj->ModifTime = Gbl.StartExecutionTimeUTC; /***** Create a new project *****/ - DB_BuildQuery ("INSERT INTO projects" - " (CrsCod,DptCod,Hidden,Preassigned,NumStds,Proposal," - "CreatTime,ModifTime," - "Title,Description,Knowledge,Materials,URL)" - " VALUES" - " (%ld,%ld,'%c','%c',%u,'%s'," - "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," - "'%s','%s','%s','%s','%s')", - Gbl.CurrentCrs.Crs.CrsCod, - Prj->DptCod, - Prj->Hidden == Prj_HIDDEN ? 'Y' : - 'N', - Prj->Preassigned == Prj_PREASSIGNED ? 'Y' : - 'N', - Prj->NumStds, - Prj_Proposal_DB[Prj->Proposal], - Prj->CreatTime, - Prj->ModifTime, - Prj->Title, - Prj->Description, - Prj->Knowledge, - Prj->Materials, - Prj->URL); - Prj->PrjCod = DB_QueryINSERTandReturnCode_new ("can not create new project"); + Prj->PrjCod = + DB_QueryINSERTandReturnCode ("can not create new project", + "INSERT INTO projects" + " (CrsCod,DptCod,Hidden,Preassigned,NumStds,Proposal," + "CreatTime,ModifTime," + "Title,Description,Knowledge,Materials,URL)" + " VALUES" + " (%ld,%ld,'%c','%c',%u,'%s'," + "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," + "'%s','%s','%s','%s','%s')", + Gbl.CurrentCrs.Crs.CrsCod, + Prj->DptCod, + Prj->Hidden == Prj_HIDDEN ? 'Y' : + 'N', + Prj->Preassigned == Prj_PREASSIGNED ? 'Y' : + 'N', + Prj->NumStds, + Prj_Proposal_DB[Prj->Proposal], + Prj->CreatTime, + Prj->ModifTime, + Prj->Title, + Prj->Description, + Prj->Knowledge, + Prj->Materials, + Prj->URL); /***** Insert creator as first tutor *****/ DB_QueryINSERT ("can not add tutor", diff --git a/swad_social.c b/swad_social.c index a0f7a610d..b7d6a6690 100644 --- a/swad_social.c +++ b/swad_social.c @@ -1950,12 +1950,14 @@ void Soc_StoreAndPublishSocialNote (Soc_NoteType_t NoteType,long Cod,struct Soci } /***** Store social note *****/ - DB_BuildQuery ("INSERT INTO social_notes" - " (NoteType,Cod,UsrCod,HieCod,Unavailable,TimeNote)" - " VALUES" - " (%u,%ld,%ld,%ld,'N',NOW())", - (unsigned) NoteType,Cod,Gbl.Usrs.Me.UsrDat.UsrCod,HieCod); - SocPub->NotCod = DB_QueryINSERTandReturnCode_new ("can not create new social note"); + SocPub->NotCod = + DB_QueryINSERTandReturnCode ("can not create new social note", + "INSERT INTO social_notes" + " (NoteType,Cod,UsrCod,HieCod,Unavailable,TimeNote)" + " VALUES" + " (%u,%ld,%ld,%ld,'N',NOW())", + (unsigned) NoteType, + Cod,Gbl.Usrs.Me.UsrDat.UsrCod,HieCod); /***** Publish social note in timeline *****/ SocPub->PublisherCod = Gbl.Usrs.Me.UsrDat.UsrCod; @@ -2122,14 +2124,15 @@ void Soc_MarkSocialNotesChildrenOfFolderAsUnavailable (const char *Path) static void Soc_PublishSocialNoteInTimeline (struct SocialPublishing *SocPub) { /***** Publish social note in timeline *****/ - DB_BuildQuery ("INSERT INTO social_pubs" - " (NotCod,PublisherCod,PubType,TimePublish)" - " VALUES" - " (%ld,%ld,%u,NOW())", - SocPub->NotCod, - SocPub->PublisherCod, - (unsigned) SocPub->PubType); - SocPub->PubCod = DB_QueryINSERTandReturnCode_new ("can not publish social note"); + SocPub->PubCod = + DB_QueryINSERTandReturnCode ("can not publish social note", + "INSERT INTO social_pubs" + " (NotCod,PublisherCod,PubType,TimePublish)" + " VALUES" + " (%ld,%ld,%u,NOW())", + SocPub->NotCod, + SocPub->PublisherCod, + (unsigned) SocPub->PubType); } /*****************************************************************************/ @@ -2300,17 +2303,18 @@ static long Soc_ReceiveSocialPost (void) /***** Publish *****/ /* Insert post content in the database */ - DB_BuildQuery ("INSERT INTO social_posts" - " (Content,ImageName,ImageTitle,ImageURL)" - " VALUES" - " ('%s','%s','%s','%s')", - Content, - Image.Name, - (Image.Name[0] && // Save image title only if image attached - Image.Title) ? Image.Title : "", - (Image.Name[0] && // Save image URL only if image attached - Image.URL ) ? Image.URL : ""); - PstCod = DB_QueryINSERTandReturnCode_new ("can not create post"); + PstCod = + DB_QueryINSERTandReturnCode ("can not create post", + "INSERT INTO social_posts" + " (Content,ImageName,ImageTitle,ImageURL)" + " VALUES" + " ('%s','%s','%s','%s')", + Content, + Image.Name, + (Image.Name[0] && // Save image title only if image attached + Image.Title) ? Image.Title : "", + (Image.Name[0] && // Save image URL only if image attached + Image.URL ) ? Image.URL : ""); /* Insert post in social notes */ Soc_StoreAndPublishSocialNote (Soc_NOTE_SOCIAL_POST,PstCod,&SocPub); diff --git a/swad_statistic.c b/swad_statistic.c index b2016e296..d9ea4e3fc 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -293,24 +293,25 @@ void Sta_LogAccess (const char *Comments) /***** Insert access into database *****/ /* Log access in historical log (log_full) */ - DB_BuildQuery ("INSERT INTO log_full " - "(ActCod,CtyCod,InsCod,CtrCod,DegCod,CrsCod,UsrCod," - "Role,ClickTime,TimeToGenerate,TimeToSend,IP)" - " VALUES " - "(%ld,%ld,%ld,%ld,%ld,%ld,%ld," - "%u,NOW(),%ld,%ld,'%s')", - ActCod, - Gbl.CurrentCty.Cty.CtyCod, - Gbl.CurrentIns.Ins.InsCod, - Gbl.CurrentCtr.Ctr.CtrCod, - Gbl.CurrentDeg.Deg.DegCod, - Gbl.CurrentCrs.Crs.CrsCod, - Gbl.Usrs.Me.UsrDat.UsrCod, - (unsigned) RoleToStore, - Gbl.TimeGenerationInMicroseconds, - Gbl.TimeSendInMicroseconds, - Gbl.IP); - LogCod = DB_QueryINSERTandReturnCode_new ("can not log access (full)"); + LogCod = + DB_QueryINSERTandReturnCode ("can not log access (full)", + "INSERT INTO log_full " + "(ActCod,CtyCod,InsCod,CtrCod,DegCod,CrsCod,UsrCod," + "Role,ClickTime,TimeToGenerate,TimeToSend,IP)" + " VALUES " + "(%ld,%ld,%ld,%ld,%ld,%ld,%ld," + "%u,NOW(),%ld,%ld,'%s')", + ActCod, + Gbl.CurrentCty.Cty.CtyCod, + Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentCtr.Ctr.CtrCod, + Gbl.CurrentDeg.Deg.DegCod, + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + (unsigned) RoleToStore, + Gbl.TimeGenerationInMicroseconds, + Gbl.TimeSendInMicroseconds, + Gbl.IP); /* Log access in recent log (log_recent) */ DB_QueryINSERT ("can not log access (recent)", diff --git a/swad_survey.c b/swad_survey.c index 08df9afd9..16cbcd0b8 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -2253,20 +2253,21 @@ static void Svy_CreateSurvey (struct Survey *Svy,const char *Txt) extern const char *Txt_Created_new_survey_X; /***** Create a new survey *****/ - DB_BuildQuery ("INSERT INTO surveys" - " (Scope,Cod,Hidden,Roles,UsrCod,StartTime,EndTime,Title,Txt)" - " VALUES" - " ('%s',%ld,'N',%u,%ld," - "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," - "'%s','%s')", - Sco_ScopeDB[Svy->Scope],Svy->Cod, - Svy->Roles, - Gbl.Usrs.Me.UsrDat.UsrCod, - Svy->TimeUTC[Svy_START_TIME], - Svy->TimeUTC[Svy_END_TIME ], - Svy->Title, - Txt); - Svy->SvyCod = DB_QueryINSERTandReturnCode_new ("can not create new survey"); + Svy->SvyCod = + DB_QueryINSERTandReturnCode ("can not create new survey", + "INSERT INTO surveys" + " (Scope,Cod,Hidden,Roles,UsrCod,StartTime,EndTime,Title,Txt)" + " VALUES" + " ('%s',%ld,'N',%u,%ld," + "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld)," + "'%s','%s')", + Sco_ScopeDB[Svy->Scope],Svy->Cod, + Svy->Roles, + Gbl.Usrs.Me.UsrDat.UsrCod, + Svy->TimeUTC[Svy_START_TIME], + Svy->TimeUTC[Svy_END_TIME ], + Svy->Title, + Txt); /***** Create groups *****/ if (Gbl.CurrentCrs.Grps.LstGrpsSel.NumGrps) @@ -3022,13 +3023,14 @@ void Svy_ReceiveQst (void) SvyQst.QstInd = Svy_GetNextQuestionIndexInSvy (SvyCod); /* Insert question in the table of questions */ - DB_BuildQuery ("INSERT INTO svy_questions" - " (SvyCod,QstInd,AnsType,Stem)" - " VALUES" - " (%ld,%u,'%s','%s')", - SvyCod,SvyQst.QstInd, - Svy_StrAnswerTypesDB[SvyQst.AnswerType],Txt); - SvyQst.QstCod = DB_QueryINSERTandReturnCode_new ("can not create question"); + SvyQst.QstCod = + DB_QueryINSERTandReturnCode ("can not create question", + "INSERT INTO svy_questions" + " (SvyCod,QstInd,AnsType,Stem)" + " VALUES" + " (%ld,%u,'%s','%s')", + SvyCod,SvyQst.QstInd, + Svy_StrAnswerTypesDB[SvyQst.AnswerType],Txt); } else // It's an existing question { diff --git a/swad_test.c b/swad_test.c index f32aa4127..0d85ba61f 100644 --- a/swad_test.c +++ b/swad_test.c @@ -6301,12 +6301,13 @@ static long Tst_GetTagCodFromTagTxt (const char *TagTxt) static long Tst_CreateNewTag (long CrsCod,const char *TagTxt) { /***** Insert new tag into tst_tags table *****/ - DB_BuildQuery ("INSERT INTO tst_tags" - " (CrsCod,ChangeTime,TagTxt,TagHidden)" - " VALUES" - " (%ld,NOW(),'%s','N')", - CrsCod,TagTxt); - return DB_QueryINSERTandReturnCode_new ("can not create new tag"); + return + DB_QueryINSERTandReturnCode ("can not create new tag", + "INSERT INTO tst_tags" + " (CrsCod,ChangeTime,TagTxt,TagHidden)" + " VALUES" + " (%ld,NOW(),'%s','N')", + CrsCod,TagTxt); } /*****************************************************************************/ @@ -6541,24 +6542,25 @@ static void Tst_InsertOrUpdateQstIntoDB (void) if (Gbl.Test.QstCod < 0) // It's a new question { /***** Insert question in the table of questions *****/ - DB_BuildQuery ("INSERT INTO tst_questions" - " (CrsCod,EditTime,AnsType,Shuffle," - "Stem,Feedback,ImageName,ImageTitle,ImageURL," - "NumHits,Score)" - " VALUES" - " (%ld,NOW(),'%s','%c'," - "'%s','%s','%s','%s','%s'," - "0,0)", - Gbl.CurrentCrs.Crs.CrsCod, - Tst_StrAnswerTypesDB[Gbl.Test.AnswerType], - Gbl.Test.Shuffle ? 'Y' : - 'N', - Gbl.Test.Stem.Text, - Gbl.Test.Feedback.Text ? Gbl.Test.Feedback.Text : "", - Gbl.Test.Image.Name, - Gbl.Test.Image.Title ? Gbl.Test.Image.Title : "", - Gbl.Test.Image.URL ? Gbl.Test.Image.URL : ""); - Gbl.Test.QstCod = DB_QueryINSERTandReturnCode_new ("can not create question"); + Gbl.Test.QstCod = + DB_QueryINSERTandReturnCode ("can not create question", + "INSERT INTO tst_questions" + " (CrsCod,EditTime,AnsType,Shuffle," + "Stem,Feedback,ImageName,ImageTitle,ImageURL," + "NumHits,Score)" + " VALUES" + " (%ld,NOW(),'%s','%c'," + "'%s','%s','%s','%s','%s'," + "0,0)", + Gbl.CurrentCrs.Crs.CrsCod, + Tst_StrAnswerTypesDB[Gbl.Test.AnswerType], + Gbl.Test.Shuffle ? 'Y' : + 'N', + Gbl.Test.Stem.Text, + Gbl.Test.Feedback.Text ? Gbl.Test.Feedback.Text : "", + Gbl.Test.Image.Name, + Gbl.Test.Image.Title ? Gbl.Test.Image.Title : "", + Gbl.Test.Image.URL ? Gbl.Test.Image.URL : ""); /* Update image status */ if (Gbl.Test.Image.Name[0]) @@ -7593,16 +7595,17 @@ void Tst_SelDatesToSeeMyTestResults (void) static long Tst_CreateTestResultInDB (void) { /***** Insert new test result into table *****/ - DB_BuildQuery ("INSERT INTO tst_exams" - " (CrsCod,UsrCod,AllowTeachers,TstTime,NumQsts)" - " VALUES" - " (%ld,%ld,'%c',NOW(),%u)", - Gbl.CurrentCrs.Crs.CrsCod, - Gbl.Usrs.Me.UsrDat.UsrCod, - Gbl.Test.AllowTeachers ? 'Y' : - 'N', - Gbl.Test.NumQsts); - return DB_QueryINSERTandReturnCode_new ("can not create new test result"); + return + DB_QueryINSERTandReturnCode ("can not create new test result", + "INSERT INTO tst_exams" + " (CrsCod,UsrCod,AllowTeachers,TstTime,NumQsts)" + " VALUES" + " (%ld,%ld,'%c',NOW(),%u)", + Gbl.CurrentCrs.Crs.CrsCod, + Gbl.Usrs.Me.UsrDat.UsrCod, + Gbl.Test.AllowTeachers ? 'Y' : + 'N', + Gbl.Test.NumQsts); } /*****************************************************************************/ diff --git a/swad_web_service.c b/swad_web_service.c index 8de8ec1ad..169656da4 100644 --- a/swad_web_service.c +++ b/swad_web_service.c @@ -3424,16 +3424,16 @@ static int Svc_SendMessageToUsr (long OriginalMsgCod, if (!MsgAlreadyInserted) // The message is inserted only once in the table of messages sent { /***** Insert message subject and body in the database *****/ - /* Build query */ - DB_BuildQuery ("INSERT INTO msg_content" - " (Subject,Content,ImageName,ImageTitle,ImageURL)" - " VALUES" - " ('%s','%s','','','')", - Subject,Content); /* Get the code of the inserted item */ - NewMsgCod = DB_QueryINSERTandReturnCode_new ("can not create message"); + NewMsgCod = + DB_QueryINSERTandReturnCode ("can not create message", + "INSERT INTO msg_content" + " (Subject,Content,ImageName,ImageTitle,ImageURL)" + " VALUES" + " ('%s','%s','','','')", + Subject,Content); - /***** Insert message in sent messages *****/ + /* Insert message in sent messages */ DB_QueryINSERT ("can not create message", "INSERT INTO msg_snt" " (MsgCod,CrsCod,UsrCod,Expanded,CreatTime)" @@ -3528,16 +3528,15 @@ int swad__sendNotice (struct soap *soap, "Requester must be a teacher"); /***** Insert notice in the database *****/ - /* Build query */ - DB_BuildQuery ("INSERT INTO notices" - " (CrsCod,UsrCod,CreatTime,Content,Status)" - " VALUES" - " (%ld,%ld,NOW(),'%s',%u)", - Gbl.CurrentCrs.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod, - body,(unsigned) Not_ACTIVE_NOTICE); - /* Get the code of the inserted item */ - NotCod = DB_QueryINSERTandReturnCode_new ("can not create message"); + NotCod = + DB_QueryINSERTandReturnCode ("can not create message", + "INSERT INTO notices" + " (CrsCod,UsrCod,CreatTime,Content,Status)" + " VALUES" + " (%ld,%ld,NOW(),'%s',%u)", + Gbl.CurrentCrs.Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod, + body,(unsigned) Not_ACTIVE_NOTICE); /***** Create notifications *****/ // TODO: create notifications