示例#1
0
        private int SaveDirRow(string dir_path)
        {
            DirRowInfo    row_info = new DirRowInfo();
            DirectoryInfo d_info   = new DirectoryInfo(dir_path);

            row_info.id       = next_dir_id;
            row_info.path     = dir_path;
            row_info.modified = d_info.LastAccessTimeUtc;

            dirs_to_insert.Add(row_info);

            next_dir_id++;
            return(row_info.id);
        }
示例#2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="conn">SQLiteConnection used to execute these queries</param>
 /// <param name="dir_rows"></param>
 /// <param name="start">Start index, inclusive</param>
 /// <param name="end">End index, exclusive</param>
 private void BatchAddDirs(SQLiteConnection conn, int start, int end)
 {
     using (var cmd = new SQLiteCommand(conn)) {
         using (var transaction = conn.BeginTransaction()) {
             for (int i = start; i < end; i++)
             {
                 if (i >= dirs_to_insert.Count())
                 {
                     break; //Index out of bounds
                 }
                 DirRowInfo curr_row = dirs_to_insert[i];
                 cmd.CommandText = "INSERT INTO `directories` (`id`, `path`, `modified`) VALUES(@id, @path, @modified)";
                 cmd.Parameters.Add(new SQLiteParameter("@id", curr_row.id));
                 cmd.Parameters.Add(new SQLiteParameter("@path", curr_row.path));
                 cmd.Parameters.Add(new SQLiteParameter("@modified", DateTimeToInt(curr_row.modified)));
                 cmd.ExecuteNonQuery();
             }
             transaction.Commit();
         }
     }
 }