public DbParameter CreateParameter(DbHParameter parameter) { return new OracleParameter { ParameterName = parameter.ParameterName, OracleDbType = GetOracleType(parameter.DbHType), Direction = parameter.Direction, IsNullable = parameter.IsNullable, SourceColumn = parameter.SourceColumn, SourceVersion = parameter.SourceVersion, Value = parameter.Value, SourceColumnNullMapping = parameter.SourceColumnNullMapping, Size = parameter.Size, }; }
public bool CheckParameter(string procName, DbHParameter par, string serviceName) { MetaDataProcedure proc = GetProcedureMetadata(procName, serviceName); MetaDataProcedureArguments procPar = proc.Arguments.Find(t => t.Name.ToUpper() == par.ParameterName.ToUpper()); if (procPar == null) return false; if (procPar.Direction == par.Direction && procPar.DbHType == par.DbHType) return true; if (procPar.Direction == par.Direction && procPar.DbHType != par.DbHType && par.Value != null) { switch (procPar.DbHType) { case DbHType.Int16: short shortT; return Int16.TryParse(par.Value.ToString(), out shortT); case DbHType.Int32: int intT; return Int32.TryParse(par.Value.ToString(), out intT); case DbHType.Int64: long longT; return Int64.TryParse(par.Value.ToString(), out longT); case DbHType.Float: float floatT; return Single.TryParse(par.Value.ToString(), out floatT); case DbHType.Double: double doubleT; return Double.TryParse(par.Value.ToString(), out doubleT); case DbHType.Decimal: decimal decimalT; return Decimal.TryParse(par.Value.ToString(), out decimalT); } } return false; }
/// <summary> /// </summary> /// <param name="procName"></param> /// <param name="par"></param> /// <param name="serviceName"></param> /// <returns></returns> public static bool CheckParameter(string procName, DbHParameter par, string serviceName) { IDriver driver = DataManager.GetDriver(serviceName); return driver.CheckParameter(procName, par, serviceName); }