当前位置: 首页>>代码示例>>C#>>正文


C# Lfx.SetConstraints方法代码示例

本文整理汇总了C#中Lfx.SetConstraints方法的典型用法代码示例。如果您正苦于以下问题:C# Lfx.SetConstraints方法的具体用法?C# Lfx.SetConstraints怎么用?C# Lfx.SetConstraints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Lfx的用法示例。


在下文中一共展示了Lfx.SetConstraints方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CheckAndUpdateDataBaseStructure

                /// <summary>
                /// Verifica la estructura de la base de datos actual y si es necesario modifica para que esté conforme
                /// al diseño de referencia.
                /// </summary>
                /// <param name="dataBase">PrintDataBase mediante el cual se accede a la base de datos.</param>
                /// <param name="omitPreAndPostSql">Omitir la ejecución de comandos Pre- y Post-actualización de estructura. Esto es útil cuando se actualiza una estructura vacía, por ejemplo al crear una base de datos nueva.</param>
                /// /// <param name="progreso">El objeto sobre el cual reportar el progreso.</param>
                public void CheckAndUpdateDataBaseStructure(Lfx.Data.Connection dataBase, bool omitPreAndPostSql, Lfx.Types.OperationProgress progreso)
                {
                        progreso.ChangeStatus("Verificando estructuras de datos");

                        bool MustEnableConstraints = false;
                        if (dataBase.ConstraintsEnabled) {
                                dataBase.EnableConstraints(false);
                                MustEnableConstraints = true;
                        }

                        if (omitPreAndPostSql == false) {
                                progreso.ChangeStatus("Ejecutando guión previo...");
                                InyectarSqlDesdeRecurso(dataBase, @"Data.Struct.db_upd_pre.sql");
                        }

                        //Primero borro claves foráneas (deleteOnly = true)
                        progreso.ChangeStatus("Eliminando reglas obsoletas...");
                        dataBase.SetConstraints(Lfx.Workspace.Master.Structure.Constraints, true);

                        try {
                                dataBase.ExecuteSql("FLUSH TABLES");
                        } catch {
                                // No tengo permiso... no importa
                        }
                        progreso.Max = Lfx.Workspace.Master.Structure.Tables.Count;
                        foreach (Lfx.Data.TableStructure Tab in Lfx.Workspace.Master.Structure.Tables.Values) {
                                string TableLabel = Tab.Label;
                                if (Tab.Label == null)
                                        TableLabel = Tab.Name.ToTitleCase();
                                progreso.ChangeStatus(progreso.Value + 1, "Verificando " + TableLabel);
                                dataBase.SetTableStructure(Tab);
                        }

                        //Ahora creo claves nuevas (deleteOnly = false)
                        progreso.ChangeStatus("Estableciendo reglas de integridad");
                        try {
                                dataBase.ExecuteSql("FLUSH TABLES");
                        } catch {
                                // No tengo permiso... no importa
                        }
                        dataBase.SetConstraints(Lfx.Workspace.Master.Structure.Constraints, false);

                        if (omitPreAndPostSql == false) {
                                progreso.ChangeStatus("Ejecutando guión posterior...");
                                InyectarSqlDesdeRecurso(dataBase, @"Data.Struct.db_upd_post.sql");
                        }

                        if (MustEnableConstraints)
                                dataBase.EnableConstraints(true);
                }
开发者ID:solutema,项目名称:ultralight,代码行数:57,代码来源:Workspace.cs


注:本文中的Lfx.SetConstraints方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。