示例#1
0
        public static int ins_file(db.db_schema db, string path_file, deeper.frmwrk.lib_page page)
        {
            string rel_path  = strings.rel_path(page.cfg_var("filesFolder"), path_file).Replace("\\", "/");
            string files_tbl = db.meta_doc.table_from_code(deeper.db.meta_table.align_codes.files);

            // folders
            int id_folder = ins_folder(rel_path.Substring(0, rel_path.LastIndexOf('/')), page);

            // files
            DataTable dt = db.dt_table("select tbl.* from "
                                       + " (select idfile, dbo.getPathOfFolder(idfolder)  + '/' + filename + '.' + ext as path_file from files) tbl "
                                       + " where tbl.path_file = " + db.val_toqry(rel_path, deeper.db.fieldType.VARCHAR));

            if (dt.Rows.Count >= 1)
            {
                return(int.Parse(dt.Rows[0]["idfile"].ToString()));
            }

            return((int)db.exec(string.Format("insert into " + files_tbl + " (idfolder, ext, filename, title, note, dtins) values ({0}, {1}, {2}, null, null, getdate()) ", id_folder
                                              , db.val_toqry(Path.GetExtension(path_file).Substring(1), deeper.db.fieldType.VARCHAR), db.val_toqry(Path.GetFileNameWithoutExtension(path_file), deeper.db.fieldType.VARCHAR)), true));
        }
示例#2
0
        // /cartellona/catellina/cartellozza
        public static int ins_folder(string path_folder, deeper.frmwrk.lib_page page)
        {
            db.db_schema db = null;
            bool         identity_folders = false;

            try {
                db = page.conn_db_user(true);

                path_folder = path_folder.Replace("\\", "/");
                string folders_tbl = db.meta_doc.table_from_code(deeper.db.meta_table.align_codes.folders);

                DataTable dt = db.dt_table("select tbl.* from "
                                           + " (select idfolder, dbo.getPathOfFolder(idfolder) as path_folder from folders) tbl "
                                           + "  where tbl.path_folder = " + db.val_toqry(path_folder, deeper.db.fieldType.VARCHAR));
                if (dt.Rows.Count >= 1)
                {
                    return(int.Parse(dt.Rows[0]["idfolder"].ToString()));
                }

                int      id_parent   = -1;
                string   tmp_folder  = "";
                string[] sub_folders = path_folder.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = -1; i < sub_folders.Count(); i++)
                {
                    // folder vuoto
                    if (i < 0)
                    {
                        if (db.get_count("select count(*) from " + folders_tbl + " where idfolder = 0") == 0)
                        {
                            db.set_identity("folders", true);
                            identity_folders = true;
                            db.exec("insert into " + folders_tbl + " (idfolder, idfolderpadre, foldername, note, dtins) values (0, 0, '', null, getdate())", true);
                            db.set_identity("folders", false);
                            identity_folders = false;
                        }
                        id_parent = 0;
                        continue;
                    }

                    tmp_folder += "/" + sub_folders[i];
                    dt          = db.dt_table("select tbl.* from "
                                              + " (select idfolder, dbo.getPathOfFolder(idfolder) as path_folder from folders) tbl "
                                              + "  where tbl.path_folder = " + db.val_toqry(tmp_folder, deeper.db.fieldType.VARCHAR));
                    if (dt.Rows.Count >= 1)
                    {
                        id_parent = int.Parse(dt.Rows[0]["idfolder"].ToString());
                    }
                    else
                    {
                        id_parent = (int)db.exec("insert into " + folders_tbl + " (idfolderpadre, foldername, note, dtins) values (" + id_parent.ToString() + ", "
                                                 + db.val_toqry(sub_folders[i], deeper.db.fieldType.VARCHAR) + ", null, getdate())", true);
                    }

                    continue;
                }
                return(id_parent);
            } catch (Exception ex) { throw ex; } finally {
                if (db != null && identity_folders)
                {
                    db.set_identity("folders", false);
                }
            }
        }