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); }
private void SaveFile(string dbname, int folderid, string filename, string data, string type) { m_conn.SystemConnection.SafeChangeDatabase(dbname); WantStructure(true); RemoveFile(dbname, folderid, filename); using (DbCommand cmd = m_conn.SystemConnection.CreateCommand()) { int? lastid = DbConnectionExtension.ExecuteScalar <int?>(m_conn.SystemConnection, "SELECT MAX(id) FROM d2dx_file"); int id = lastid == null ? 1 : lastid.Value + 1; string sqlpar, formpar; m_conn.Dialect.CreateNamedParameter("p1", out sqlpar, out formpar); cmd.CommandText = String.Format("INSERT INTO d2dx_file (id, folder_id, file_name, data_type, file_data) VALUES ({0}, {1}, '{2}', '{3}', {4})", id, folderid, filename, type, sqlpar); DbParameter dbpar = m_conn.DbFactory.CreateParameter(); dbpar.ParameterName = formpar; dbpar.Value = data; cmd.Parameters.Add(dbpar); cmd.ExecuteNonQuery(); } //using (DbCommand cmd = m_conn.SystemConnection.CreateCommand()) //{ // DbParameter par = m_conn.DbFactory.CreateParameter(); // string sqlpar, formpar; // m_conn.Dialect.CreateNamedParameter("p1", out sqlpar, out formpar); // cmd.CommandText = String.Format("UPDATE d2dx_file SET data_type='{0}', file_data={1} WHERE folder_id={2} AND file_name='{3}'", type, sqlpar, folderid, filename); // DbParameter dbpar = m_conn.DbFactory.CreateParameter(); // dbpar.ParameterName = formpar; // dbpar.Value = data; // cmd.Parameters.Add(dbpar); // cmd.ExecuteNonQuery(); //} }
public static bool HasDXStructure(DbConnection conn) { try { DbConnectionExtension.ExecuteScalar(conn, "SELECT COUNT(*) FROM d2dx_info"); return(true); } catch (Exception) { return(false); } }
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); } } }