コード例 #1
0
        /// <summary>
        /// Insert the specified episode.
        /// </summary>
        /// <param name='episode'>Episode.</param>
        public void Insert(List<Episode> episodes)
        {
            SQLiteDatabase db = dbHelper.WritableDatabase;

              DatabaseUtils.InsertHelper ih = new DatabaseUtils.InsertHelper(db, Episode.TABLE_NAME);
              int colDescription = ih.GetColumnIndex(Episode.COL_DESCRIPTION);
              int colDuration = ih.GetColumnIndex(Episode.COL_DURATION);
              int colMyGPOLink = ih.GetColumnIndex(Episode.COL_MYGPO_LINK);
              int colPosition = ih.GetColumnIndex(Episode.COL_PLAYER_POSITION);
              int colPodcastTitle = ih.GetColumnIndex(Episode.COL_PODCAST_TITLE);
              int colPodcastUrl = ih.GetColumnIndex(Episode.COL_PODCAST_URL);
              int colReleased = ih.GetColumnIndex(Episode.COL_RELEASED);
              int colStatus = ih.GetColumnIndex(Episode.COL_STATUS);
              int colTitle = ih.GetColumnIndex(Episode.COL_TITLE);
              int colUrl = ih.GetColumnIndex(Episode.COL_URL);
              int colWebsite = ih.GetColumnIndex(Episode.COL_WEBSITE);

              try {
            db.BeginTransaction();
            foreach(Episode episode in episodes) {
              ih.PrepareForInsert();

              ih.Bind(colDescription, episode.Description);
              ih.Bind(colDuration, episode.Duration);
              ih.Bind(colMyGPOLink, episode.MygpoLink != null ? episode.MygpoLink.ToString() : string.Empty);
              ih.Bind(colPosition, episode.PlayerPosition);
              ih.Bind(colPodcastTitle, episode.PodcastTitle);
              ih.Bind(colPodcastUrl, episode.PodcastUrl != null ? episode.PodcastUrl.ToString() : string.Empty);
              ih.Bind(colReleased, episode.Released.ToString());
              ih.Bind(colStatus, episode.Status.ToString());
              ih.Bind(colTitle, episode.Title);
              ih.Bind(colUrl, episode.Url != null ? episode.Url.ToString() : string.Empty);
              ih.Bind(colWebsite, episode.Website != null ? episode.Website.ToString() : string.Empty);

              ih.Execute();
            }
            ih.PrepareForInsert();
            db.SetTransactionSuccessful();
              }
              finally{
            if(ih != null){
              ih.Close();
            }
            if(db != null){
              db.EndTransaction();
            }
              }
        }
コード例 #2
0
        public void Save(MarkovFactory factory)
        {
            Log.Debug ( TAG, "Saving chain." );
            myDatabase = context.OpenOrCreateDatabase(DATABASE_NAME, FileCreationMode.Private, null);
            myDatabase.ExecSQL("DROP TABLE IF EXISTS 'words'");
            myDatabase.ExecSQL("CREATE TABLE IF NOT EXISTS 'words' (firstWord TEXT, secondWord TEXT, instanceCount INTEGER NOT NULL);");

            var chain = factory.chain;
            DatabaseUtils.InsertHelper ih = new DatabaseUtils.InsertHelper (myDatabase, "words");

            Stopwatch stopwatch = Stopwatch.StartNew();
            StringBuilder insertQuery = new StringBuilder();

            //insertQuery.Append("INSERT INTO 'words' ('firstWord', 'secondWord', 'instanceCount') VALUES (?, ?, ?)");
            myDatabase.BeginTransaction();
            string sql = "INSERT INTO 'words' ('firstWord', 'secondWord', 'instanceCount') VALUES (?, ?, ?)";
            SQLiteStatement insert = myDatabase.CompileStatement(sql);

            foreach (KeyValuePair<string, MarkovWord> word in chain)
            {
                foreach (KeyValuePair<MarkovWord, int> after in word.Value.afters)
                {
                    insert.BindString(1, word.Value.word);
                    insert.BindString(2, after.Key.word);
                    insert.BindDouble(3, after.Value);
                    insert.Execute();
                }
            }
            myDatabase.SetTransactionSuccessful();
            myDatabase.EndTransaction();
            stopwatch.Stop ();
            Log.Debug (TAG, "Database insert completed in " + stopwatch.Elapsed.TotalMilliseconds);
        }