Ejemplo n.º 1
0
        public static void CreateDbStructure(DbConnection conn, ISqlDialect dialect)
        {
            if (dialect.DialectCaps.NestedTransactions)
            {
                using (DbTransaction tran = conn.BeginTransaction())
                {
                    try
                    {
                        DbConnectionExtension.ExecuteScalar(conn, "SELECT COUNT(*) FROM d2dx_info", tran);
                    }
                    catch (Exception)
                    {
                        TestAllowCreateStructure();
                        DbConnectionExtension.ExecuteNonQueries(conn, DatAdmin.DataSources.D2DX.SqlScripts.update_01, dialect, tran, null);
                    }
                    tran.Commit();
                }
            }
            else
            {
                try
                {
                    DbConnectionExtension.ExecuteScalar(conn, "SELECT COUNT(*) FROM d2dx_info");
                }
                catch (Exception)
                {
                    TestAllowCreateStructure();
                    DbConnectionExtension.ExecuteNonQueries(conn, DatAdmin.DataSources.D2DX.SqlScripts.update_01, dialect);
                }
            }

            // handle higher versions
            ProcesssUpdate(2, DatAdmin.DataSources.D2DX.SqlScripts.update_02, conn, dialect);
        }
Ejemplo n.º 2
0
 private static void ProcesssUpdate(int version, string updateSql, DbConnection conn, ISqlDialect dialect)
 {
     if (Int32.Parse(DbConnectionExtension.ExecuteScalar(conn, "SELECT par_value FROM d2dx_info WHERE par_name='dbversion'").ToString()) < version)
     {
         if (dialect.DialectCaps.NestedTransactions)
         {
             using (DbTransaction tran = conn.BeginTransaction())
             {
                 DbConnectionExtension.ExecuteNonQueries(conn, updateSql, dialect, tran, null);
                 tran.Commit();
             }
         }
         else
         {
             DbConnectionExtension.ExecuteNonQueries(conn, updateSql, dialect);
         }
     }
 }