public void DeleteFiles (int host_id, int lane_id, int revision_id)
{
using (IDbTransaction transaction = BeginTransaction ()) {
using (IDbCommand cmd = CreateCommand ()) {
cmd.CommandText = @"
SELECT WorkFile.id AS id
INTO TEMP WorkFile_delete_tmpfile
FROM WorkFile
INNER JOIN Work ON Work.id = WorkFile.work_id
INNER JOIN RevisionWork ON RevisionWork.id = Work.revisionwork_id
WHERE
RevisionWork.lane_id = @lane_id AND
RevisionWork.host_id = @host_id AND
RevisionWork.revision_id = @revision_id;
DELETE FROM WorkFile
WHERE id IN (select * from WorkFile_delete_tmpfile);
DROP TABLE WorkFile_delete_tmpfile;
";
DB.CreateParameter (cmd, "lane_id", lane_id);
DB.CreateParameter (cmd, "host_id", host_id);
DB.CreateParameter (cmd, "revision_id", revision_id);
cmd.ExecuteNonQuery ();
transaction.Commit ();
}
}
}