using System;\r
using java.sql;\r
\r
-namespace System.Data.Common\r
+namespace System.Data.ProviderBase\r
{\r
public interface IReaderCacheContainer\r
{\r
void Fetch(ResultSet rs, int columnIndex, bool isSequential);\r
bool IsNull();\r
+ bool IsNumeric();\r
object GetValue();\r
}\r
\r
- internal abstract class ReaderCacheContainerBase : IReaderCacheContainer\r
+ public abstract class ReaderCacheContainerBase : IReaderCacheContainer\r
{\r
#region Fields\r
\r
FetchInternal(rs, columnIndex);\r
}\r
\r
+ public virtual bool IsNumeric() {\r
+ return false;\r
+ }\r
+\r
public abstract object GetValue(); \r
\r
public void Fetch(ResultSet rs, int columnIndex, bool isSequential)\r
_l = rs.getLong(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
+\r
public override object GetValue()\r
{\r
return _l;\r
_b = rs.getBoolean(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _b;\r
}\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _d;\r
_d = rs.getDouble(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _d;\r
_i = rs.getInt(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _i;\r
if (buffer == null)\r
return _s.Length;\r
int actualLength = ((dataIndex + length) >= _s.Length) ? (_s.Length - (int)dataIndex) : length;\r
- for (int i = 0, stringIndex = (int)dataIndex; i < actualLength; i++)\r
- buffer[bufferIndex++] = _s[stringIndex++];\r
+ _s.CopyTo((int)dataIndex, buffer, bufferIndex, actualLength);\r
return actualLength;\r
}\r
\r
_f = rs.getFloat(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _f;\r
_s = rs.getShort(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _s;\r
_b = (byte)rs.getByte(columnIndex);\r
}\r
\r
+ public override bool IsNumeric() {\r
+ return true;\r
+ }\r
+\r
public override object GetValue()\r
{\r
return _b;\r