using HotelPms.Data;
|
using HotelPms.Data.Common.Interface.Access;
|
using HotelPms.Data.Master;
|
using HotelPms.Share.Data;
|
using HotelPms.Share.IO;
|
using HotelPms.Share.Util;
|
using System.Data;
|
|
namespace HotelPms.DataAccessDirect.Client
|
{
|
/// <summary>
|
/// 直接DBへアクセスする仕組み
|
/// データベース制御(クライアント側)
|
/// </summary>
|
public class DemoAccess : DataAccessDirectBase, IDisposable, IDemo
|
{
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="access"></param>
|
public DemoAccess(DataAccess access)
|
{
|
TableName = "M_Demo";
|
DBAccess = access;
|
}
|
|
public void Dispose()
|
{
|
}
|
|
/// <summary>
|
/// 排他チェックのため、最新更新日取得する
|
/// </summary>
|
/// <param name="pID"></param>
|
/// <returns></returns>
|
public int GetUpdateID(int pID)
|
{
|
return CConvert.ToInt(DBAccess.ExecuteScalar($"SELECT UpdateID FROM {TableName} WHERE ID = {pID}"));
|
}
|
|
/// <summary>
|
/// 存在チェック
|
/// </summary>
|
/// <param name="pID"></param>
|
/// <returns></returns>
|
public bool Exists(int pID)
|
{
|
return CConvert.ToInt(DBAccess.ExecuteScalar($"IF EXISTS(SELECT 1 FROM {TableName} WHERE ID = {pID}) SELECT 1 ELSE SELECT 0")) == 1;
|
}
|
|
/// <summary>
|
/// データ行を取得する
|
/// </summary>
|
/// <param name="pID"></param>
|
/// <returns></returns>
|
public Demo GetItem(int pID)
|
{
|
var result = DBAccess.GetDataReader<Demo>($"SELECT * FROM {TableName}", (reader, data) =>
|
{
|
while (reader.Read())
|
{
|
data.ConvertReader(reader);
|
}
|
});
|
return result;
|
}
|
|
/// <summary>
|
/// テーブル全データ返す
|
/// </summary>
|
/// <param name="where"></param>
|
/// <returns></returns>
|
public DataTable GetMasterGridData(string where)
|
{
|
return DBAccess.GetDataTable($"SELECT A.* FROM {TableName} A {(string.IsNullOrEmpty(where) ? string.Empty : $"WHERE {where}")} ORDER BY A.ID");
|
}
|
|
/// <summary>
|
/// データ削除
|
/// </summary>
|
/// <param name="where"></param>
|
/// <returns></returns>
|
public DataResult Remove(string where)
|
{
|
DataResult result = new DataResult() { ErrNo = 0, ErrData = string.Empty };
|
string sql = $"DELETE FROM {TableName} WHERE {where}";
|
OperationLog.Instance.WriteLog($"Sql生成:{sql}");
|
if (DBAccess.ExecuteNonQuery(sql) == -1)
|
{
|
result.ErrNo = DBAccess.ErrNo;
|
result.ErrData = DBAccess.ErrInfo;
|
}
|
OperationLog.Instance.WriteLog($"更新:{result.ToString()}");
|
return result;
|
}
|
|
/// <summary>
|
/// 追加・更新
|
/// </summary>
|
/// <param name="add"></param>
|
/// <param name="item"></param>
|
/// <returns></returns>
|
private DataResult AddOrUpdate(bool add, Demo item)
|
{
|
DataResult result = new DataResult() { ErrNo = 0, ErrData = string.Empty };
|
OperationLog.Instance.WriteLog($"データ請求:{item.ToString()}");
|
|
string sql = add ? item.AddSql() : item.UpdateSql();
|
OperationLog.Instance.WriteLog($"Sql生成:{sql}");
|
|
if (DBAccess.ExecuteNonQuery(sql) == -1)
|
{
|
result.ErrNo = DBAccess.ErrNo;
|
result.ErrData = DBAccess.ErrInfo;
|
}
|
OperationLog.Instance.WriteLog($"更新:{result.ToString()}");
|
return result;
|
}
|
|
/// <summary>
|
/// 追加
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
public DataResult Add(Demo data)
|
{
|
return AddOrUpdate(true, data);
|
}
|
|
/// <summary>
|
/// 更新
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
public DataResult Update(Demo data)
|
{
|
return AddOrUpdate(false, data);
|
}
|
}
|
}
|