using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using CoreFS.CA06;
namespace Core.StlMes.Client.Sale.DbHelp
{
public class DbExecute:DbBase
{
private OpeBase _openBase = null;
private CoreFS.CA06.FrmBase fr = new FrmBase();
// 定义操作成功与否,和服务端返回信息一致
// 见core.stlmes.server.sale.dbhelp.DbManager
private string SuccessResult = "SUCCESS";
private string FailResult = "FAIL";
public string GetReturnErrorInfo(CoreClientParam result)
{
if (result == null)
return "网络异常";
if (result.ReturnCode == -1)
return result.ReturnInfo + "";
return "";
}
public DbExecute(OpeBase ob)
{
_openBase = ob;
fr.ob = _openBase;
}
///
///获取调用查询的参数
///
///
///
///
private CoreClientParam GetCoreClientParamForQuery(DataTable dt,object[] args)
{
return DbCoreClientParam.GetCoreClientParam_Query(dt, args);
}
///
/// 获取dml 传入参数
///
///
///
private CoreClientParam GetCoreClientParamForNoQuery( object[] args)
{
return DbCoreClientParam.GetCoreClientParam_NoQuery(args);
}
public DataSet ExecuteQuery(string sqlStr)
{
string errMsg = "";
return ExecuteQuery(sqlStr,out errMsg);
}
public DataSet ExecuteQuery(string sqlStr,out string errMsg)
{
DataSet ds = new DataSet();
errMsg = "";
try
{
DataTable dt = new DataTable();
CoreClientParam pa = fr.ExecuteQueryToDataTable(GetCoreClientParamForQuery(dt, new object[] { sqlStr }), CoreInvokeType.Internal);
errMsg = GetReturnErrorInfo(pa);
ds.Tables.Add(dt);
}
catch
{
}
return ds;
}
public DataSet ExecuteQuery(string sqlStr,string daoName)
{
DataSet ds = new DataSet();
string errMsg = "";
try
{
return ExecuteQuery(sqlStr,daoName,out errMsg);
}
catch
{
}
return ds;
}
public DataSet ExecuteQuery(string sqlStr, string daoName,out string errMsg)
{
DataSet ds = new DataSet();
errMsg = "";
try
{
DataTable dt = new DataTable();
CoreClientParam pa = fr.ExecuteQueryToDataTable(GetCoreClientParamForQuery(dt, new object[] { sqlStr, daoName }), CoreInvokeType.Internal);
errMsg = GetReturnErrorInfo(pa);
ds.Tables.Add(dt);
}
catch
{
}
return ds;
}
public void ExecuteNoQuery(string sqlStr)
{
string msg = "";
ExecuteNoQuery(sqlStr, out msg);
}
public void ExecuteNoQuery(string sqlStr,out string msg)
{
msg = "";
try
{
CoreClientParam pa = fr.ExecuteNonQuery(GetCoreClientParamForNoQuery(new object[] { sqlStr }), CoreInvokeType.Internal);
msg = GetReturnErrorInfo(pa);
}
catch
{
}
}
public void ExecuteNoQuery(string sqlStr, string daoName)
{
string msg = "";
try
{
CoreClientParam pa = fr.ExecuteNonQuery(GetCoreClientParamForNoQuery(new object[] { sqlStr, daoName }), CoreInvokeType.Internal);
msg = GetReturnErrorInfo(pa);
}
catch
{
}
}
public void ExecuteNoQuery(string sqlStr,string daoName,out string msg)
{
msg = "";
try
{
CoreClientParam pa = fr.ExecuteNonQuery(GetCoreClientParamForNoQuery(new object[] { sqlStr, daoName }), CoreInvokeType.Internal);
}
catch
{
}
}
public void ExecuteNoQueryTransaction(string sqlStr, DbTransaction transaction)
{
if (transaction == null || transaction.ErrMsg.Length > 0)
return;
try
{
CoreClientParam pa = fr.ExecuteNonQuery(DbCoreClientParam.GetCoreClientParam_Trancation(new object[] { sqlStr ,transaction.Uuid}), CoreInvokeType.Internal);
if (pa == null)
transaction.ErrMsg = "异常错误";
else {
transaction.ErrMsg = GetReturnErrorInfo(pa);
}
}
catch
{
}
}
public CoreClientParam GetUuid()
{
CoreClientParam pa = fr.ExecuteNonQuery(DbCoreClientParam.GetCoreClientParam_BeginTransaction(new object[] { }), CoreInvokeType.Internal);
return pa;
}
public CoreClientParam GetUuid(string daoName)
{
CoreClientParam pa = fr.ExecuteNonQuery(DbCoreClientParam.GetCoreClientParam_BeginTransaction(new object[] { daoName }), CoreInvokeType.Internal);
return pa;
}
public CoreClientParam Commit(string uuid)
{
CoreClientParam pa = fr.ExecuteNonQuery(DbCoreClientParam.GetCoreClientParam_Commit(new object[] { uuid }), CoreInvokeType.Internal);
if ( GetReturnErrorInfo(pa).Length > 0)
RollBack(uuid);
return pa;
}
public CoreClientParam RollBack(string uuid)
{
CoreClientParam pa = fr.ExecuteNonQuery(DbCoreClientParam.GetCoreClientParam_RollBack(new object[] { uuid }), CoreInvokeType.Internal);
return pa;
}
}
}