public void TestSQLQuery() { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("select sysdate from dual"); command.CommandType = System.Data.CommandType.Text; System.Data.DataTable tab = dbManager.ExecuteSelect(command); Debug.Assert(tab.Rows.Count != 0, "DataTable"); DateTime date = (DateTime)tab.Rows[0]["sysdate"]; } }
public void TestSQLQuery2() { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("select to_date('01.01.1111 01:01:01', 'dd.mm.yyyy hh24:mi:ss') col_date, '1+2' col_str, 1+2 col_num from dual"); command.CommandType = System.Data.CommandType.Text; System.Data.DataTable tab = dbManager.ExecuteSelect(command); Debug.Assert(tab.Rows.Count != 0, "DataTable"); DateTime date = (DateTime)tab.Rows[0]["col_date"]; Debug.Assert(date == new DateTime(1111, 1, 1, 1, 1, 1), "DateEqual"); string str = tab.Rows[0]["col_str"].ToString(); Debug.Assert(string.Equals(str, "1+2"), "StrEqual"); Int32 n = Convert.ToInt32(tab.Rows[0]["col_num"]); Debug.Assert(n == 1 + 2, "NumEqual"); } }
public void TestMultiTread2() { Thread thread1 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("select * from all_objects"); command.CommandType = System.Data.CommandType.Text; System.Data.DataTable tab = null; for (int i = 0; i < 50; i++) { tab = dbManager.ExecuteSelect(command); } } }); Thread thread2 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("insert into test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)"); command.CommandType = System.Data.CommandType.Text; using (DbTransaction transaction = new DbTransaction(dbManager)) { for (int i = 0; i < 1000; i++) { dbManager.Execute(command); } transaction.Success = true; } } }); Thread thread3 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("begin execute immediate 'create or replace view test_view as select 1 col_name from dual'; end;"); command.CommandType = System.Data.CommandType.Text; for (int i = 0; i < 100; i++) { dbManager.Execute(command); } } }); Thread thread4 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("test_pkg.FuncAll"); command.CommandType = System.Data.CommandType.StoredProcedure; for (int i = 0; i < 100; i++) { command.Params.Clear(); OraParamString returnParam = new OraParamString("return", System.Data.ParameterDirection.ReturnValue, null, 2000); command.AddDBParam(returnParam); command.AddDBParam(new OraParamInt32("p_int32", System.Data.ParameterDirection.InputOutput, null)); command.AddDBParam(new OraParamDouble("p_double", System.Data.ParameterDirection.InputOutput, -1.234)); command.AddDBParam(new OraParamDateTime("p_date", System.Data.ParameterDirection.InputOutput, DateTime.Now)); command.AddDBParam(new OraParamString("p_string", System.Data.ParameterDirection.InputOutput, "INPUT ", 2000)); command.AddDBParam(new OraParamCLOB("p_clob", System.Data.ParameterDirection.InputOutput, null)); command.AddDBParam(new OraParamBLOB("p_blob", System.Data.ParameterDirection.InputOutput, (byte[])null)); OraParamRefCursor refCur = new OraParamRefCursor("p_cur", System.Data.ParameterDirection.Output); command.AddDBParam(refCur); OraParamRefCursor refCur2 = new OraParamRefCursor("p_cur2", System.Data.ParameterDirection.InputOutput); command.AddDBParam(refCur2); using (DbTransaction transaction = new DbTransaction(dbManager)) { dbManager.Execute(command); dbManager.Execute(command); transaction.Success = true; } } } }); Thread thread5 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("insert into test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)"); command.CommandType = System.Data.CommandType.Text; using (DbTransaction transaction = new DbTransaction(dbManager)) { for (int i = 0; i < 1000; i++) { dbManager.Execute(command); } transaction.Success = true; } } }); Thread thread6 = new Thread(() => { using (IDbConnection conn = new OraConnection()) { conn.OpenConnection("chipanddale", "chipanddale", "xe"); IDbMgr dbManager = new OraDBMgr(conn, _LogMgr); IDbCommand command = new OraCommand("insert into test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)"); command.CommandType = System.Data.CommandType.Text; for (int i = 0; i < 1000; i++) { using (DbTransaction transaction = new DbTransaction(dbManager)) { dbManager.Execute(command); transaction.Success = true; } } } }); thread1.Start(); thread2.Start(); thread3.Start(); thread4.Start(); thread5.Start(); thread6.Start(); thread1.Join(); thread2.Join(); thread3.Join(); thread4.Join(); thread5.Join(); thread6.Join(); }