public void BeginExecute(String connectionString, String CommandText,
out TdConnection cn)
{
cn = new TdConnection(connectionString);
cn.Open();
IAsyncResult asyncResult;
TdCommand cmd = TdCommand(commandText, cn);
//going to start asynchronous request
asyncResult = cmd.BeginExecuteReader();
// going to perform other tasks
//going to end the asynchronous request
//this will also block until processing has completed
TdDataReader dataReader = cmd.EndExecuteReader(asyncResult);
//RETRIEVE RESULTS FROM TERADATA
cn.Close();
}