コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        /// <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));
        }