English version Russian version





   /// <summary>
        /// Stardard way for Stored procedures execution
        /// </summary>
        /// <param name="connection_str"></param>
        public void Run(string connection_str)
        {
            /* test */
            OleDbConnection con = new OleDbConnection(connection_str);  //create connection
            con.Open();
            OleDbTransaction trans = con.BeginTransaction();            //begin transaction 

            //select stored procedure in params 
            OleDbCommand cmd_in_params = new OleDbCommand("select cust_no from CUSTOMER",con,trans);

            //select mail label through the stored procedure
            OleDbCommand cmd_stored_proc = new OleDbCommand("select * from mail_label(:cust_no)", con, trans);
            //add one IN parameter                     
            cmd_stored_proc.Parameters.Add("cust_no", OleDbType.Integer);

            //execure reader
            OleDbDataReader rdr = cmd_in_params.ExecuteReader();

            //for each customer No  
            while (rdr.Read())
            {
                //retrive stored proc data
                cmd_stored_proc.Parameters["cust_no"].Value = rdr["cust_no"];
                OleDbDataReader rdr_out = cmd_stored_proc.ExecuteReader();

                Console.WriteLine("Customer ¹" + rdr["cust_no"]);

                //print out parameter values
                while (rdr_out.Read())
                    for (int i = 0; i < rdr_out.FieldCount; i++)
                        Console.WriteLine(rdr_out.GetName(i) + "=" + rdr_out[i]);

                rdr_out.Close();  //must be closed before using again
                Console.WriteLine();
            }
            rdr.Close();

            trans.Commit();
            con.Close();
        }


Prev Next Site Build No. 3.0.0.1660