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)); }
// /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); } } }