/// <summary> /// Gets the data set. /// </summary> /// <param name="qry">The qry.</param> /// <returns></returns> public override DataSet GetDataSet(QueryCommand qry) { DataSet ds = new DataSet(); MySqlCommand cmd = new MySqlCommand(qry.CommandSql); cmd.CommandType = qry.CommandType; cmd.CommandTimeout = qry.CommandTimeout; AddParams(cmd, qry); MySqlDataAdapter da = new MySqlDataAdapter(cmd); using (AutomaticConnectionScope conn = new AutomaticConnectionScope(this)) { cmd.Connection = (MySqlConnection)conn.Connection; da.Fill(ds); cmd.Dispose(); da.Dispose(); return(ds); } }
/// <summary> /// Gets the single record reader. /// </summary> /// <param name="qry">The qry.</param> /// <returns></returns> public override IDataReader GetSingleRecordReader(QueryCommand qry) { AutomaticConnectionScope conn = new AutomaticConnectionScope(this); OracleCommand cmd = new OracleCommand(qry.CommandSql); cmd.CommandType = qry.CommandType; cmd.CommandTimeout = qry.CommandTimeout; AddParams(cmd, qry); cmd.Connection = (OracleConnection)conn.Connection; IDataReader rdr; // if it is a shared connection, we shouldn't be telling the reader to close it when it is done if (conn.IsUsingSharedConnection) { rdr = cmd.ExecuteReader(); } else { rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection | CommandBehavior.SingleResult | CommandBehavior.SingleRow); } return(rdr); }
/// <summary> /// Gets the data set. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="qry">The qry.</param> /// <returns></returns> public override T GetDataSet <T>(QueryCommand qry) { T ds = new T(); MySqlCommand cmd = new MySqlCommand(qry.CommandSql); cmd.CommandType = qry.CommandType; cmd.CommandTimeout = qry.CommandTimeout; MySqlDataAdapter da = new MySqlDataAdapter(cmd); AddTableMappings(da, ds); using (AutomaticConnectionScope conn = new AutomaticConnectionScope(this)) { cmd.Connection = conn.GetConnection <MySqlConnection>(); AddParams(cmd, qry); da.Fill(ds); CheckoutOutputParams(cmd, qry); cmd.Dispose(); da.Dispose(); return(ds); } }
/// <summary> /// Gets the SP list. /// </summary> /// <returns></returns> public override string[] GetSPList() { const string sql = "SELECT routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = ?databaseName"; StringBuilder sList = new StringBuilder(); using (AutomaticConnectionScope conn = new AutomaticConnectionScope(this)) { if (!SupportsInformationSchema(GetDatabaseVersion(Name))) { conn.Connection.Close(); return(new string[0]); } MySqlCommand cmd = new MySqlCommand(sql, (MySqlConnection)conn.Connection); cmd.Parameters.AddWithValue("?databaseName", conn.Connection.Database); using (IDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { bool isFirst = true; while (rdr.Read()) { if (!isFirst) { sList.Append('|'); } isFirst = false; sList.Append(rdr[0]); } rdr.Close(); } } return(sList.ToString().Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)); }