Skip to content

Commit 51104b2

Browse files
David EllingsworthDavid Ellingsworth
David Ellingsworth
authored and
David Ellingsworth
committed
GH-3530: Add a class for wrapping a DbDataReader.
1 parent 802f4bd commit 51104b2

File tree

2 files changed

+198
-0
lines changed

2 files changed

+198
-0
lines changed
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
using System;
2+
using System.Collections;
3+
using System.Data.Common;
4+
5+
namespace NHibernate.AdoNet
6+
{
7+
public abstract partial class DbDataReaderWrapper : DbDataReader
8+
{
9+
protected DbDataReader DataReader { get; private set; }
10+
11+
public override int Depth => DataReader.Depth;
12+
13+
public override int FieldCount => DataReader.FieldCount;
14+
15+
public override bool HasRows => DataReader.HasRows;
16+
17+
public override bool IsClosed => DataReader.IsClosed;
18+
19+
public override int RecordsAffected => DataReader.RecordsAffected;
20+
21+
public override object this[string name] => DataReader[name];
22+
23+
public override object this[int ordinal] => DataReader[ordinal];
24+
25+
public DbDataReaderWrapper(DbDataReader dbDataReader)
26+
{
27+
DataReader = dbDataReader;
28+
}
29+
30+
public override bool GetBoolean(int ordinal)
31+
{
32+
return DataReader.GetBoolean(ordinal);
33+
}
34+
35+
public override byte GetByte(int ordinal)
36+
{
37+
return DataReader.GetByte(ordinal);
38+
}
39+
40+
public override long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length)
41+
{
42+
return DataReader.GetBytes(ordinal, dataOffset, buffer, bufferOffset, length);
43+
}
44+
45+
public override char GetChar(int ordinal)
46+
{
47+
return DataReader.GetChar(ordinal);
48+
}
49+
50+
public override long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length)
51+
{
52+
return DataReader.GetChars(ordinal, dataOffset, buffer, bufferOffset, length);
53+
}
54+
55+
public override string GetDataTypeName(int ordinal)
56+
{
57+
return DataReader.GetDataTypeName(ordinal);
58+
}
59+
60+
public override DateTime GetDateTime(int ordinal)
61+
{
62+
return DataReader.GetDateTime(ordinal);
63+
}
64+
65+
public override decimal GetDecimal(int ordinal)
66+
{
67+
return DataReader.GetDecimal(ordinal);
68+
}
69+
70+
public override double GetDouble(int ordinal)
71+
{
72+
return DataReader.GetDouble(ordinal);
73+
}
74+
75+
public override IEnumerator GetEnumerator()
76+
{
77+
while (Read())
78+
{
79+
yield return this;
80+
}
81+
}
82+
83+
public override System.Type GetFieldType(int ordinal)
84+
{
85+
return DataReader.GetFieldType(ordinal);
86+
}
87+
88+
public override float GetFloat(int ordinal)
89+
{
90+
return DataReader.GetFloat(ordinal);
91+
}
92+
93+
public override Guid GetGuid(int ordinal)
94+
{
95+
return DataReader.GetGuid(ordinal);
96+
}
97+
98+
public override short GetInt16(int ordinal)
99+
{
100+
return DataReader.GetInt16(ordinal);
101+
}
102+
103+
public override int GetInt32(int ordinal)
104+
{
105+
return DataReader.GetInt32(ordinal);
106+
}
107+
108+
public override long GetInt64(int ordinal)
109+
{
110+
return DataReader.GetInt64(ordinal);
111+
}
112+
113+
public override string GetName(int ordinal)
114+
{
115+
return DataReader.GetName(ordinal);
116+
}
117+
118+
public override int GetOrdinal(string name)
119+
{
120+
return DataReader.GetOrdinal(name);
121+
}
122+
123+
public override string GetString(int ordinal)
124+
{
125+
return DataReader.GetString(ordinal);
126+
}
127+
128+
public override object GetValue(int ordinal)
129+
{
130+
return DataReader.GetValue(ordinal);
131+
}
132+
133+
public override int GetValues(object[] values)
134+
{
135+
return DataReader.GetValues(values);
136+
}
137+
138+
public override bool IsDBNull(int ordinal)
139+
{
140+
return DataReader.IsDBNull(ordinal);
141+
}
142+
143+
public override bool NextResult()
144+
{
145+
return DataReader.NextResult();
146+
}
147+
148+
public override bool Read()
149+
{
150+
return DataReader.Read();
151+
}
152+
153+
public override void Close()
154+
{
155+
DataReader.Close();
156+
}
157+
}
158+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//------------------------------------------------------------------------------
2+
// <auto-generated>
3+
// This code was generated by AsyncGenerator.
4+
//
5+
// Changes to this file may cause incorrect behavior and will be lost if
6+
// the code is regenerated.
7+
// </auto-generated>
8+
//------------------------------------------------------------------------------
9+
10+
11+
using System;
12+
using System.Collections;
13+
using System.Data.Common;
14+
15+
namespace NHibernate.AdoNet
16+
{
17+
using System.Threading.Tasks;
18+
using System.Threading;
19+
public abstract partial class DbDataReaderWrapper : DbDataReader
20+
{
21+
22+
public override Task<bool> NextResultAsync(CancellationToken cancellationToken)
23+
{
24+
if (cancellationToken.IsCancellationRequested)
25+
{
26+
return Task.FromCanceled<bool>(cancellationToken);
27+
}
28+
return DataReader.NextResultAsync(cancellationToken);
29+
}
30+
31+
public override Task<bool> ReadAsync(CancellationToken cancellationToken)
32+
{
33+
if (cancellationToken.IsCancellationRequested)
34+
{
35+
return Task.FromCanceled<bool>(cancellationToken);
36+
}
37+
return DataReader.ReadAsync(cancellationToken);
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)