Exemple #1
0
 /// <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));
 }
Exemple #2
0
        /// <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;
            }
        }
Exemple #3
0
 /// <summary>
 /// Delete query
 ///
 /// </summary>
 /// <param name="table">Delete table</param>
 /// <returns/>
 public static IDelete Delete(TableBase table)
 {
     return((IDelete) new DeleteBuilder(table));
 }
Exemple #4
0
 /// <summary>
 /// Update query
 ///
 /// </summary>
 /// <param name="table">Update table</param>
 /// <returns/>
 public static IUpdate Update(TableBase table)
 {
     return((IUpdate) new UpdateBuilder(table));
 }
Exemple #5
0
 /// <summary>
 /// Insert select query
 ///
 /// </summary>
 /// <param name="table"/>
 /// <returns/>
 public static IInsertSelect InsertSelect(TableBase table)
 {
     return((IInsertSelect) new InsertSelectBuilder(table));
 }
Exemple #6
0
        internal static string GetStoreProcedureQuery(DatabaseBase database, TableBase table, Parameters parameters, object[] objectParams)
        {
            var builder = GetBuilder(database.DatabaseType);

            return(builder.GetStoreProcedureQuery(database, table, parameters, objectParams));
        }
Exemple #7
0
        internal static string GetTruncateQuery(DatabaseBase database, TableBase table)
        {
            var builder = GetBuilder(database.DatabaseType);

            return(builder.GetTruncateQuery(table));
        }