using System.Data;
namespace HotelPms.Share.Data;
public abstract class TableAccessBase : IDisposable
{
///
/// 同期用
///
public static object SyncRoot { get; set; } = new object();
///
/// テーブル名
///
public string TableName { get; set; } = string.Empty;
///
/// 追加SQL
/// SourceFactoryより自動で生成可能
///
public string InsertSql { get; set; } = string.Empty;
///
/// 更新SQL
/// SourceFactoryより自動で生成可能
///
public string UpdateSql { get; set; } = string.Empty;
public TableAccessBase(string tableName)
{
TableName = tableName;
}
public abstract System.Data.DataTable GetPopUpList(DataAccess access);
public abstract System.Data.DataTable GetPopUpList(DataAccess access, object[] key);
/// 項目値を返す
///
///
///
///
///
public object GetFieldValue(DataAccess access, string field, string where)
{
return access.ExecuteScalar(string.Format("Select {1} From {0} {2}", TableName, field, where));
}
/// 複数項目値を返す
///
///
///
/// Name1,Name2,Name3…
///
public DataTable GetFields(DataAccess access, string fields, string where)
{
return access.GetDataTable(string.Format("Select {1} From {0} {2}", TableName, fields, where));
}
/// 項目更新
///
///
///
///
///
public bool SetFieldValue(DataAccess access, string field, string value, string where)
{
return access.ExecuteNonQuery(string.Format(" UPDATE {0} SET {1} = '{2}' {3}", TableName, field, value, where)) > 0;
}
public virtual void Dispose()
{
}
}