Click here to Skip to main content
15,906,333 members

Comments by Sri Prasad Tadimalla (Top 3 by date)

Sri Prasad Tadimalla 11-May-15 20:37pm View    
Thanks! I have never used structs before but I have defined classes and static functions with generic constrained parameters.
I've generally usually used a static GetInstance function in a base class to instantiate derived types. What purpose does a separate factory class serve other than being needed if there is no base class (only an interface)?
Sri Prasad Tadimalla 11-May-15 20:28pm View    
In the end, this is what I came up with.

<pre lang="c#">public void ExecuteOnReader(string query, Action<idatareader> dataReaderAction)
{
using (OdbcConnection connection = new OdbcConnection(_connectionString))
{
try
{
connection.Open();
Logger.LogInfo("Connection Opened");
}
catch (Exception ex)
{
Logger.LogException(ex, "Executing Query", "Unable to connect to database with: " + _connectionString);
throw;
}
SetDateFormatForOracleDatabases(connection);
Logger.LogSql(query, "Query");
try
{
var w = Logger.StartWatch();
using (var command = new OdbcCommand(query, connection))
{
using (var reader = command.ExecuteReader(CommandBehavior.KeyInfo))
dataReaderAction.Invoke(reader);
}
Logger.StopWatch(w, "Query Execution");
}
catch (Exception ex)
{
Logger.LogException(ex, "Executing Query", "Unable to execute query: " + query);
throw;
}
}
}
</pre>
Sri Prasad Tadimalla 11-May-15 3:25am View    
Thanks everyone. I thought of passing the function in but I usually try to avoid doing that. The generic approach also seems like a good idea, especially if I make T an interface.