/// <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); }
/// <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); }
public IBM.Data.DB2.DB2Parameter Add(IBM.Data.DB2.DB2Parameter value) { throw null; }
/// <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); }