-
Notifications
You must be signed in to change notification settings - Fork 105
/
MySqlProcedure.cs
36 lines (28 loc) · 1.36 KB
/
MySqlProcedure.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Text;
namespace MySql.Data.MySqlClient
{
public class MySqlProcedure
{
string _name;
string _createProcedureSQL;
string _createProcedureSQLWithoutDefiner;
public string Name { get { return _name; } }
public string CreateProcedureSQL { get { return _createProcedureSQL; } }
public string CreateProcedureSQLWithoutDefiner { get { return _createProcedureSQLWithoutDefiner; } }
public MySqlProcedure(MySqlCommand cmd, string procedureName, string definer)
{
_name = procedureName;
string sql = string.Format("SHOW CREATE PROCEDURE `{0}`;", procedureName);
_createProcedureSQL = QueryExpress.ExecuteScalarStr(cmd, sql, 2);
_createProcedureSQL = _createProcedureSQL.Replace("\r\n", "^~~~~~~~~~~~~~~^");
_createProcedureSQL = _createProcedureSQL.Replace("\n", "^~~~~~~~~~~~~~~^");
_createProcedureSQL = _createProcedureSQL.Replace("\r", "^~~~~~~~~~~~~~~^");
_createProcedureSQL = _createProcedureSQL.Replace("^~~~~~~~~~~~~~~^", "\r\n");
string[] sa = definer.Split('@');
definer = string.Format(" DEFINER=`{0}`@`{1}`", sa[0], sa[1]);
_createProcedureSQLWithoutDefiner = _createProcedureSQL.Replace(definer, string.Empty);
}
}
}