init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
191
Sda.DataProvider/Wrappers/MSSQL/MSSQLDataReaderWrapper.cs
Normal file
191
Sda.DataProvider/Wrappers/MSSQL/MSSQLDataReaderWrapper.cs
Normal file
|
@ -0,0 +1,191 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Globalization;
|
||||
using SDA.DataProvider.Core;
|
||||
|
||||
namespace SDA.DataProvider.MSSQLWrappers
|
||||
{
|
||||
class MSSQLDataReaderWrapper : SDADataReaderWrapper
|
||||
{
|
||||
internal SqlDataReader Reader;
|
||||
|
||||
internal MSSQLDataReaderWrapper(SqlDataReader reader)
|
||||
{
|
||||
Reader = reader;
|
||||
}
|
||||
|
||||
protected override IDataReader WrappedDataReader
|
||||
{
|
||||
get
|
||||
{
|
||||
return Reader;
|
||||
}
|
||||
}
|
||||
|
||||
bool _disposed;
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (disposing)
|
||||
{
|
||||
if (Reader != null)
|
||||
{
|
||||
Reader.Dispose();
|
||||
Reader = null;
|
||||
}
|
||||
}
|
||||
_disposed = true;
|
||||
}
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
Reader.Close();
|
||||
}
|
||||
|
||||
public override bool Read()
|
||||
{
|
||||
try
|
||||
{
|
||||
return Reader.Read();
|
||||
}
|
||||
catch (SqlException ex)
|
||||
{
|
||||
throw MSSQLExceptionHelper.TranslateSqlException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool NextResult()
|
||||
{
|
||||
return Reader.NextResult();
|
||||
}
|
||||
|
||||
public override bool IsDBNull(int index)
|
||||
{
|
||||
return Reader.IsDBNull(index);
|
||||
}
|
||||
|
||||
public override bool GetBoolean(int index)
|
||||
{
|
||||
object value = GetValue(index);
|
||||
if (value is Boolean)
|
||||
{
|
||||
return (bool)value;
|
||||
}
|
||||
char temp = GetChar(index);
|
||||
switch (temp)
|
||||
{
|
||||
case '0':
|
||||
case 'f':
|
||||
case 'F':
|
||||
case 'n':
|
||||
case 'N':
|
||||
return false;
|
||||
case '1':
|
||||
case 't':
|
||||
case 'T':
|
||||
case 'y':
|
||||
case 'Y':
|
||||
return true;
|
||||
default:
|
||||
throw new SDADataProviderException(new InvalidCastException());
|
||||
}
|
||||
}
|
||||
|
||||
public override byte GetByte(int index)
|
||||
{
|
||||
return Reader.GetByte(index);
|
||||
}
|
||||
|
||||
public override char GetChar(int index)
|
||||
{
|
||||
string temp = Reader.GetString(index);
|
||||
if (temp.Length == 1)
|
||||
{
|
||||
return temp[0];
|
||||
}
|
||||
throw new InvalidCastException();
|
||||
}
|
||||
|
||||
public override DateTime GetDateTime(int index)
|
||||
{
|
||||
return Reader.GetDateTime(index);
|
||||
}
|
||||
|
||||
public override decimal GetDecimal(int index)
|
||||
{
|
||||
return Convert.ToDecimal(Reader.GetValue(index), CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public override double GetDouble(int index)
|
||||
{
|
||||
return Convert.ToDouble(Reader.GetValue(index), CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public override short GetInt16(int index)
|
||||
{
|
||||
return Convert.ToInt16(Reader.GetValue(index), CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public override int GetInt32(int index)
|
||||
{
|
||||
return Convert.ToInt32(Reader.GetValue(index), CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public override long GetInt64(int index)
|
||||
{
|
||||
return Convert.ToInt64(Reader.GetValue(index), CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public override string GetString(int index)
|
||||
{
|
||||
return Reader.GetString(index);
|
||||
}
|
||||
|
||||
public override string GetLongString(int index)
|
||||
{
|
||||
return Reader.GetString(index);
|
||||
}
|
||||
|
||||
public override object GetValue(int index)
|
||||
{
|
||||
return Reader.GetValue(index);
|
||||
}
|
||||
|
||||
public override int GetValues(object[] values)
|
||||
{
|
||||
return Reader.GetValues(values);
|
||||
}
|
||||
|
||||
public override DataTable GetSchemaTable()
|
||||
{
|
||||
return Reader.GetSchemaTable();
|
||||
}
|
||||
|
||||
public override Guid GetGuid(int i)
|
||||
{
|
||||
return Reader.GetGuid(i);
|
||||
}
|
||||
|
||||
public override object this[string name] => Reader[name];
|
||||
|
||||
public override object this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return Reader[index];
|
||||
}
|
||||
}
|
||||
|
||||
public override int FieldCount => Reader.FieldCount;
|
||||
|
||||
public override int GetOrdinal(string fieldname)
|
||||
{
|
||||
return Reader.GetOrdinal(fieldname);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue