/* Imported subroutines */
extern void list_result(B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx);
-extern int QueryDB(char *file, int line, B_DB *db, char *select_cmd);
+extern int QueryDB(char *file, int line, void *jcr, B_DB *db, char *select_cmd);
/*
* Submit general SQL query
*/
-int db_list_sql_query(B_DB *mdb, char *query, DB_LIST_HANDLER *sendit, void *ctx)
+int db_list_sql_query(void *jcr, B_DB *mdb, char *query, DB_LIST_HANDLER *sendit,
+ void *ctx, int verbose)
{
db_lock(mdb);
if (sql_query(mdb, query) != 0) {
Mmsg(&mdb->errmsg, _("Query failed: %s\n"), sql_strerror(mdb));
- sendit(ctx, mdb->errmsg);
+ if (verbose) {
+ sendit(ctx, mdb->errmsg);
+ }
db_unlock(mdb);
return 0;
}
}
void
-db_list_pool_records(B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_pool_records(void *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx)
{
- Mmsg(&mdb->cmd, "SELECT PoolId,Name,NumVols,MaxVols,PoolType,LabelFormat \
-FROM Pool");
+ Mmsg(&mdb->cmd, "SELECT PoolId,Name,NumVols,MaxVols,PoolType,LabelFormat "
+"FROM Pool ORDER BY PoolId");
db_lock(mdb);
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
}
void
-db_list_media_records(B_DB *mdb, MEDIA_DBR *mdbr, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_client_records(void *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx)
{
+ Mmsg(&mdb->cmd, "SELECT ClientId,Name,FileRetention,JobRetention "
+"FROM Client ORDER BY ClientId");
- Mmsg(&mdb->cmd, "SELECT VolumeName,MediaType,VolStatus,\
-VolBytes,LastWritten,VolRetention,Recycle \
-FROM Media WHERE Media.PoolId=%d ORDER BY MediaId", mdbr->PoolId);
+ db_lock(mdb);
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
+ db_unlock(mdb);
+ return;
+ }
+
+ list_result(mdb, sendit, ctx);
+
+ sql_free_result(mdb);
+ db_unlock(mdb);
+}
+
+
+void
+db_list_media_records(void *jcr, B_DB *mdb, MEDIA_DBR *mdbr, DB_LIST_HANDLER *sendit, void *ctx)
+{
+ Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,\
+VolBytes,LastWritten,VolRetention,Recycle,Slot \
+FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
db_lock(mdb);
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
db_unlock(mdb);
}
-void db_list_jobmedia_records(B_DB *mdb, uint32_t JobId, DB_LIST_HANDLER *sendit, void *ctx)
+void db_list_jobmedia_records(void *jcr, B_DB *mdb, uint32_t JobId, DB_LIST_HANDLER *sendit, void *ctx)
{
if (JobId > 0) { /* do by JobId */
Mmsg(&mdb->cmd, "SELECT JobId, Media.VolumeName, FirstIndex, LastIndex \
-FROM JobMedia, Media WHERE Media.MediaId=JobMedia.MediaId and JobMedia.JobId=%d",
+FROM JobMedia, Media WHERE Media.MediaId=JobMedia.MediaId and JobMedia.JobId=%u",
JobId);
} else {
Mmsg(&mdb->cmd, "SELECT JobId, Media.VolumeName, FirstIndex, LastIndex \
}
db_lock(mdb);
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
* only the job with the specified id.
*/
void
-db_list_job_records(B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_job_records(void *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
{
-
if (jr->JobId == 0 && jr->Job[0] == 0) {
- Mmsg(&mdb->cmd, "SELECT JobId,Name,StartTime,Type,Level,\
-JobFiles,JobBytes,JobStatus FROM Job");
+ Mmsg(&mdb->cmd,
+"SELECT JobId,Name,StartTime,Type,Level,JobFiles,JobBytes,JobStatus "
+"FROM Job ORDER BY JobId");
} else { /* single record */
Mmsg(&mdb->cmd, "SELECT JobId,Name,StartTime,Type,Level,\
-JobFiles,JobBytes,JobStatus FROM Job WHERE Job.JobId=%d", jr->JobId);
+JobFiles,JobBytes,JobStatus FROM Job WHERE Job.JobId=%u", jr->JobId);
}
db_lock(mdb);
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
*
*/
void
-db_list_job_totals(B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_job_totals(void *jcr, B_DB *mdb, JOB_DBR *jr, DB_LIST_HANDLER *sendit, void *ctx)
{
-
-
db_lock(mdb);
/* List by Job */
Mmsg(&mdb->cmd, "SELECT count(*) AS Jobs, sum(JobFiles) \
AS Files, sum(JobBytes) AS Bytes, Name AS Job FROM Job GROUP BY Name");
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
Mmsg(&mdb->cmd, "SELECT count(*) AS Jobs,sum(JobFiles) \
AS Files,sum(JobBytes) As Bytes FROM Job");
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}
void
-db_list_files_for_job(B_DB *mdb, uint32_t jobid, DB_LIST_HANDLER *sendit, void *ctx)
+db_list_files_for_job(void *jcr, B_DB *mdb, uint32_t jobid, DB_LIST_HANDLER *sendit, void *ctx)
{
Mmsg(&mdb->cmd, "SELECT Path.Path,Filename.Name FROM File,\
-Filename,Path WHERE File.JobId=%d and Filename.FilenameId=File.FilenameId \
-and Path.PathId=File.PathId",
+Filename,Path WHERE File.JobId=%u AND Filename.FilenameId=File.FilenameId \
+AND Path.PathId=File.PathId",
jobid);
db_lock(mdb);
- if (!QUERY_DB(mdb, mdb->cmd)) {
+ if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return;
}