/// <summary> /// Truncate table query /// /// </summary> /// <param name="table">Table to be truncated</param> /// <returns/> public static ITruncateTimeout Truncate(TableBase table) { return((ITruncateTimeout) new TruncateBuilder(table)); }
/// <summary> /// Executes stored procedure. /// /// </summary> /// <param name="pSP">Stored procedure</param><param name="transaction">Transaction</param><param name="parameters">Parameters being passed to stored procedure</param> /// <returns/> public static IResult ExecuteSP(TableBase pSP, Transaction transaction, params object[] parameters) { if (pSP == null) { throw new NullReferenceException("pSP cannot be null"); } if (transaction == null) { throw new NullReferenceException("transaction cannot be null"); } if (transaction.Database.DatabaseType != DatabaseType.MSSQL) { throw new Exception("Stored procedures are only implemented for DatabaseType.Mssql. Not " + transaction.Database.DatabaseType.ToString()); } DbConnection dbConnection = (DbConnection)null; string pSql = string.Empty; DateTime? pStart = new DateTime?(); DateTime? pEnd = new DateTime?(); try { dbConnection = transaction.GetOrSetConnection(transaction.Database); using (DbCommand command = Transaction.CreateCommand(dbConnection, transaction)) { Parameters pParameters1 = Settings.UseParameters ? new Parameters(command) : (Parameters)null; pSql = QueryBuilderFactory.GetStoreProcedureQuery(transaction.Database, pSP, pParameters1, parameters); command.CommandText = pSql; command.CommandType = CommandType.Text; if (transaction != null) { command.Transaction = transaction.GetOrSetDbTransaction(transaction.Database); } pStart = new DateTime?(DateTime.Now); Settings.FireQueryExecutingEvent(transaction.Database, pSql, QueryType.StoredProc, pStart, transaction.IsolationLevel, new ulong?(transaction.Id)); using (DbDataReader dataReader = command.ExecuteReader()) { pEnd = new DateTime?(DateTime.Now); IList <ISelectable> pSelectColumns = (IList <ISelectable>) new List <ISelectable>(pSP.Columns.Count); foreach (ColumnBase ColumnBase in (IEnumerable <ColumnBase>)pSP.Columns) { pSelectColumns.Add((ISelectable)ColumnBase); } QueryResult queryResult = new QueryResult(transaction.Database, pSelectColumns, dataReader, command.CommandText); if (transaction == null) { dbConnection.Close(); } Settings.FireQueryPerformedEvent(transaction.Database, pSql, queryResult.Count, QueryType.StoredProc, pStart, pEnd, (Exception)null, transaction.IsolationLevel, (IResult)queryResult, new ulong?(transaction.Id)); return((IResult)queryResult); } } } catch (Exception ex) { if (dbConnection != null && dbConnection.State != ConnectionState.Closed) { dbConnection.Close(); } Settings.FireQueryPerformedEvent(transaction.Database, pSql, 0, QueryType.StoredProc, pStart, pEnd, ex, transaction.IsolationLevel, (IResult)null, new ulong?(transaction.Id)); throw; } }
/// <summary> /// Delete query /// /// </summary> /// <param name="table">Delete table</param> /// <returns/> public static IDelete Delete(TableBase table) { return((IDelete) new DeleteBuilder(table)); }
/// <summary> /// Update query /// /// </summary> /// <param name="table">Update table</param> /// <returns/> public static IUpdate Update(TableBase table) { return((IUpdate) new UpdateBuilder(table)); }
/// <summary> /// Insert select query /// /// </summary> /// <param name="table"/> /// <returns/> public static IInsertSelect InsertSelect(TableBase table) { return((IInsertSelect) new InsertSelectBuilder(table)); }
internal static string GetStoreProcedureQuery(DatabaseBase database, TableBase table, Parameters parameters, object[] objectParams) { var builder = GetBuilder(database.DatabaseType); return(builder.GetStoreProcedureQuery(database, table, parameters, objectParams)); }
internal static string GetTruncateQuery(DatabaseBase database, TableBase table) { var builder = GetBuilder(database.DatabaseType); return(builder.GetTruncateQuery(table)); }