]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/sql_get.c
ebl Implement project 2, about new restore menu
[bacula/bacula] / bacula / src / cats / sql_get.c
index 1d76c7806b7647cf3dc0d16925865e6c84f4f83c..8190fa84ee6a6023eb4bd69c1c51c48f7ded5c8c 100644 (file)
@@ -429,7 +429,7 @@ int db_get_job_volume_parameters(JCR *jcr, B_DB *mdb, JobId_t JobId, VOL_PARAMS
    Mmsg(mdb->cmd,
 "SELECT VolumeName,MediaType,FirstIndex,LastIndex,StartFile,"
 "JobMedia.EndFile,StartBlock,JobMedia.EndBlock,Copy,"
-"Slot,StorageId"
+"Slot,StorageId,InChanger"
 " FROM JobMedia,Media WHERE JobMedia.JobId=%s"
 " AND JobMedia.MediaId=Media.MediaId ORDER BY VolIndex,JobMediaId",
         edit_int64(JobId, ed1));
@@ -470,6 +470,7 @@ int db_get_job_volume_parameters(JCR *jcr, B_DB *mdb, JobId_t JobId, VOL_PARAMS
 //             Vols[i].Copy = str_to_uint64(row[8]);
                Vols[i].Slot = str_to_uint64(row[9]);
                StorageId = str_to_uint64(row[10]);
+               Vols[i].InChanger = str_to_uint64(row[11]);
                Vols[i].Storage[0] = 0;
                SId[i] = StorageId;
             }
@@ -1102,7 +1103,7 @@ bool db_accurate_get_jobids(JCR *jcr, B_DB *mdb,
    char clientid[50], jobid[50], filesetid[50];
    char date[MAX_TIME_LENGTH];
    POOL_MEM query(PM_FNAME);
-   bstrutime(date, sizeof(date),  time(NULL) + 1);
+   bstrutime(date, sizeof(date),  jr->JobTDate + 1);
    jobids[0]='\0';
 
    /* First, find the last good Full backup for this job/client/fileset */
@@ -1133,11 +1134,13 @@ bool db_accurate_get_jobids(JCR *jcr, B_DB *mdb,
   "WHERE ClientId = %s "
     "AND Level='D' AND JobStatus IN ('T','W') AND Type='B' "
     "AND StartTime > (SELECT EndTime FROM btemp3%s ORDER BY EndTime DESC LIMIT 1) "
+    "AND StartTime < '%s' "
     "AND FileSet.FileSet= (SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
   "ORDER BY Job.JobTDate DESC LIMIT 1 ",
            jobid,
            clientid,
            jobid,
+           date,
            filesetid);
 
       if (!db_sql_query(mdb, query.c_str(), NULL, NULL)) {
@@ -1152,11 +1155,13 @@ bool db_accurate_get_jobids(JCR *jcr, B_DB *mdb,
   "WHERE ClientId = %s "
     "AND Level='I' AND JobStatus IN ('T','W') AND Type='B' "
     "AND StartTime > (SELECT EndTime FROM btemp3%s ORDER BY EndTime DESC LIMIT 1) "
+    "AND StartTime < '%s' "
     "AND FileSet.FileSet= (SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
   "ORDER BY Job.JobTDate DESC ",
            jobid,
            clientid,
            jobid,
+           date,
            filesetid);
       if (!db_sql_query(mdb, query.c_str(), NULL, NULL)) {
          goto bail_out;