using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HPSocketCS.Extended { /// /// SQL指令请求处理类 /// public class HP_SQLHelper { public HP_SQLHelper() { } public static SerSqlParameter[] ToSerSqlParameter(params System.Data.SqlClient.SqlParameter[] cmdParms) { return IDataParameterToSerSqlParameter(cmdParms); } public static SerSqlParameter[] IDataParameterToSerSqlParameter(params System.Data.IDataParameter[] cmdParms) { List serSqlParameterList = new List(); if (cmdParms != null) { foreach (System.Data.SqlClient.SqlParameter par in cmdParms) { serSqlParameterList.Add(new SerSqlParameter(par)); } } return serSqlParameterList.ToArray(); } /// /// 设置输出参数的值 /// /// 用户提交的参数集合 /// 执行后返回的参数集合 public static void SetOutputSqlParameter(System.Data.IDataParameter[] cmdParms, List serSqlParameterList) { foreach (SerSqlParameter spar in serSqlParameterList) { foreach (System.Data.SqlClient.SqlParameter par in cmdParms) { if (spar.ParaName.ToLower() == par.ParameterName.ToLower()) { par.Value = spar.ParaVal; break; } } } } static HPSocketCS.TcpPackClient hpClient; /// /// 网络对象 /// [Obsolete("此属性只用于“Helper_SQLHelper”类,做数SQL数据传输,请不要在其它地方使用", false)] public static HPSocketCS.TcpPackClient HpClient { get { return hpClient; } set { hpClient = value; } } /// /// 发送SQL数据库请求命令到服务器并返回请求结果 /// /// 请求的SQL命令数据类 /// /// [Obsolete("此方法只用于“Helper_SQLHelper”类,做数SQL数据传输,请不要在其它地方使用", false)] public static HPSocketCS.Extended.SQLHelperReturnData HP_SendSqlCommandToServer(HPSocketCS.Extended.SQLHelperRequestData requestData, int millisecondsTimeout = 1000*90) { return HP_SQLHelper.HP_SendSqlCommandToServer(HP_SQLHelper.HpClient,requestData, millisecondsTimeout); } /// /// 发送SQL数据库请求命令到服务器并返回请求结果 /// /// 请求的SQL命令数据类 /// /// public static HPSocketCS.Extended.SQLHelperReturnData HP_SendSqlCommandToServer(HPSocketCS.TcpPackClient _Client,HPSocketCS.Extended.SQLHelperRequestData requestData, int millisecondsTimeout = 1000*90) { HPSocketCS.Extended.SQLHelperReturnData retData = null; if (_Client.State == ServiceState.Stoped || _Client.State == ServiceState.Stoping) { _Client.Connetion(); System.Threading.Thread.Sleep(1000); } if (_Client.State == ServiceState.Started) { try { byte[] tempSendBuffer = HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(requestData); using (System.IO.MemoryStream retMstream = _Client.AutoUnpackingSendAndReturnResult(tempSendBuffer, HPSocketCS.Extended.DataType.SQLHelper, HPSocketCS.Extended.TransferRequestCommand.SQLHelperData, millisecondsTimeout)) { if (retMstream != null && retMstream.Length > 0) { retData = (HPSocketCS.Extended.SQLHelperReturnData)HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectDeserializeDecompress(retMstream.GetBuffer()); retData.DataSize = retMstream.Length; } if (retMstream != null) { retMstream.Close(); } } } catch (Exception ex) { retData = new HPSocketCS.Extended.SQLHelperReturnData("SQL请求处理出错:" + ex.Message); } } else { return new SQLHelperReturnData("SQL指令时失败,未连接到服器或网络连接已断开,请检查网络环境。"); } return retData; } } }