修改C:\Program Files (x86)\CodeSmith\v6.5\Samples\Projects\CSharp\MySQLSchemaProvider\MySQLSchemaProvider.cs

修改GetCommandParameters方法,原本是没有实现的。一直报错误信息:GetCommandParameters() is not supported in this release.

        /// <summary>/// Gets the parameters for a given command./// </summary>/// <param name="connectionString">The connection string used to connect to the target database.</param>/// <param name="command"></param>/// <returns></returns>public ParameterSchema[] GetCommandParameters( string connectionString, CommandSchema command ){// MySQL does not yet implement INFORMATION_SCHEMA.PARAMETERS// MySQL Connector/Net 1.0.7 is supposed to support DeriveParameters()// However, in my testing there appears to be a bug (throws a NULL reference exception)// This method will be unsupported until a subsequent release of DeriverParameters()// is working.// throw new NotSupportedException( "GetCommandParameters() is not supported in this release." );/*ArrayList a = new ArrayList();ParameterSchema ps;DbConnection cnx = null;DbCommand cmd = null;try{cnx = new DbConnection(connectionString);cmd = new DbCommand(command.Name, cnx);cmd.CommandType = CommandType.StoredProcedure;cnx.Open();IDbCommandBuilder.DeriveParameters(cmd);cnx.Close();foreach(MySqlParameter param in cmd.Parameters){ps = new ParameterSchema(command, param.ParameterName, param.Direction, param.DbType, param.MySqlDbType.ToString(), param.Size, param.Precision, param.Scale, param.IsNullable);a.Add(ps);}}catch{throw;}finally{if (cnx != null)cnx.Close();}return (ParameterSchema[]) a.ToArray(typeof (ParameterSchema));*/string commandText = string.Format("SELECT PARAMETER_NAME, DATA_TYPE, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION,"+ " NUMERIC_SCALE, 0 IS_NULLABLE, PARAMETER_MODE"+ " FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_SCHEMA = '{0}' AND SPECIFIC_NAME = '{1}' AND ROUTINE_TYPE = 'PROCEDURE' ORDER BY ORDINAL_POSITION", command.Database.Name, command.Name);List<ParameterSchema> parameterSchema = new List<ParameterSchema>();using (DbConnection connection = CreateConnection(connectionString)){connection.Open();DbCommand cmd = connection.CreateCommand();cmd.CommandText = commandText;cmd.Connection = connection;using (IDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)){while (reader.Read()){string name = reader.GetString( 0 );string nativeType = reader.GetString( 1 );long longSize = ( reader.IsDBNull( 2 ) == false ) ? reader.GetInt64( 2 ) : 0;byte precision = ( byte ) ( ( reader.IsDBNull( 3 ) == false ) ? reader.GetInt32( 3 ) : 0 );int scale = ( reader.IsDBNull( 4 ) == false ) ? reader.GetInt32( 4 ) : 0;bool isNullable = ( reader.IsDBNull( 5 ) == false ) && reader.GetBoolean( 5 );string direction = reader.GetString( 6 );ParameterDirection paramDirection = ParameterDirection.Input;switch(direction){case "IN":paramDirection = ParameterDirection.Input;break;case "OUT":paramDirection = ParameterDirection.Output;break;case "INOUT":paramDirection = ParameterDirection.InputOutput;break;default:paramDirection = ParameterDirection.Input;break;}int size = ( longSize < int.MaxValue ) ? ( int ) longSize : int.MaxValue;bool isUnsigned = ( nativeType.IndexOf( "unsigned" ) > -1 );DbType type = GetDbType( nativeType, isUnsigned );parameterSchema.Add(new ParameterSchema(command,name,paramDirection,type,nativeType,size,precision,scale,isNullable));}if (!reader.IsClosed)reader.Close();}if (connection.State != ConnectionState.Closed)connection.Close();}return parameterSchema.ToArray();}

编译后生成SchemaExplorer.MySQLSchemaProvider.dll,覆盖程序安装目录中SchemaProviders目录的同名文件。

修改后替换目录(C:\Program Files (x86)\CodeSmith\v6.5\SchemaProviders\SchemaExplorer.MySQLSchemaProvider.dll)中的同名文件。

启动CodeSmith后,需要在Schema Explorer中删除原来的MySQL数据库,重新添加,不然会报错。

也可以先卸载GAC中的SchemaExplorer.MySQLSchemaProvider.dll,然后将自己修改、编译并签名后的SchemaExplorer.MySQLSchemaProvider.dll安装到GAC中。

转载于:https://www.cnblogs.com/qiu2013/p/4268962.html

修改CodeSmith中的SchemaExplorer.MySQLSchemaProvider相关推荐

  1. php js怎么去掉类属性,如何修改DOM中的属性,类和样式

    通过jQuery来获取要修改的DOM元素,然后通过JavaScript中方法来对属性.类以及样式进行修改 今天在本篇文章中将分享的是如何通过修改html元素节点的样式,类和属性来进一步的更改dom,, ...

  2. pandas使用itertuples函数迭代dataframe中的数据行并自定义修改行中的数值(update row while iterating over the rows)

    pandas使用itertuples函数迭代dataframe中的数据行并自定义修改行中的数值(update row while iterating over the rows in datafram ...

  3. 修改数据库中group_concat的返回结果的长度限制

    修改数据库中group_concat的返回结果的长度限制 我们可以使用Mysql的客户端管理工具,Sqlyog 新建一个查询编辑器 显示  SHOW VARIABLES LIKE "grou ...

  4. 如何编辑PDF文件,怎么修改PDF中的文字

    相信大家都使用过PDF文件,那么有没有编辑过PDF文件呢,PDF文件的编辑是需要借助PDF编辑器的,PDF文件中的文字要怎么修改呢,Word文档的文字就直接编辑,而PDF文件并非这样,想知道怎么编辑吗 ...

  5. python excel增加一列_(用Python修改excel中一列数据)python新增一列

    python怎么从excel中读取数据? ⒈ #import παέτο import xlrd #Ρύθμι διαδρής path='C:\\Users\\jyjh\\Desktop\\data ...

  6. eclipse 配置java路径_Java修改eclipse中web项目的server部署路径问题

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  7. li前面的原点或者方的样式修改html中列表项li所显示的圆点的颜色?,以及相关样式的设定...

    如何修改html中列表项li所显示的圆点的颜色?,以及相关样式的设定   这是li标签自带的圆点的颜色改变,代码如下: .centerbt li{ content:"."; col ...

  8. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )

    文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...

  9. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

最新文章

  1. hive export import
  2. ExecutorCompletionService分析及使用
  3. 万彩录屏服务器不稳定,万彩录屏 云服务器
  4. Django-内置用户系统
  5. 单独的REST JSON API服务器和客户端? [关闭]
  6. Tomcat内存溢出及配置解决方案
  7. 实时增量学习在云音乐直播推荐系统中的工程实践
  8. python 报童模型
  9. 程序员修炼之道---从小工到专家 第一章
  10. Java 基础 —— Hello World
  11. spss软件测试题题库,spss期末考试试题及答案
  12. 音王点歌系统怎么连接服务器,KTV音响设备怎么连接?点歌机怎么连接?学习下...
  13. IDC评述网:2012年国外域名主机服务商TOP10
  14. 内涵社区APP,一款集内涵段子,百思不得其姐,煎蛋于一身的搞笑社区
  15. 全差分运算放大器浅析
  16. Zabbix最新6.2安装及使用!
  17. 关于jmeter中编写shell脚本json的应用
  18. Mac如何固定桌面排序
  19. 倾斜模型精细化处理_无人机倾斜摄影技术的三维精细模型制作
  20. kafak windows环境的简单测试笔记

热门文章

  1. 编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误
  2. vue 分模块打包 脚手架_vue-cli分模块独立打包
  3. python scrapy 环境搭建_python+scrapy环境搭建步骤描述
  4. 037_Dropdown下拉菜单
  5. 06_一对一和一对多
  6. html前端登录验证码,前端登录页面开发_js生成验证码并验证
  7. des vue 双倍长 解密_[转]单倍长密钥加密和双倍长密钥加密,银联直联终端62域难点详解...
  8. python每月定时_如何用Python写一个每分每时每天的定时程序
  9. jsp页面返回文本时产生大量空格的解决办法
  10. mysql memory_MySQL MEMORY 引擎及性能比对