动软MySQL存储过程模板
<#@ template language="c#" HostSpecific="True" #>
<#@ output extension= ".cs" #>
<#
TableHost host = (TableHost)(Host);
host.Fieldlist.Sort(CodeCommon.CompareByintOrder);
int columnCount=host.Fieldlist.Count;
string IdentityStr="id";
string specStr="datetime";
foreach (ColumnInfo c in host.Fieldlist)
{
if(c.IsIdentity)
{
IdentityStr=c.ColumnName.ToString().ToLower();
break;
}
}
#>
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_GetMaxId;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_GetMaxId()
BEGIN
SELECT MAX(Id) FROM <#= host.GetDALClass(host.TableName) #>;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_Exists;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_Exists
($_Id int)
BEGIN
SELECT count(1) FROM <#= host.GetDALClass(host.TableName) #> WHERE Id=$_Id ;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_ADD;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_ADD(
<#int updateI=1; foreach (ColumnInfo c in host.Fieldlist)
{ if(c.IsIdentity) { #>OUT $_<#= c.ColumnName.ToString().ToLower()#> <#=c.TypeName#> (<#=c.Length#>)<#if (updateI!=columnCount){#>,<#}#><# } else{ #><#if(c.TypeName==specStr){#>$_<#= c.ColumnName.ToString().ToLower()#> <#=c.TypeName#><#}else{#>$_<#= c.ColumnName.ToString().ToLower()#> <#=c.TypeName#>(<#=c.Length#>)<#}#><#if (updateI!=columnCount){#>,<#}#><#} updateI++;} #>)
BEGIN
INSERT INTO <#= host.GetDALClass(host.TableName) #>(<#updateI=1; foreach (ColumnInfo c in host.Fieldlist)
{ if(c.IsIdentity) { updateI++;continue;} #><#= c.ColumnName.ToString().ToLower()#><#if (updateI!=columnCount){#>,<#}#>
<# updateI++;} #>
)VALUES(
<# updateI=1; foreach (ColumnInfo c in host.Fieldlist)
{ if(c.IsIdentity) { updateI++;continue;} #>
$_<#= c.ColumnName.ToString().ToLower()#><#if (updateI!=columnCount){#>,<#}#>
<# updateI++;} #>
);
set $_<#=IdentityStr#>=last_insert_id();
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_Update;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_Update(
<#updateI=1; foreach (ColumnInfo c in host.Fieldlist)
{ #>
<#if(c.TypeName==specStr){#>
$_<#= c.ColumnName.ToString().ToLower()#> <#=c.TypeName#>
<#}else{#>
$_<#= c.ColumnName.ToString().ToLower()#> <#=c.TypeName#>(<#=c.Length#>)
<#}#>
<#if (updateI!=columnCount){#>,<#}#>
<# updateI++;} #>)
BEGIN
UPDATE <#= host.GetDALClass(host.TableName) #> SET
<#updateI=1; foreach (ColumnInfo c in host.Fieldlist)
{ if(c.IsIdentity) { updateI++;continue;}#>
<#= c.ColumnName.ToString().ToLower()#>=$_<#= c.ColumnName.ToString().ToLower()#><#if (updateI!=columnCount){#>,<#}#>
<#updateI++; } #>
WHERE Id=$_Id ;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_Delete;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_Delete(
$_Id int)
BEGIN
DELETE from <#= host.GetDALClass(host.TableName) #>
WHERE Id=$_Id ;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_GetModel;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_GetModel(
$_Id int)
BEGIN
SELECT
<# updateI=1;foreach (ColumnInfo c in host.Fieldlist)
{ #>
<#= c.ColumnName.ToString().ToLower()#><#if (updateI!=columnCount){#>,<#}#>
<#updateI++; } #>
FROM <#= host.GetDALClass(host.TableName) #>
WHERE Id=$_Id ;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_GetColumnInfo;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_GetColumnInfo(
$_Id int,
$_ColumnName varchar(20))
BEGIN
set @sqlStr=CONCAT('SELECT ',$_ColumnName , ' FROM <#= host.GetDALClass(host.TableName) #> WHERE Id= ',$_Id);
PREPARE count_stmt FROM @sqlStr;
EXECUTE count_stmt;
END;
DROP procedure IF EXISTS <#= host.GetDALClass(host.TableName) #>_GetList;
CREATE PROCEDURE <#= host.GetDALClass(host.TableName) #>_GetList()
BEGIN
SELECT
<# updateI=1;foreach (ColumnInfo c in host.Fieldlist)
{ #>
<#= c.ColumnName.ToString().ToLower()#><#if (updateI!=columnCount){#>,<#}#>
<#updateI++; } #>
FROM <#= host.GetDALClass(host.TableName) #>;
END;
动软MySQL存储过程模板的更多相关文章
- mysql存储过程模板
CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_test`(IN `nodeCode` varchar(100),IN `id` varchar(36) ...
- 动软Model 模板 生成可空类型字段
动软代码 生成可空类型 <#@ template language="c#" HostSpecific="True" #> <#@ outpu ...
- 动软模板系列二(Model层模板)
动软模板其实和CodeSmith的模板差不多 实现的原理是一样的,但是CodeSmith貌似只支持表生成,而且不够“国人化”,所以打算研究下动软的模板,如果熟练掌握后想必以后开发项目效率可以提高很多了 ...
- 【动软.Net代码生成器】连接MySQL生成C#的POCO实体类(Model)
首先是工具的下载地址: 动软.Net代码生成器 该工具官网自带完整教程: 文档:http://www.maticsoft.com/help/ 例子:http://www.maticsoft.com/h ...
- 动软生成的WCP DAO层模板(不使用接口)
本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...
- 动软代码生成器 可用于生成Entity层,可更改模板 /codesmith 也可以
动软代码生成器官方下载地址:http://www.maticsoft.com/download.aspx 教程:http://jingyan.baidu.com/article/219f4bf7dfd ...
- 手把手教你用动软.NET代码生成器实例教程
动软实战攻略 手把手教你用动软 文档编号:20110421 版权所有 © 2004-2011 动软 在线帮助:http://help.maticsoft.com 目录 一. 产品介绍 ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- 动软商城系统可免费下载了,专业批发分销商城系统,ASP.NET商城系统
动软商城系统是一套集CMS资讯+品牌Shop商城+WAP商城+APP手机客户端+SNS用户互动社区于一体的全新电商营销解决方案.主要为企业树立企业品牌形象,实现独立网络推广,充分集成网站SEO.企业微 ...
随机推荐
- Ubuntu 15.10下droidbox安装使用
DroidBox是一个动态分析Android代码的的分析工具.其目前的安装环境为:Linux/Unix/MacOSX 下面是安装步骤 一. 安装Android SDK 并添加环境变量 export P ...
- ndk学习7: 使用静态库
目录: 手工编译静态库 ndk-build编译静态库 手工编译静态库 老规矩还是先手工操作,知其然并知其所以然 需要用到的核心命令: gcc –g –c mod1.c mod2.c mod3. ...
- Asp.net MVC网站的基本结构
Asp.net MVC网站的基本结构:Controller->IBLL(定义业务接口)->BLL->DA(调用Utility)->数据库 ,其中A->B表示A调用B 1. ...
- js手机网页跳转
在网页头部加入如下代码: <script type="text/javascript"> function browserRedirect() { var sUserA ...
- ios UIButton 选中后背景图片变化发灰问题
UIButton的类型如果选择了System类型,那么设置背景图后,点击的效果是图片发灰,而不是默认的那种图片变淡黑色效果,需要用customer类型就好了.
- centos搭建svn服务器并在windows实验
安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 ...
- algorithm 中的常用函数
非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 fin ...
- Divide and Conquer:Monthly Expense(POJ 3273)
Monthly Expense 题目大意:不废话,最小化最大值 还是直接套模板,不过这次要注意,是最小化最大值,而不是最大化最小值,判断的时候要注意 联动3258 #include <iostr ...
- codeforces 556B. Case of Fake Numbers 解题报告
题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每 ...
- Mysql 基础2
创建数据库: create database/*条件*/+ text3/*数据库名称*/ 创建数据库 步骤:查询 创建查询 查询编辑器 (写代码) 删除数据库: drop datab ...