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;
}
}
}