Example #1
0
        public FindRowIdentityResult FindRowIdentity(FindRowIdentityParameters parameters)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                FindRowIdentityResult result = null;

                using (IDbConnection connection = new DbConnection(ConnectionString))
                {
                    connection.Open();

                    using (IDbCommand command = connection.CreateCommand())
                    {
                        command.CommandText = "RowTracker.Find";
                        ((OracleCommand)command).BindByName = true;

                        foreach (IDbDataParameter parameter in FindRowIdentityTranslator.TranslateParameters(parameters))
                        {
                            command.Parameters.Add(parameter);
                        }

                        command.Prepare();
                        command.CommandType = CommandType.StoredProcedure;
                        command.ExecuteNonQuery();
                        result = FindRowIdentityTranslator.TranslateResult(command.Parameters);
                    }
                }

                scope.Complete();

                return(result);
            }
        }
Example #2
0
        public static IList <IDbDataParameter> TranslateParameters(FindRowIdentityParameters parameters)
        {
            IList <IDbDataParameter> parameterList = new List <IDbDataParameter>();
            IDbDataParameter         dbParameter;

            dbParameter = new OracleParameter();
            dbParameter.ParameterName = "ID_I";
            dbParameter.DbType        = DbTypeConvertor.ConvertToDbType(typeof(string));
            dbParameter.Direction     = ParameterDirection.Input;
            dbParameter.Value         = parameters.Id;
            parameterList.Add(dbParameter);

            dbParameter = new OracleParameter();
            dbParameter.ParameterName = "ROWIDENTITY_I";
            dbParameter.DbType        = DbTypeConvertor.ConvertToDbType(typeof(string));
            dbParameter.Direction     = ParameterDirection.Output;
            dbParameter.Size          = 255;
            parameterList.Add(dbParameter);

            return(parameterList);
        }