|
|
@ -6,6 +6,31 @@ using System.Data.SqlClient;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ZeroLevel.SqlServer
|
|
|
|
namespace ZeroLevel.SqlServer
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
public class DbReader
|
|
|
|
|
|
|
|
:IDisposable
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
private readonly DbConnection _connection;
|
|
|
|
|
|
|
|
private readonly IDbCommand _command;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public DbReader(DbConnection connection, IDbCommand command)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_connection = connection;
|
|
|
|
|
|
|
|
_command = command;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IDataReader GetReader()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return _command.ExecuteReader(CommandBehavior.CloseConnection);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_command.Dispose();
|
|
|
|
|
|
|
|
_connection.Close();
|
|
|
|
|
|
|
|
_connection.Dispose();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class SqlDbProvider :
|
|
|
|
public class SqlDbProvider :
|
|
|
|
IDbProvider
|
|
|
|
IDbProvider
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -185,6 +210,13 @@ namespace ZeroLevel.SqlServer
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public DbReader ExecuteReader(string query, DbParameter[] par)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var connection = _factory.CreateConnection();
|
|
|
|
|
|
|
|
return new DbReader(connection, CreateCommand(connection, query, par, Timeout));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region LazySelect
|
|
|
|
#region LazySelect
|
|
|
|
public void LazySelect(string query, DbParameter[] par, Func<DbDataReader, bool> readHandler, int timeout = Timeout)
|
|
|
|
public void LazySelect(string query, DbParameter[] par, Func<DbDataReader, bool> readHandler, int timeout = Timeout)
|
|
|
|
{
|
|
|
|
{
|
|
|
|