From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.DataAccessDirect.Client/DemoAccess.cs |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

diff --git a/HotelPms.DataAccessDirect.Client/DemoAccess.cs b/HotelPms.DataAccessDirect.Client/DemoAccess.cs
new file mode 100644
index 0000000..35cd328
--- /dev/null
+++ b/HotelPms.DataAccessDirect.Client/DemoAccess.cs
@@ -0,0 +1,140 @@
+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);
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.10.0