Exemple #1
0
        /// <summary>
        /// 更新数据库的Blob数据类型,需指定sql参数为length=1的参数
        /// </summary>
        /// <param name="strSql"></param>
        /// <param name="ImageData"></param>
        /// <returns></returns>
        public int InputBlob(string strSql, byte[] ImageData)
        {
            CloseRead();
            if (Neusoft.FrameWork.Management.PublicTrans.Trans != null)
            {
                this.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            }

            //   string block="INSERT INTO test_image(id,name, image) VALUES (2,'a', :blobtodb)";
            this.command.Connection = this.con as IBM.Data.DB2.DB2Connection;
            command.CommandText     = strSql + "";
            command.CommandType     = System.Data.CommandType.Text;

            string strParam = "";
            int    i        = strSql.IndexOf(":", 0);

            if (i <= 0)
            {
                this.Err = "未指定参数!" + strSql;
                this.WriteErr();
                return(-1);
            }
            strParam = strSql.Substring(i + 1, 1);
            IBM.Data.DB2.DB2Parameter param = command.Parameters.Add(strParam, IBM.Data.DB2.DB2Type.Blob);
            param.Direction = System.Data.ParameterDirection.Input;

            param.Value = ImageData;
            try
            {
                command.ExecuteNonQuery();
            }
            catch (IBM.Data.DB2.DB2Exception ex)
            {
                this.Err       = "执行产生错误!" + ex.Message;
                this.ErrCode   = strSql;
                this.DBErrCode = 1;
                this.WriteErr();
                return(-1);
            }
            catch (Exception ex)
            {
                this.Err            = ex.Message;
                this.ErrorException = ex.InnerException + "+ " + ex.Source;
                this.WriteErr();
                return(-1);
            }

            return(0);
        }
Exemple #2
0
        /// <summary>
        /// 输入长字符串
        /// 针对>4000长度的字符串
        /// </summary>
        /// <param name="strSql"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public int InputLong(string strSql, string data)
        {
            CloseRead();
            if (Neusoft.FrameWork.Management.PublicTrans.Trans != null)
            {
                this.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            }
            this.command.Connection = this.con as IBM.Data.DB2.DB2Connection;
            command.CommandText     = strSql + "";
            command.CommandType     = System.Data.CommandType.Text;

            string strParam = "";
            int    i        = strSql.IndexOf(":", 0);

            if (i <= 0)
            {
                this.Err = "未指定参数!" + strSql;
                this.WriteErr();
                return(-1);
            }
            strParam = strSql.Substring(i + 1, 1);
            IBM.Data.DB2.DB2Parameter param = command.Parameters.Add(strParam, IBM.Data.DB2.DB2Type.LongVarChar);
            param.Direction = System.Data.ParameterDirection.Input;

            param.Value = data;
            try
            {
                command.ExecuteNonQuery();
            }
            catch (IBM.Data.DB2.DB2Exception ex)
            {
                this.Err       = "执行产生错误!" + ex.Message;
                this.ErrCode   = strSql;
                this.DBErrCode = 1;
                this.WriteErr();
                return(-1);
            }
            catch (Exception ex)
            {
                this.Err            = ex.Message;
                this.ErrorException = ex.InnerException + "+ " + ex.Source;
                this.WriteErr();
                return(-1);
            }

            return(0);
        }
Exemple #3
0
 public IBM.Data.DB2.DB2Parameter Add(IBM.Data.DB2.DB2Parameter value)
 {
     throw null;
 }
Exemple #4
0
        /// <summary>
        /// 执行存储过程
        /// <example>PRC_HIEBILL_CHARGE_ext,arg_checkopercode,22,1,{0},
        ///  arg_exec_Sqn,22,1,{1},arg_yearcode,22,1,{2},return_code,30,2,{3},return_result,22,2,{4}</example>
        /// </summary>
        /// <param name="strSql">存储过程-参数,类型,输入输出,数值<br>22 varchar 30 double 33 int 6 DATETIME </br></param>
        /// <param name="Return">存储过程返回值 逗号分割</param>
        /// <returns>0 成功 -1 失败</returns>
        public int ExecEvent(string strSql, ref string Return)
        {
            CloseRead();
            this.command.CommandType = System.Data.CommandType.StoredProcedure;
            this.command.Connection  = this.con as IBM.Data.DB2.DB2Connection;
            this.command.Parameters.Clear();
            string prcName = "";

            string[] prcParams = strSql.Split(',');
            try
            {
                prcName = prcParams[0];
                this.command.CommandText = prcName;
                //'22 varchar 30 double 33 int 6 DATETIME
                for (int i = 1; i < prcParams.GetUpperBound(0); i = i + 4)
                {
                    IBM.Data.DB2.DB2Parameter param = new IBM.Data.DB2.DB2Parameter();
                    param.ParameterName = prcParams[i].Trim();
                    switch (int.Parse(prcParams[i + 1]))
                    {
                    case 22:
                        param.DB2Type = IBM.Data.DB2.DB2Type.VarChar;
                        break;

                    case 30:
                        param.DB2Type = IBM.Data.DB2.DB2Type.Double;
                        break;

                    case 6:
                        param.DB2Type = IBM.Data.DB2.DB2Type.Timestamp;
                        break;

                    case 33:
                        param.DB2Type = IBM.Data.DB2.DB2Type.Integer;
                        break;

                    case 13:
                        param.DB2Type = IBM.Data.DB2.DB2Type.BigInt;
                        break;

                    case 28:
                        param.DB2Type = IBM.Data.DB2.DB2Type.BigInt;
                        break;

                    default:
                        param.DB2Type = IBM.Data.DB2.DB2Type.VarChar;
                        break;
                    }

                    param.Direction = (System.Data.ParameterDirection) int.Parse(prcParams[i + 2]);
                    if (param.Direction == System.Data.ParameterDirection.Input)
                    {
                        param.Value = prcParams[i + 3].Trim();
                        param.Size  = 50;
                    }
                    else if (param.DB2Type == IBM.Data.DB2.DB2Type.VarChar)
                    {
                        param.Size = 50;
                    }
                    this.command.Parameters.Add(param);
                }
                this.command.ExecuteNonQuery();
            }
            catch (IBM.Data.DB2.DB2Exception ex)
            {
                this.Err       = "执行产生错误!" + ex.Message;
                this.ErrCode   = strSql;
                this.DBErrCode = 1;
                this.WriteErr();
                return(-1);
            }
            catch (Exception ex)
            {
                this.Err            = "执行存储过程出错!" + strSql + ex.Message;
                this.ErrorException = ex.InnerException + "+ " + ex.Source;
                this.WriteErr();
                return(-1);
            }

            try
            {
                for (int i = 0; i < this.command.Parameters.Count; i++)
                {
                    if (this.command.Parameters[i].Direction == System.Data.ParameterDirection.Output)
                    {
                        Return = Return + "," + this.command.Parameters[i].Value;
                    }
                }
                Return = Return.Substring(1);
            }
            catch (Exception ex)
            {
                this.Err = "执行存储过程出错!" + strSql + ex.Message;
                this.WriteErr();
                return(-1);
            }

            return(0);
        }