// Persist library : Persistence layer
// Copyright (C) 2003 Vincent Daron
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
using System;
using System.Data;
namespace Persist.Sql{
/// <summary>
/// Static Class used to execute the Query
/// </summary>
internal class ConnectionUtils
{
private static readonly log4net.ILog theLogger = log4net.LogManager.GetLogger(typeof(ConnectionUtils));
public static IDataReader ProcessQuery(SqlStatement sqlStatement,IDbConnection connection,IDbTransaction transaction)
{
System.Diagnostics.Debug.WriteLine("Opening DataReader");
return GetCommand(sqlStatement,connection,transaction).ExecuteReader();
}
public static int ProcessNonQuery(SqlStatement sqlStatement,IDbConnection connection,IDbTransaction transaction)
{
System.Diagnostics.Debug.WriteLine("ProcessNonQuery");
return GetCommand(sqlStatement,connection,transaction).ExecuteNonQuery();
}
private static IDbCommand GetCommand(SqlStatement sqlStatement,IDbConnection connection,IDbTransaction transaction)
{
IDbCommand cmd = sqlStatement.DbCommand;
cmd.Transaction = transaction;
cmd.Connection = connection;
System.Diagnostics.Debug.WriteLine("The Thread "+AppDomain.GetCurrentThreadId()+" : " + cmd.CommandText);
foreach(IDataParameter param in sqlStatement.DbCommand.Parameters)
{
if(param.DbType == DbType.DateTime)
{
if((param.Value != null)&&
(param.Value != DBNull.Value))
{
System.Diagnostics.Debug.WriteLine("The Thread "+AppDomain.GetCurrentThreadId()+" Parameter : "+param.ParameterName+"(DATETIME**):" + ((DateTime)param.Value).ToString("yyyy / MM / dd - HH:mm:ss"));
}
else
{
System.Diagnostics.Debug.WriteLine("The Thread "+AppDomain.GetCurrentThreadId()+" Parameter : "+param.ParameterName+"(DATETIME**): NULL");
}
}
else
{
System.Diagnostics.Debug.WriteLine("The Thread "+AppDomain.GetCurrentThreadId()+" Parameter : "+param.ParameterName+"("+param.DbType+"):" + param.Value);
}
}
return cmd;
}
}
}
|