Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs')
-rw-r--r--mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs187
1 files changed, 71 insertions, 116 deletions
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs
index 69ee3b78b0d..004d67bee56 100644
--- a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs
+++ b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs
@@ -1,44 +1,44 @@
//
// System.Data.Common.AbstractDataReader
-//
-// Authors:
-// Konstantin Triger <kostat@mainsoft.com>
-// Boris Kirzner <borisk@mainsoft.com>
-//
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Authors:
+// Konstantin Triger <kostat@mainsoft.com>
+// Boris Kirzner <borisk@mainsoft.com>
+//
+// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Data;
using System.Collections;
-using System.Data.Common;
+using System.Data.ProviderBase;
using java.io;
using java.sql;
-namespace System.Data.ProviderBase
+namespace System.Data.Common
{
public abstract class AbstractDataReader : DbDataReaderBase, ISafeDataRecord {
@@ -200,8 +200,8 @@ namespace System.Data.ProviderBase
if (resultSet.next()) {
_readerState = (ReaderState.HasRows | ReaderState.FirstRed);
ResultSetMetaData rsMetaData = ResultsMetaData;
- DbConvert.JavaSqlTypes javaSqlType = (DbConvert.JavaSqlTypes)rsMetaData.getColumnType(1);
- if (javaSqlType == DbConvert.JavaSqlTypes.OTHER) {
+ DbTypes.JavaSqlTypes javaSqlType = (DbTypes.JavaSqlTypes)rsMetaData.getColumnType(1);
+ if (javaSqlType == DbTypes.JavaSqlTypes.OTHER) {
object value = GetValue(0);
if (value != null && value is ResultSet) {
_resultsMetaData = null;
@@ -264,7 +264,7 @@ namespace System.Data.ProviderBase
return _readerCache;
}
}
-
+
public override bool IsClosed {
get { return _isClosed; }
}
@@ -496,11 +496,6 @@ namespace System.Data.ProviderBase
public override DateTime GetDateTime(int columnIndex)
{
- return GetDateTimeUnsafe(columnIndex);
- }
-
- DateTime GetDateTimeUnsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((DateTimeReaderCacheContainer)ReaderCache[columnIndex]).GetDateTime();
}
@@ -508,7 +503,7 @@ namespace System.Data.ProviderBase
public DateTime GetDateTimeSafe(int columnIndex)
{
if (ReaderCache[columnIndex] is DateTimeReaderCacheContainer) {
- return GetDateTimeUnsafe(columnIndex);
+ return GetDateTime(columnIndex);
}
else {
return Convert.ToDateTime(GetValue(columnIndex));
@@ -529,11 +524,6 @@ namespace System.Data.ProviderBase
public override decimal GetDecimal(int columnIndex)
{
- return GetDecimalUnsafe(columnIndex);
- }
-
- decimal GetDecimalUnsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((DecimalReaderCacheContainer)ReaderCache[columnIndex]).GetDecimal();
}
@@ -541,7 +531,7 @@ namespace System.Data.ProviderBase
public decimal GetDecimalSafe(int columnIndex)
{
if (ReaderCache[columnIndex] is DecimalReaderCacheContainer) {
- return GetDecimalUnsafe(columnIndex);
+ return GetDecimal(columnIndex);
}
else {
return Convert.ToDecimal(GetValue(columnIndex));
@@ -550,11 +540,6 @@ namespace System.Data.ProviderBase
public override double GetDouble(int columnIndex)
{
- return GetDoubleUnsafe(columnIndex);
- }
-
- double GetDoubleUnsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((DoubleReaderCacheContainer)ReaderCache[columnIndex]).GetDouble();
}
@@ -562,7 +547,7 @@ namespace System.Data.ProviderBase
public double GetDoubleSafe(int columnIndex)
{
if (ReaderCache[columnIndex] is DoubleReaderCacheContainer) {
- return GetDoubleUnsafe(columnIndex);
+ return GetDouble(columnIndex);
}
else {
return Convert.ToDouble(GetValue(columnIndex));
@@ -571,11 +556,6 @@ namespace System.Data.ProviderBase
public override float GetFloat(int columnIndex)
{
- return GetFloatUnsafe(columnIndex);
- }
-
- float GetFloatUnsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((FloatReaderCacheContainer)ReaderCache[columnIndex]).GetFloat();
}
@@ -583,7 +563,7 @@ namespace System.Data.ProviderBase
public float GetFloatSafe(int columnIndex)
{
if (ReaderCache[columnIndex] is FloatReaderCacheContainer) {
- return GetFloatUnsafe(columnIndex);
+ return GetFloat(columnIndex);
}
else {
return Convert.ToSingle(GetValue(columnIndex));
@@ -592,11 +572,6 @@ namespace System.Data.ProviderBase
public override short GetInt16(int columnIndex)
{
- return GetInt16Unsafe(columnIndex);
- }
-
- short GetInt16Unsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((Int16ReaderCacheContainer)ReaderCache[columnIndex]).GetInt16();
}
@@ -604,7 +579,7 @@ namespace System.Data.ProviderBase
public short GetInt16Safe(int columnIndex)
{
if (ReaderCache[columnIndex] is Int16ReaderCacheContainer) {
- return GetInt16Unsafe(columnIndex);
+ return GetInt16(columnIndex);
}
else {
return Convert.ToInt16(GetValue(columnIndex));
@@ -613,11 +588,6 @@ namespace System.Data.ProviderBase
public override int GetInt32(int columnIndex)
{
- return GetInt32Unsafe(columnIndex);
- }
-
- int GetInt32Unsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((Int32ReaderCacheContainer)ReaderCache[columnIndex]).GetInt32();
}
@@ -625,7 +595,7 @@ namespace System.Data.ProviderBase
public int GetInt32Safe(int columnIndex)
{
if (ReaderCache[columnIndex] is Int32ReaderCacheContainer) {
- return GetInt32Unsafe(columnIndex);
+ return GetInt32(columnIndex);
}
else {
return Convert.ToInt32(GetValue(columnIndex));
@@ -634,11 +604,6 @@ namespace System.Data.ProviderBase
public override long GetInt64(int columnIndex)
{
- return GetInt64Unsafe(columnIndex);
- }
-
- long GetInt64Unsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((Int64ReaderCacheContainer)ReaderCache[columnIndex]).GetInt64();
}
@@ -646,7 +611,7 @@ namespace System.Data.ProviderBase
public long GetInt64Safe(int columnIndex)
{
if (ReaderCache[columnIndex] is Int64ReaderCacheContainer) {
- return GetInt64Unsafe(columnIndex);
+ return GetInt64(columnIndex);
}
else {
return Convert.ToInt64(GetValue(columnIndex));
@@ -682,18 +647,13 @@ namespace System.Data.ProviderBase
public override string GetString(int columnIndex)
{
- return GetStringUnsafe(columnIndex);
- }
-
- string GetStringUnsafe(int columnIndex)
- {
FillReaderCache(columnIndex);
return ((StringReaderCacheContainer)ReaderCache[columnIndex]).GetString();
}
public string GetStringSafe(int columnIndex) {
if (ReaderCache[columnIndex] is StringReaderCacheContainer) {
- return GetStringUnsafe(columnIndex);
+ return GetString(columnIndex);
}
else {
return Convert.ToString(GetValue(columnIndex));
@@ -748,26 +708,26 @@ namespace System.Data.ProviderBase
try {
IReaderCacheContainer[] readerCache = new IReaderCacheContainer[FieldCount];
for(int i=0; i < readerCache.Length; i++) {
- DbConvert.JavaSqlTypes javaSqlType = (DbConvert.JavaSqlTypes) ResultsMetaData.getColumnType(i + 1);
+ DbTypes.JavaSqlTypes javaSqlType = (DbTypes.JavaSqlTypes) ResultsMetaData.getColumnType(i + 1);
switch (javaSqlType) {
- case DbConvert.JavaSqlTypes.ARRAY :
+ case DbTypes.JavaSqlTypes.ARRAY :
readerCache[i] = new ArrayReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.BIGINT :
+ case DbTypes.JavaSqlTypes.BIGINT :
readerCache[i] = new Int64ReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.BINARY :
- case DbConvert.JavaSqlTypes.VARBINARY :
- case DbConvert.JavaSqlTypes.LONGVARBINARY :
+ case DbTypes.JavaSqlTypes.BINARY :
+ case DbTypes.JavaSqlTypes.VARBINARY :
+ case DbTypes.JavaSqlTypes.LONGVARBINARY :
readerCache[i] = new BytesReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.BIT :
+ case DbTypes.JavaSqlTypes.BIT :
readerCache[i] = new BooleanReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.BLOB :
+ case DbTypes.JavaSqlTypes.BLOB :
readerCache[i] = new BlobReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.CHAR :
+ case DbTypes.JavaSqlTypes.CHAR :
if ("uniqueidentifier".Equals(ResultsMetaData.getColumnTypeName(i + 1))) {
readerCache[i] = new GuidReaderCacheContainer();
}
@@ -775,13 +735,13 @@ namespace System.Data.ProviderBase
readerCache[i] = new StringReaderCacheContainer();
}
break;
- case DbConvert.JavaSqlTypes.CLOB :
+ case DbTypes.JavaSqlTypes.CLOB :
readerCache[i] = new ClobReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.TIME :
+ case DbTypes.JavaSqlTypes.TIME :
readerCache[i] = new TimeSpanReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.DATE :
+ case DbTypes.JavaSqlTypes.DATE :
AbstractDBConnection conn = (AbstractDBConnection)((ICloneable)_command.Connection);
string driverName = conn.JdbcConnection.getMetaData().getDriverName();
@@ -790,12 +750,12 @@ namespace System.Data.ProviderBase
break;
}
else
- goto case DbConvert.JavaSqlTypes.TIMESTAMP;
- case DbConvert.JavaSqlTypes.TIMESTAMP :
+ goto case DbTypes.JavaSqlTypes.TIMESTAMP;
+ case DbTypes.JavaSqlTypes.TIMESTAMP :
readerCache[i] = new TimestampReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.DECIMAL :
- case DbConvert.JavaSqlTypes.NUMERIC :
+ case DbTypes.JavaSqlTypes.DECIMAL :
+ case DbTypes.JavaSqlTypes.NUMERIC :
// jdbc driver for oracle identitfies both FLOAT and NUMBEr columns as
// java.sql.Types.NUMERIC (2), columnTypeName NUMBER, columnClassName java.math.BigDecimal
// therefore we relay on scale
@@ -808,36 +768,36 @@ namespace System.Data.ProviderBase
readerCache[i] = new DecimalReaderCacheContainer();
}
break;
- case DbConvert.JavaSqlTypes.DOUBLE :
- case DbConvert.JavaSqlTypes.FLOAT :
+ case DbTypes.JavaSqlTypes.DOUBLE :
+ case DbTypes.JavaSqlTypes.FLOAT :
readerCache[i] = new DoubleReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.INTEGER :
+ case DbTypes.JavaSqlTypes.INTEGER :
readerCache[i] = new Int32ReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.LONGVARCHAR :
- case DbConvert.JavaSqlTypes.VARCHAR :
+ case DbTypes.JavaSqlTypes.LONGVARCHAR :
+ case DbTypes.JavaSqlTypes.VARCHAR :
readerCache[i] = new StringReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.NULL :
+ case DbTypes.JavaSqlTypes.NULL :
readerCache[i] = new NullReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.REAL :
+ case DbTypes.JavaSqlTypes.REAL :
readerCache[i] = new FloatReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.REF :
+ case DbTypes.JavaSqlTypes.REF :
readerCache[i] = new RefReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.SMALLINT :
+ case DbTypes.JavaSqlTypes.SMALLINT :
readerCache[i] = new Int16ReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.TINYINT :
+ case DbTypes.JavaSqlTypes.TINYINT :
readerCache[i] = new ByteReaderCacheContainer();
break;
- case DbConvert.JavaSqlTypes.DISTINCT :
- case DbConvert.JavaSqlTypes.JAVA_OBJECT :
- case DbConvert.JavaSqlTypes.OTHER :
- case DbConvert.JavaSqlTypes.STRUCT :
+ case DbTypes.JavaSqlTypes.DISTINCT :
+ case DbTypes.JavaSqlTypes.JAVA_OBJECT :
+ case DbTypes.JavaSqlTypes.OTHER :
+ case DbTypes.JavaSqlTypes.STRUCT :
default :
readerCache[i] = new ObjectReaderCacheContainer();
break;
@@ -852,11 +812,6 @@ namespace System.Data.ProviderBase
}
}
- protected bool IsNumeric(int columnIndex)
- {
- return ReaderCache[columnIndex].IsNumeric();
- }
-
public override bool IsDBNull(int columnIndex)
{
FillReaderCache(columnIndex);
@@ -888,7 +843,7 @@ namespace System.Data.ProviderBase
ResultSetMetaData metaData;
if (Behavior == CommandBehavior.SchemaOnly) {
try {
- metaData = ((PreparedStatement)_command.Statement).getMetaData();
+ metaData = ((PreparedStatement)_command.JdbcStatement).getMetaData();
}
catch(SQLException e) {
throw CreateException("CommandBehaviour.SchemaOnly is not supported by the JDBC driver.",e);