欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题

发布时间:2025/7/25 数据库 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
上一篇关于推荐SQL Prompt 3.8的随笔,园子里几位朋友回复反应不能使用格式化功能,并强烈要求再次解决该问题,

      所以昨天晚上弄到凌晨2点,最终的SQL Prompt补丁:
下载地址:/Files/jintan/Sql_Prompt_RedGate.Licensing.Client.rar
支持格式化SQL

其实破解过程很简单,没有涉及到脱壳,跟踪等。

大致的思路是这样的:
public int DaysLeftInTrial 这个属性返回值大于0,我这里是14,
       public int DaysLeftInTrial
        
{
            
get
            
{
                
int days;
                
if (this.TrialStatus != TrialStatus.InTrial)
                
{
                    
return 0;
                }

                
if (this.d == DateTime.MinValue)
                
{
                    TimeSpan span 
= DateTime.UtcNow.Subtract(this.b);
                    days 
= 14 - span.Days;
                }

                
else
                
{
                    days 
= this.d.Subtract(DateTime.UtcNow).Days;
                }

                
if (days < 0)
                
{
                    days 
= 14;
                }

                
return days;
            }

        }
 

为了保险起见,我又修改了TrialStatus ,
public TrialStatus TrialStatus 

     get{
return TrialStatus.InTrain; } 
     set{.} 

这样已经可以保证永远都是试用并且不过期。

最后修改IL代码,我用的是http://www.codeproject.com/KB/dotnet/NetDasm.aspx这个工具修改IL,配合Reflector使用
当然你也可以直接用SDK里面的ildasm+ilasm工具修改。

这次不用做去掉强命名的操作了,直接copy到目录覆盖原来的就行了。
注意:经测试,一定要去掉强命名才能使用,请自己去掉RedGate.Licensing.Client.dll的强命名。

对于Red-Gate的其他产品,同样可以使用上面的方法,应该没有问题的。

注:
上个版本修改的地方是:
public bool get_Activated()
{
    
return true;
}
对应的IL:
Code: method public hidebysig specialname instance bool get_Activated() cil managed { .maxstack 8 L_0000: ldc.i4.1 L_0001: ret } 但是不知道什么原因,格式化的菜单一直是灰色。所以才有现在的这个Patch

转载于:https://www.cnblogs.com/jintan/archive/2008/06/16/1223282.html

总结

以上是生活随笔为你收集整理的再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。