public void GetProcedureParametersDoesNotRequireSelectFromMySqlProceduresTable()
        {
            if (st.Version < new Version(5, 5, 3))
            {
                return;
            }

            st.suExecSQL(String.Format("GRANT ALL ON `{0}`.* to 'simpleuser' identified by 'simpleuser'", st.database0));
            st.execSQL("DROP PROCEDURE IF EXISTS spTest");
            st.execSQL(@"CREATE  PROCEDURE spTest(id INT, name VARCHAR(20))
          BEGIN SELECT name; END");

            string connStr = st.GetConnectionString("simpleuser", "simpleuser", true) + ";use procedure bodies=false";

            using (MySqlConnection c = new MySqlConnection(connStr))
            {
                c.Open();

                string[] restrictions = new string[4];
                restrictions[1] = c.Database;
                restrictions[2] = "spTest";
#if RT
                string procTable = "table";
#else
                DataTable procTable = c.GetSchema("procedures", restrictions);
#endif
                ISSchemaProvider isp  = new ISSchemaProvider(c);
                string[]         rest = isp.CleanRestrictions(restrictions);

                MySqlSchemaCollection parametersTable = isp.GetProcedureParameters(rest, new MySqlSchemaCollection(procTable));

                Assert.NotNull(parametersTable);
            }
        }
        public void GetProcedureParametersDoesNotRequireSelectFromMySqlProceduresTable()
        {
            if (_fixture.Version < new Version(5, 5, 3))
            {
                return;
            }

            _fixture.execSQL(@"CREATE  PROCEDURE spTest(id INT, name VARCHAR(20)) BEGIN SELECT name; END");

            MySqlConnectionStringBuilder cb = new MySqlConnectionStringBuilder(_fixture.conn.ConnectionString);

            cb.CheckParameters = false;

            using (MySqlConnection c = new MySqlConnection(cb.ConnectionString))
            {
                c.Open();

                string[] restrictions = new string[4];
                restrictions[1] = c.Database;
                restrictions[2] = "spTest";
#if RT
                string procTable = "table";
#else
                DataTable procTable = c.GetSchema("procedures", restrictions);
#endif
                ISSchemaProvider isp  = new ISSchemaProvider(c);
                string[]         rest = isp.CleanRestrictions(restrictions);

                MySqlSchemaCollection parametersTable = isp.GetProcedureParameters(rest, new MySqlSchemaCollection(procTable));

                Assert.NotNull(parametersTable);
            }
        }
Example #3
0
        public void GetProcedureParametersDoesNotRequireSelectFromMySqlProceduresTable()
        {
            executeSQL(@"CREATE  PROCEDURE spTest(id INT, name VARCHAR(20))
          BEGIN SELECT name; END");

            MySqlConnectionStringBuilder cb = new MySqlConnectionStringBuilder(Connection.ConnectionString);

            cb.UseProcedureBodies = false;

            using (MySqlConnection c = new MySqlConnection(cb.ConnectionString))
            {
                c.Open();

                string[] restrictions = new string[4];
                restrictions[1] = c.Database;
                restrictions[2] = "spTest";

                DataTable procTable = c.GetSchema("procedures", restrictions);

                ISSchemaProvider isp  = new ISSchemaProvider(c);
                string[]         rest = isp.CleanRestrictions(restrictions);

                MySqlSchemaCollection parametersTable = isp.GetProcedureParameters(rest, new MySqlSchemaCollection(procTable));

                Assert.NotNull(parametersTable);
            }
        }