You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
325 lines
9.4 KiB
325 lines
9.4 KiB
<%@ CodeTemplate Language="C#" ClassName="DAL" TargetLanguage="C#" Debug="False" Description="" %>
|
|
<%@ Property Name="databaseProjectName" Type="System.String" Default="SpSampleDb" Optional="True" Category="Context" Description="" %>
|
|
<%@ Property Name="nameSpace" Type="System.String" Default="Dal" Optional="True" Category="Context" Description="" %>
|
|
<%
|
|
DbEntity db = Template.GetDataBase(databaseProjectName);
|
|
|
|
foreach(Table tb in db.Tables)
|
|
{
|
|
OpenResponse(databaseProjectName+"\\DAL\\"+tb.ModuleName+"\\"+tb.PropertyName+"Dal.cs");
|
|
string noDefaultFields = "";
|
|
string noDefaultFieldFormats = "";
|
|
string noDefaultFieldValues = "";
|
|
int iField = 0;
|
|
foreach(Field fd in tb.Fields)
|
|
{
|
|
if( (fd.DefaultValue != "" || fd.DefaultValue != null) && fd.Identity.Enable == false)
|
|
{
|
|
noDefaultFields += "\t\t\t\t\t"+fd.PropertyName+",\r\n";
|
|
if( fd.DataType.GroupName.ToUpper() == "STRING")
|
|
noDefaultFieldValues += "\t\t\t\t\tFormatCom.String("+tb.MemberName+"."+fd.MemberName+"),\r\n";
|
|
else if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
noDefaultFieldValues += "\t\t\t\t\t"+tb.MemberName+"."+fd.MemberName+",\r\n";
|
|
else
|
|
noDefaultFieldValues += "\t\t\t\t\t"+tb.MemberName+"."+fd.MemberName+",\r\n";
|
|
if( fd.DataType.GroupName.ToUpper() == "NUMBER")
|
|
noDefaultFieldFormats += "{"+iField.ToString()+"},";
|
|
//else if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
// noDefaultFieldFormats += "{"+iField.ToString()+"},";
|
|
else
|
|
noDefaultFieldFormats += "'{"+iField.ToString()+"}',";
|
|
iField++;
|
|
}
|
|
}
|
|
if( noDefaultFields.EndsWith(",\r\n"))
|
|
noDefaultFields = noDefaultFields.Substring(0,noDefaultFields.Length-3);
|
|
if( noDefaultFieldValues.EndsWith(",\r\n"))
|
|
noDefaultFieldValues = noDefaultFieldValues.Substring(0,noDefaultFieldValues.Length-3);
|
|
noDefaultFieldFormats = noDefaultFieldFormats.Trim(',');
|
|
|
|
%>
|
|
|
|
|
|
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
|
|
using Model;
|
|
|
|
/*******************************************************/
|
|
/*Project:
|
|
Module :
|
|
Description :
|
|
Date : <%=DateTime.Now.ToString()%>
|
|
Create : lxc
|
|
Update :
|
|
TODO : */
|
|
/*******************************************************/
|
|
|
|
namespace <%=nameSpace%>
|
|
{
|
|
public class <%=tb.PropertyName%>Dal
|
|
{
|
|
public <%=tb.PropertyName%>Dal()
|
|
{
|
|
}
|
|
#region Insert
|
|
public static int Insert(<%=tb.PropertyName%>Model <%=tb.MemberName%>)
|
|
{
|
|
string sql = @"Insert Into <%=tb.MemberName%> (
|
|
<%=noDefaultFields%>
|
|
) values(<%=noDefaultFieldFormats%>)";
|
|
sql = string.Format(sql,
|
|
<%=noDefaultFieldValues%>
|
|
);
|
|
return DBAccess.ExecuteSql(sql);
|
|
}
|
|
#endregion
|
|
|
|
#region Update
|
|
public static int Update(<%=tb.PropertyName%>Model <%=tb.MemberName%>)
|
|
{
|
|
string sql = @"Update <%=tb.MemberName%> set
|
|
<%
|
|
|
|
iField = 0;
|
|
string updstr = "";
|
|
string upvalue = "";
|
|
iField = 0;
|
|
bool bHasPrevPk = false;
|
|
foreach(Field fd in tb.Fields)
|
|
{
|
|
if( fd.Identity.Enable == false && (fd.IsPK == false || bHasPrevPk== true))
|
|
{
|
|
updstr += "\t\t\t\t\t"+fd.PropertyName+"= ";
|
|
if( fd.DataType.GroupName.ToUpper() == "NUMBER")
|
|
updstr += "{"+iField.ToString()+"}";
|
|
//else if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
// updstr += "{"+iField.ToString()+"}";
|
|
else
|
|
updstr += "'{"+iField.ToString()+"}'";
|
|
updstr += ",\r\n";
|
|
|
|
if( fd.DataType.GroupName.ToUpper() == "STRING")
|
|
upvalue += "\t\t\t\t\tFormatCom.String("+tb.MemberName+"."+fd.MemberName+"),\r\n";
|
|
else if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
upvalue += "\t\t\t\t\tDBAccess.DateStr("+tb.MemberName+"."+fd.MemberName+"),\r\n";
|
|
else
|
|
upvalue += "\t\t\t\t\t"+tb.MemberName+"."+fd.MemberName+",\r\n";
|
|
iField++;
|
|
}
|
|
|
|
if( fd.IsPK == true)
|
|
bHasPrevPk = true;
|
|
}
|
|
if( updstr.EndsWith(",\r\n"))
|
|
updstr = updstr.Substring(0,updstr.Length-3);
|
|
|
|
|
|
%>
|
|
<%=updstr%>
|
|
where
|
|
<%
|
|
updstr = "";
|
|
foreach(Field fd in tb.Fields){
|
|
if( fd.IsPK == true)
|
|
{
|
|
updstr += "\t\t\t\t\t"+fd.PropertyName+"= ";
|
|
if( fd.DataType.GroupName.ToUpper() == "NUMBER")
|
|
updstr += "{"+iField.ToString()+"}";
|
|
//else if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
// updstr += "{"+iField.ToString()+"}";
|
|
else
|
|
updstr += "'{"+iField.ToString()+"}'";
|
|
updstr += ",\r\n";
|
|
if( fd.DataType.GroupName.ToUpper() == "DATETIME")
|
|
upvalue += "\t\t\t\t\tDBAccess.DateStr("+tb.MemberName+"."+fd.MemberName+"),\r\n";
|
|
else
|
|
upvalue += "\t\t\t\t\t"+tb.MemberName+"."+fd.MemberName+",\r\n";
|
|
|
|
break;
|
|
}}
|
|
if( updstr.EndsWith(",\r\n"))
|
|
updstr = updstr.Substring(0,updstr.Length-3);
|
|
if( upvalue.EndsWith(",\r\n"))
|
|
upvalue = upvalue.Substring(0,upvalue.Length-3);
|
|
%>
|
|
<%=updstr%>";
|
|
sql = string.Format(sql,
|
|
<%=upvalue%>);
|
|
return DBAccess.ExecuteSql(sql);
|
|
}
|
|
#endregion
|
|
|
|
<%
|
|
string signPk = "";
|
|
string signPkValue = "";
|
|
string pkList = "";
|
|
string pkListValue = "";
|
|
foreach(Field fd in tb.Fields)
|
|
{
|
|
if( fd.IsPK == true)
|
|
{
|
|
pkList += fd.DataType.DotNetType+" "+ fd.MemberName+",";
|
|
pkListValue += "\t\t\t\t\t"+fd.MemberName+",\r\n";
|
|
|
|
if( signPk == "")
|
|
{
|
|
signPk = fd.DataType.DotNetType+" "+ fd.MemberName;
|
|
signPkValue = "\t\t\t"+fd.MemberName ;//+"\r\n";
|
|
}
|
|
}
|
|
}
|
|
pkList = pkList.Trim(',');
|
|
if( pkListValue.EndsWith(",\r\n"))
|
|
pkListValue = pkListValue.Substring(0,pkListValue.Length-3);
|
|
%>
|
|
|
|
#region Delete
|
|
public static int Delete(<%=signPk%>)
|
|
{
|
|
<%
|
|
string delInsstr = "";
|
|
string selectInsstr = "";
|
|
string signSelectInsstr = "";
|
|
string delIncvalue = "";
|
|
iField = 0;
|
|
foreach(Field fd in tb.Fields)
|
|
{
|
|
if( fd.IsPK == true)
|
|
{
|
|
string strt = "";
|
|
if( fd.DataType.GroupName.ToUpper() == "NUMBER")
|
|
strt = "{"+iField.ToString()+"}";
|
|
else
|
|
strt = "'{"+iField.ToString()+"}'";
|
|
if( signSelectInsstr == "")
|
|
signSelectInsstr = "\t\t\t\t\ta."+fd.PropertyName+"= " + strt +"\r\n";
|
|
selectInsstr += "\t\t\t\t\ta."+fd.PropertyName+"= " + strt +",\r\n";
|
|
delInsstr += "\t\t\t\t\t"+fd.PropertyName+"= " + strt +",\r\n";
|
|
delIncvalue += "\t\t\t"+tb.MemberName+"."+fd.PropertyName+",\r\n";
|
|
iField++;
|
|
break;
|
|
}
|
|
}
|
|
if( selectInsstr.EndsWith(",\r\n"))
|
|
selectInsstr = selectInsstr.Substring(0,selectInsstr.Length-3);
|
|
if( delInsstr.EndsWith(",\r\n"))
|
|
delInsstr = delInsstr.Substring(0,delInsstr.Length-3);
|
|
if( delIncvalue.EndsWith(",\r\n"))
|
|
delIncvalue = delIncvalue.Substring(0,delIncvalue.Length-3);
|
|
|
|
%>
|
|
string sql = @"Delete from <%=tb.MemberName%> where <%=delInsstr%>";
|
|
sql = string.Format(sql,<%=signPkValue%>);
|
|
return DBAccess.ExecuteSql(sql);
|
|
}
|
|
#endregion
|
|
|
|
#region Select
|
|
<%
|
|
string fieldstr = "a.*";
|
|
string tablestr = tb.Name+" a ";
|
|
foreach(Field fd in tb.Fields)
|
|
{
|
|
FieldRel fieldRel = new FieldRel(fd.Code);
|
|
if( fieldRel.RelTable != "")
|
|
{
|
|
fieldstr +=","+fieldRel.RelTableAlias+"."+fieldRel.RelShowField;
|
|
if( fieldRel.RelShowFieldAlias != fieldRel.RelShowField)
|
|
fieldstr += " as "+fieldRel.RelShowFieldAlias;
|
|
|
|
tablestr +=" inner join "+fieldRel.RelTable;
|
|
if( fieldRel.RelTableAlias != fieldRel.RelTable)
|
|
tablestr += " "+fieldRel.RelTableAlias;
|
|
tablestr +=" on a."+fd.PropertyName+"="+fieldRel.RelTableAlias+"."+fieldRel.RelField;
|
|
}
|
|
}
|
|
string sqlHead = "select "+fieldstr+" from "+tablestr;
|
|
%>
|
|
public static DataSet Select()
|
|
{
|
|
string sql = "<%=sqlHead%>";
|
|
return DBAccess.Query(sql);
|
|
}
|
|
|
|
|
|
|
|
public static DataSet Select(string where)
|
|
{
|
|
string sql = "<%=sqlHead%>";
|
|
if( where !="")
|
|
sql += " where "+ where;
|
|
return DBAccess.Query(sql);
|
|
}
|
|
public static List<<%=tb.PropertyName%>Model> SelectModelList(string where)
|
|
{
|
|
List<<%=tb.PropertyName%>Model> modelLst = new List<<%=tb.PropertyName%>Model>();
|
|
|
|
|
|
DataSet ds = Select(where);
|
|
if (DBUnit.HasRow(ds))
|
|
{
|
|
DataTable dt = ds.Tables[0];
|
|
int icount = dt.Rows.Count;
|
|
for (int i = 0; i < icount; i++)
|
|
{
|
|
DataRow dr = dt.Rows[i];
|
|
<%=tb.PropertyName%>Model messagemodel = new <%=tb.PropertyName%>Model(dr);
|
|
modelLst.Add(messagemodel);
|
|
}
|
|
|
|
}
|
|
return modelLst;
|
|
}
|
|
public static List<<%=tb.PropertyName%>Model> SelectModelList(string where,int pageIndex,int pageSize,out int count )
|
|
{
|
|
List<<%=tb.PropertyName%>Model> modelLst = new List<<%=tb.PropertyName%>Model>();
|
|
|
|
|
|
DataSet ds = SelectForList(where,pageIndex,pageSize,out count);
|
|
if (DBUnit.HasRow(ds))
|
|
{
|
|
DataTable dt = ds.Tables[0];
|
|
int icount = dt.Rows.Count;
|
|
for (int i = 0; i < icount; i++)
|
|
{
|
|
DataRow dr = dt.Rows[i];
|
|
<%=tb.PropertyName%>Model messagemodel = new <%=tb.PropertyName%>Model(dr);
|
|
modelLst.Add(messagemodel);
|
|
}
|
|
|
|
}
|
|
return modelLst;
|
|
}
|
|
public static DataSet SelectForList(string where,int pageIndex,int pageSize,out int count )
|
|
{
|
|
count = 0;
|
|
string tableName ="V_<%=tb.Name%>";
|
|
return DBAccess.Query(tableName,pageSize,pageIndex, where,ref count);
|
|
}
|
|
|
|
public static <%=tb.PropertyName%>Model SelectByWhere(string where)
|
|
{
|
|
<%=tb.PropertyName%>Model <%=tb.MemberName%> = null;
|
|
|
|
DataSet ds = Select(where);
|
|
if (DBUnit.HasRow(ds))
|
|
<%=tb.MemberName%> = new <%=tb.PropertyName%>Model(ds.Tables[0].Rows[0]);
|
|
return <%=tb.MemberName%>;
|
|
}
|
|
public static <%=tb.PropertyName%>Model Select(Int32 id)
|
|
{
|
|
string where = "id="+id;
|
|
return SelectByWhere(where);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
<%
|
|
|
|
CloseResponse();
|
|
}
|
|
%>
|
|
|
|
|