init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
415
Sda.DataProvider/SDADataReader.cs
Normal file
415
Sda.DataProvider/SDADataReader.cs
Normal file
|
@ -0,0 +1,415 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using SDA.DataProvider.Core;
|
||||
|
||||
namespace SDA.DataProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Adatbázis lekérdezések eredményhalmazának felolvasását végző osztály.
|
||||
/// </summary>
|
||||
public class SDADataReader : IDisposable
|
||||
{
|
||||
internal SDADataReaderWrapper Reader;
|
||||
|
||||
internal SDADataReader()
|
||||
{
|
||||
}
|
||||
|
||||
internal SDADataReader(SDADataReaderWrapper reader)
|
||||
{
|
||||
Reader = reader;
|
||||
}
|
||||
|
||||
bool _disposed;
|
||||
|
||||
/// <summary>
|
||||
/// Explicit destruktor.
|
||||
/// </summary>
|
||||
/// <param name="disposing">Programozott felszabadítás?</param>
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (disposing)
|
||||
{
|
||||
if (Reader != null)
|
||||
{
|
||||
Reader.Dispose();
|
||||
Reader = null;
|
||||
}
|
||||
}
|
||||
_disposed = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Eldobja az objektumot.
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lezárja az objektumot.
|
||||
/// </summary>
|
||||
public void Close()
|
||||
{
|
||||
Reader.Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A következő rekordra áll.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool Read()
|
||||
{
|
||||
return Reader.Read();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A következő eredményre áll.
|
||||
/// </summary>
|
||||
/// <returns>True, ha van még eredmény; egyébként False.</returns>
|
||||
public bool NextResult()
|
||||
{
|
||||
return Reader.NextResult();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Megvizsgálja, hogy a jelenlegi rekord adott oszlopának van-e értéke.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>True, ha nincs értéke; egyébként False</returns>
|
||||
public bool IsDBNull(int index)
|
||||
{
|
||||
return Reader.IsDBNull(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét logikai típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public bool GetBoolean(int index)
|
||||
{
|
||||
return Reader.GetBoolean(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét bájtként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public byte GetByte(int index)
|
||||
{
|
||||
return Reader.GetByte(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét karakterként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public char GetChar(int index)
|
||||
{
|
||||
return Reader.GetChar(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét dátum-időként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public DateTime GetDateTime(int index)
|
||||
{
|
||||
return Reader.GetDateTime(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét számként (decimal) adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public decimal GetDecimal(int index)
|
||||
{
|
||||
return Reader.GetDecimal(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét lebegőpontos típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public double GetDouble(int index)
|
||||
{
|
||||
return Reader.GetDouble(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 16 bites előjeles egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public short GetInt16(int index)
|
||||
{
|
||||
return Reader.GetInt16(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 32 bites egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public int GetInt32(int index)
|
||||
{
|
||||
return Reader.GetInt32(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 64 bites egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public long GetInt64(int index)
|
||||
{
|
||||
return Reader.GetInt64(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét karakterláncként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public string GetString(int index)
|
||||
{
|
||||
return Reader.GetString(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét karakterláncként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public string GetLongString(int index)
|
||||
{
|
||||
return Reader.GetLongString(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét objektumként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public object GetValue(int index)
|
||||
{
|
||||
return Reader.GetValue(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop Guid értékét adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <returns>Az oszlop Guid értéke</returns>
|
||||
public Guid GetGuid(int index)
|
||||
{
|
||||
return Reader.GetGuid(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadja a jelenlegi rekord összes oszlopának értékét.
|
||||
/// </summary>
|
||||
/// <param name="values">Objektumtömb, amibe az értékeket kell másolni</param>
|
||||
/// <returns>Tömbbe másolt objektumok száma</returns>
|
||||
public int GetValues(object[] values)
|
||||
{
|
||||
return Reader.GetValues(values);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadja az objektum metaadatait.
|
||||
/// </summary>
|
||||
/// <returns>Egy DataTable objektum, ami az oszlopok leírását tartalmazza</returns>
|
||||
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
|
||||
public DataTable GetSchemaTable()
|
||||
{
|
||||
return Reader.GetSchemaTable();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadja a megadott nevű oszlop értékét.
|
||||
/// </summary>
|
||||
public object this[string name] => Reader[name];
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadja a megadott indexű oszlop értékét.
|
||||
/// </summary>
|
||||
public object this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return Reader[index];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lezárult-e az olvasás?
|
||||
/// </summary>
|
||||
public bool IsClosed
|
||||
{
|
||||
get
|
||||
{
|
||||
return Reader.IsClosed;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Az aktuális sor oszlopainak száma.
|
||||
/// </summary>
|
||||
public int FieldCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return Reader.FieldCount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Megadja egy mező indexét.
|
||||
/// </summary>
|
||||
/// <param name="fieldName">A kért mező neve</param>
|
||||
/// <returns>Az oszlop indexe</returns>
|
||||
public int GetOrdinal(string fieldName)
|
||||
{
|
||||
return Reader.GetOrdinal(fieldName);
|
||||
}
|
||||
|
||||
#region Nem szabványos kényelmi funkciók
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét logikai típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public bool? GetBoolean(int index, bool? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetBoolean(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét bájtként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public byte? GetByte(int index, byte? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetByte(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét karakterként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public char? GetChar(int index, char? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetChar(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét dátum-időként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public DateTime? GetDateTime(int index, DateTime? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetDateTime(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét számként (decimal) adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public decimal? GetDecimal(int index, decimal? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetDecimal(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét lebegőpontos típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public double? GetDouble(int index, double? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetDouble(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 16 bites előjeles egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public short? GetInt16(int index, short? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetInt16(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 32 bites egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public int? GetInt32(int index, int? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetInt32(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét 64 bites egész típusként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public long? GetInt64(int index, long? defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetInt64(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét karakterláncként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public string GetString(int index, string defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetString(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A megadott oszlop értékét objektumként adja vissza.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop sorszáma</param>
|
||||
/// <param name="defaultValue">Null esetén mivel térjen vissza.</param>
|
||||
/// <returns>Az oszlop értéke</returns>
|
||||
public object GetValue(int index, object defaultValue)
|
||||
{
|
||||
return IsDBNull(index) ? defaultValue : Reader.GetValue(index);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue