public override DBDataCollection ExcuteProcedure(string sp_name, bool isReturnDataSet, ref DBOParameterCollection dbp)
        {
            DBDataCollection rtn = new DBDataCollection();

            rtn.IsSuccess = false;

            DataSetStd    ds = new DataSetStd();
            NpgsqlCommand dc = null;//new SqlCommand(p.StoreProcureName, this.sqlconn);

            if (this._s == DBStatus.Begin_Trans)
            {
                dc = new NpgsqlCommand(sp_name, this.conn, this.tran);
            }
            else
            {
                dc = new NpgsqlCommand(sp_name, this.conn);
            }
            //dc.CommandTimeout = 90;
            dc.CommandType    = CommandType.StoredProcedure;
            dc.CommandTimeout = CommandTimeOut;
            FillParametersToCommand(dc, dbp);
            NpgsqlDataReader ddr = null;

            try
            {
                if (isReturnDataSet)
                {
                    ddr = dc.ExecuteReader();
                    ds  = DataSetStd.FillData(ddr);
                    rtn.ReturnDataSet = ds;
                }
                else
                {
                    dc.ExecuteNonQuery();
                }
                //獲取返回值
                foreach (SqlParameter sp in dc.Parameters)
                {
                    if (sp.Direction == ParameterDirection.Output || sp.Direction == ParameterDirection.InputOutput || sp.Direction == ParameterDirection.ReturnValue)
                    {
                        rtn.SetValue(sp.ParameterName.Replace(ParameterFlagChar, ""), sp.Value);
                    }
                }

                rtn.IsSuccess = true;
            }
            finally
            {
                if (ddr != null)
                {
                    ddr.Close();
                    ddr.Dispose();
                }
                dc.Dispose();
                dc = null;
            }

            return(rtn);
        }
Exemplo n.º 2
0
        public override Data.DataSetStd Query(string sql, DBOParameterCollection dbp)
        {
            if (_s == DBStatus.Close)
            {
                DoOpen();
            }

            OracleCommand    cmd;
            DataSetStd       ds  = new DataSetStd();
            OracleDataReader ddr = null;
            var sqlarr           = ToSQLArray(sql);
            var index            = 1;

            foreach (string s in sqlarr)
            {
                if (s.Trim() == "")
                {
                    continue;
                }
                using (cmd = new OracleCommand(s, conn))
                {
                    try
                    {
                        //如果事務開啟,則使用事務的方式
                        if (this._s == DBStatus.Begin_Trans)
                        {
                            cmd.Transaction = this.tran;
                        }

                        //如果有參數
                        if (dbp != null)
                        {
                            FillParametersToCommand(cmd, dbp);
                        }

                        if (s.Trim().ToLower().StartsWith("select") || s.ToLower().IndexOf(" into ") < 0)
                        {
                            ddr = cmd.ExecuteReader();
                            ds.Tables.AddRange(DataSetStd.FillData(ddr).Tables);
                            index++;
                        }
                        else
                        {
                            cmd.ExecuteNonQuery();
                        }
                    }
                    finally
                    {
                        cmd.Dispose();
                        cmd = null;
                    }
                }
            }

            return(ds);
        }
        public override DataSetStd Query(string sql, DBOParameterCollection dbp)
        {
            var newsql = ConvertSQL(sql);

            if (sqlcomm == null)
            {
                sqlcomm = new NpgsqlCommand(newsql, this.conn);
                sqlcomm.CommandTimeout = CommandTimeOut;
            }
            else
            {
                sqlcomm.CommandText = newsql;
            }

            //如果事務開啟,則使用事務的方式
            if (this._s == DBStatus.Begin_Trans)
            {
                sqlcomm.Transaction = this.tran;
            }
            DataSetStd       ds  = new DataSetStd();
            NpgsqlDataReader ddr = null;

            try
            {
                //如果有參數
                if (dbp != null)
                {
                    FillParametersToCommand(sqlcomm, dbp);
                }

                ddr = sqlcomm.ExecuteReader();

                ds = DataSetStd.FillData(ddr);
            }
            //catch (Exception ex)
            //{
            //    Console.WriteLine(ex.Message);
            //    throw ex;
            //}
            finally
            {
                if (ddr != null)
                {
                    ddr.Close();
                    ddr.Dispose();
                }
                sqlcomm.Dispose();
                sqlcomm = null;
            }
            return(ds);
        }
Exemplo n.º 4
0
        public override DataSetStd Query(string sql, DBOParameterCollection dbp)
        {
            if (sqlcomm == null)
            {
                sqlcomm = new SqlCommand(sql, this.sqlconn);
                sqlcomm.CommandTimeout = 90;
            }
            else
            {
                sqlcomm.CommandText = sql;
            }
            //如果事務開啟,則使用事務的方式
            if (this._s == DBStatus.Begin_Trans)
            {
                sqlcomm.Transaction = this.trans;
            }


            DataSetStd    ds  = new DataSetStd();
            SqlDataReader ddr = null;

            try
            {
                //如果有參數
                if (dbp != null)
                {
                    FillParametersToCommand(sqlcomm, dbp);
                }
                ddr = sqlcomm.ExecuteReader();

                ds = DataSetStd.FillData(ddr);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (ddr != null)
                {
                    ddr.Close();
                    ddr.Dispose();
                }

                sqlcomm.Cancel();
                sqlcomm = null;
            }
            return(ds);
        }
Exemplo n.º 5
0
        public override DBDataCollection ExcuteProcedure(string sp_name, bool isReturnDataSet, ref DBOParameterCollection dbp)
        {
            DBDataCollection rtn = new DBDataCollection();

            rtn.IsSuccess = false;
            if (_s == DBStatus.Close)
            {
                DoOpen();
            }

            DataSetStd       ds  = new DataSetStd();
            OracleCommand    dc  = null;
            OracleDataReader ddr = null;

            if (this._s == DBStatus.Begin_Trans)
            {
                dc             = new OracleCommand(sp_name, conn);
                dc.Transaction = tran;
            }
            else
            {
                dc = new OracleCommand(sp_name, conn);
            }
            dc.CommandType = CommandType.StoredProcedure;
            FillParametersToCommand(dc, dbp);
            try
            {
                if (isReturnDataSet)
                {
                    ddr = dc.ExecuteReader();
                    ds  = DataSetStd.FillData(ddr);
                    rtn.ReturnDataSet = ds;
                }
                else
                {
                    dc.ExecuteNonQuery();
                }
                //獲取返回值
                foreach (OracleParameter sp in dc.Parameters)
                {
                    if (sp.Direction == ParameterDirection.Output || sp.Direction == ParameterDirection.InputOutput || sp.Direction == ParameterDirection.ReturnValue)
                    {
                        rtn.SetValue(sp.ParameterName.Replace(":", ""), sp.Value);
                    }
                }

                rtn.IsSuccess = true;
            }
            finally
            {
                if (ddr != null)
                {
                    ddr.Close();
                    ddr.Dispose();
                }
                dc.Dispose();
                dc = null;
            }

            return(rtn);
        }