SQL模板和模板实例化

Posted 程序员老郑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL模板和模板实例化相关的知识,希望对你有一定的参考价值。

需求:需要得出一个数据源DataTable,我已知SQL和HttpRequest如何,通过SQL模板的方式去实例化匹配HttpRequest中的参数实例化为查询SQL,最后返回DataTable

 

1、SQL模板

 1 SELECT 
 2        SUBSTR(PLACENAME, instr(PLACENAME, -) + 1) 场景名,
 3        COUNT(*) 小区数,
 4        SUM(ALARMCOUNT) 流量TB,
 5        ROUND(SUM(USERCOUNT)) 在线用户,
 6        SUM(TOTALFLOW) 高负荷小区数,
 7        TO_CHAR(ROUND(AVG(DOWNPRBRATE), 2), fm9999990.00) || % 小区严重告警,
 8        SUM(BURTHENCOUNT) 下行PRB利用率
 9   FROM V_CHILDSCENE_REAL_INFO
10  WHERE PLACEID = :%PLACEID%
11  GROUP BY STIME, PLACEID, PLACENAME
12  ORDER BY 高负荷小区数 DESC

 

2、SQL实例化

 1 private string CreateSQL(string sql, HttpRequest req) {
 2             IList<string> list = new List<string>();
 3             if (sql.IndexOf(":%") > -1)
 4             {
 5                 var mat = Regex.Matches(sql, "(?<=:%)[^%]+(?=%)");
 6                 foreach (Match item in mat)
 7                 {
 8                     list.Add(item.Value);
 9                 }
10                 foreach (var item in list)
11                 {
12                     sql = sql.Replace(":%" + item + "%", req[item]);
13                 }
14             }
15             return sql;
16         }

 3、查询数据并返回

1  using (var db = new OracleDB())
2 {
3     return db.ExecuteDataTable(sql);
4 }

 

以上是关于SQL模板和模板实例化的主要内容,如果未能解决你的问题,请参考以下文章

模板化运算符实例化和类型转换

Joomla1.5:模板化片段

用于实例化模板代码的显式习惯用法 - 不包括其源代码

我可以检查哪些函数模板至少被实例化过一次吗?

显式实例化模板类的显式实例化模板方法

关于模板