Exemple #1
0
        /// <summary>
        /// 現在のLibraryDB向けのUPDATE文のプリペアドステートメントを生成する
        /// </summary>
        /// <param name="db">LibraryDB</param>
        /// <returns>UPDATE文のプリペアドステートメント</returns>
        private SQLite3DB.STMT GetUpdatePreparedStatement(SQLite3DB db)
        {
            string[] cols         = GetToBeImportColumn().Select(_ => _.Name + " = ?").ToArray();
            string   updateFormat = "UPDATE list SET " + String.Join(",", cols) + " WHERE file_name = ?1;";

            return(db.Prepare(updateFormat));
        }
Exemple #2
0
        /// <summary>
        /// 現在のLibraryDB向けのINSERT文のプリペアドステートメントを生成する
        /// </summary>
        /// <param name="db">LibraryDB</param>
        /// <returns>INSERT文のプリペアドステートメント</returns>
        private SQLite3DB.STMT GetInsertPreparedStatement(SQLite3DB db)
        {
            string[] cols         = GetToBeImportColumn().Select(_ => _.Name).ToArray();
            string   insertFormat = "INSERT INTO list ( " + String.Join(",", cols) + ") VALUES(" + String.Join(",", cols.Select(_ => "?").ToArray()) + ");";

            return(db.Prepare(insertFormat));
        }
Exemple #3
0
        public SQLite3DB Connect()
        {
            SQLite3DB db = new SQLite3DB(dbPath);

            db.EnableLoadExtension = true;
            db.Exec("PRAGMA temp_store = MEMORY;");
            db.Exec("PRAGMA encoding = \"UTF-8\"; ");
            migemoGeneratorDlg = migemoGenerator;
            Lutea.Core.LuteaHelper.RegisterSQLiteUserFunctions(db.GetHandle(), new Core.LuteaHelper.MigemoGenerator(migemoGeneratorDlg));
            return(db);
        }
Exemple #4
0
 private void InitializeLibraryDB(SQLite3DB db, Column[] columns)
 {
     db.Exec(GetCreateLibraryDefinitionSchema());
     using (var stmt = db.Prepare("INSERT INTO library_definition ( column_name, localized_name, type, is_primary, mapped_tag_field, is_text_search_target, omit_on_import) VALUES(?,?,?,?,?,?,?);"))
     {
         foreach (var col in columns)
         {
             stmt.Reset();
             stmt.Bind(1, col.Name);
             stmt.Bind(2, col.LocalText);
             stmt.Bind(3, ((int)col.Type).ToString());
             stmt.Bind(4, col.PrimaryKey ? "1" : "0");
             stmt.Bind(5, col.MappedTagField == null ? "" : col.MappedTagField);
             stmt.Bind(6, col.IsTextSearchTarget ? "1" : "0");
             stmt.Bind(7, col.OmitOnImport ? "1" : "0");
             stmt.Evaluate(null);
         }
     }
     db.Exec(GetCreateSchema(columns));
     db.Exec(GetCreateIndexSchema(columns));
 }
Exemple #5
0
 private void SetupConnection()
 {
     LibraryDB = AppCore.Library.Connect();
     LibraryDB.Exec("CREATE TEMP VIEW allTags AS SELECT *, " + String.Join("||'\n'||", Controller.Columns.Where(_ => _.IsTextSearchTarget).Select(_ => _.Name)) + " AS text FROM list;");
 }
Exemple #6
0
        public SQLite3DB.STMT PrepareForInsert()
        {
            SQLite3DB db = this.Connect();

            return(db.Prepare(""));
        }