+++ /dev/null
-//\r
-// System.Data.ProviderBase.AbstractDbParameter\r
-//\r
-// Author:\r
-// Boris Kirzner (borisk@mainsoft.com)\r
-//\r
-\r
-using System;\r
-using System.Data;\r
-using System.Data.Common;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
- public abstract class AbstractDbParameter : DbParameterBase\r
- {\r
- #region Fields\r
-\r
- protected byte _precision;\r
- protected byte _scale;\r
- protected DataRowVersion _sourceVersion;\r
- private DbTypes.JavaSqlTypes _jdbcType;\r
- protected bool _isDbTypeSet = false;\r
- protected bool _isJdbcTypeSet = false;\r
- object _convertedValue;\r
-\r
- #endregion // Fields\r
-\r
- #region Constructors
-
- [MonoTODO]
- protected AbstractDbParameter ()
- {
- }
-
- #endregion // Constructors\r
-\r
- #region Properties
-
- public override byte Precision
- {
- get { return _precision; }\r
- set { _precision = value; }
- }
-
- public override byte Scale
- {
- get { return _scale; }\r
- set { _scale = value; }
- }
-\r
- public override DataRowVersion SourceVersion\r
- {\r
- get { return _sourceVersion; }\r
- set { _sourceVersion = value; }\r
- }
-
- internal DbTypes.JavaSqlTypes JdbcType
- {
- get {
- if (!_isJdbcTypeSet) {
- return JdbcTypeFromProviderType();
- }
- return _jdbcType;
- }
- set {
- _jdbcType = value;
- _isJdbcTypeSet = true;
- }
- }
-
- internal bool IsJdbcTypeSet
- {
- get {
- return _isJdbcTypeSet;
- }
-
- set {
- _isJdbcTypeSet = value;
- }
- }
-
- internal bool IsDbTypeSet
- {
- get { return _isDbTypeSet; }
- }
-
- internal virtual bool IsSpecial {
- get {
- return false;
- }
- }
-
- private bool IsFixedLength
- {
- get {
- return ((DbType != DbType.AnsiString) && (DbType != DbType.Binary) &&
- (DbType != DbType.String) && (DbType != DbType.VarNumeric));
- }
- }
-
- protected internal virtual string Placeholder {
- get {
- return "?";
- }
- }
-
- internal object ConvertedValue\r
- {\r
- get { \r
- if (_convertedValue == null) {\r
- object value = Value;\r
- _convertedValue = ((value != null) && (value != DBNull.Value)) ? ConvertValue(value) : value;\r
- }\r
- return _convertedValue;\r
- }\r
- }
-
- public override object Value {
- get { return base.Value; }
- set {
- _convertedValue = null;
- base.Value = value;
- }
- }
-
- #endregion // Properties
-
- #region Methods
-
- internal abstract void SetParameterName(ResultSet res);\r
-\r
- internal abstract void SetParameterDbType(ResultSet res);\r
-\r
- internal abstract void SetSpecialFeatures(ResultSet res);
-
- public abstract object Clone();
-
- internal abstract DbTypes.JavaSqlTypes JdbcTypeFromProviderType();
-
- internal abstract object ConvertValue(object value);
-
- internal void SetParameterPrecisionAndScale(ResultSet res)
- {
- int jdbcType = res.getInt("DATA_TYPE");\r
- if(jdbcType == java.sql.Types.DECIMAL || jdbcType == java.sql.Types.NUMERIC) {\r
- Precision = (byte)res.getInt("PRECISION");\r
- Scale = (byte)res.getInt("SCALE");\r
- }
- }
-
- internal void SetParameterSize(ResultSet res)
- {
- Size = res.getInt("LENGTH");
- }
-
- internal void SetParameterIsNullable(ResultSet res)
- {
- IsNullable = (res.getInt("NULLABLE") == 1);
- }
-
- internal void Validate()
- {
- if (!IsFixedLength && ((Direction & ParameterDirection.Output) != 0) && (Size == 0)) {
- throw ExceptionHelper.ParameterSizeNotInitialized(Offset,ParameterName,DbType.ToString(),Size);
- }
- }
-
- public override void CopyTo (DbParameter target)\r
- {\r
- base.CopyTo(target);\r
- AbstractDbParameter t = (AbstractDbParameter) target;\r
- t._precision = _precision;\r
- t._scale = _scale;\r
- t._sourceVersion = _sourceVersion;\r
- t._jdbcType = _jdbcType;\r
- }
-
- #endregion // Methods\r
- }\r
-}\r
-\r