首页
社区
课程
招聘
[转帖]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]
发表于: 2010-8-30 08:11 12801

[转帖]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]

2010-8-30 08:11
12801
SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]

SoftTree SQL Assistant v5.1.7.0

SQL Assistant equips database developers and DBAs with the productivity tools they need to speed up the database development process, improve code quality and accuracy. SQL Assistant can boost your SQL coding productivity by 300%.

Target SQL and non-SQL editors

SQL Assistant integrates with many widely used database editors and database management and development environments including native tools that come with your database systems. It provides assistance with code typing, automatic word completion and database object and attributes completion and browsing. It provides functions for quick entry of common SQL constructs and code snippets. It also provides integrated and fully interactive SQL code assistance system for instant help with SQL command syntax and options available in specific database versions, real-time code syntax checker, spell checker and a number of other vital coding tools.

SQL Assistant is fast and can be used with both very small and very large database systems. It is also very flexible and can be easily customized by users to match their coding habits.

Key Features and Benefits

* Doubles SQL developer productivity
* Improves code quality and accuracy
* Provides advanced SQL code intellisense features, including support for databases, objects, parameters, script variables, syntax elements and much more…
* Provides interactive SQL reference and SQL code assistance systems
* Provides advanced SQL code formatters and beautifiers; SQL syntax validation, code structure views for fast code navigation, and more…
* Provides integrated real-time code syntax and spell checker
* Supports 8 major database systems: Oracle, SQL Server, DB2, MySQL, PostgreSQL, Sybase ASE, Sybase ASA, MS Access, and their SQL dialects
* Integrates with many SQL and non-SQL editors
* Fast and has small disk and memory footprint
* Can be easily installed without interrupting any existing processes and used immediately

Pre-configured targets:

* SQL Server Management Studio
* SQL Query Analyzer
* SQL Server Enterprise Manager
* Visual Studio for Database Professionals (DataDude)
* Visual Studio .NET/2005/2008/2010
* Visual Studio C# Express, VB Express, C++ Express, Web Developer Express
* Eclipse
* IBM Data Studio
* Delphi
* DB Tools for Oracle
* PL/SQL Developer
* Oracle SQL*Plus
* Toad for Oracle
* Toad for MySQL
* Toad for DB2
* Toad for SQL Server
* PowerBuilder
* PostgreSQL pgAdmin III
* MySQL Query Browser
* MySQL Workbench
* Microsoft Access
* UltraEdit
* Notepad++
* Notepad

Technical specifications:
Disk space – 12.5 MB, Memory – 128 MB, CPU – Pentium or compatible
OS – Windows 2000/XP/2003/Vista/2008/7.

Supported database systems:

* Oracle 8i, 9i, 10g, 11g
* Microsoft SQL Server 2000, 2005, 2008
* DB2 UDB 7, 8, 9, 9.5
* DB2 UDB for iSeries
* MySQL 5.x
* Sybase ASE 12.x, 15.x
* Sybase ASA 7, 8, 9, 10
* PostgreSQL 8.x
* Microsoft Access 2003, 2007,2010


http://hotfile.com/dl/65526284/2abb276/sql.assistant.v5.1.7.0.incl.patch-TRAN.rar.html

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (35)
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这个我分析过算法
写过注册的机的
倒没必要用PATCH 了
2010-8-30 09:33
0
雪    币: 615
活跃值: (1192)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不错 已经用了.
2010-8-31 10:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
站着说话不腰痛,写过注册机倒是拿出来用啊,楼主可是提供了具体东东的,感谢楼主无私分享!
2010-8-31 15:45
0
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
回LS
可以在论坛中搜索一下
2010-8-31 17:26
0
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
http://bbs.pediy.com/showthread.php?t=112231
2010-8-31 17:31
0
雪    币: 615
活跃值: (1192)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
更新了 5.1.10
2010-8-31 21:54
0
雪    币: 97697
活跃值: (200734)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
NO TEST.
上传的附件:
2010-8-31 23:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能象v5.1.7一样提供pro版或ent版的破解吗?
替众多FANS感谢楼主!
2010-9-9 08:47
0
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
standard 版
030401EE-902943-3W4LH6A-1MOL-4953
2010-9-9 09:31
0
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
public class SqlAssistantKeyGen {
        private static String licType;
        private static String strMOrL;
        private static java.util.Random random = new java.util.Random();
        private static boolean log = true;
        public static int bigNoFlag;
        static {
                System.out.println("Sql Assistant 5 Key");
                licType = ""; // Enterprise Edition
                // licType = ""; // Professional Editio
                // licType = "";//Site Editio
                // licType = "";//Standard Editio
        }

        public static void main(String[] args) throws Exception {
                for (int i = 0; i < 100; i++) {
                        // System.out.println(getLicense());
                        CheckLicense.checkLicense(getLicense());
                }
        }

        public static String getLicense() {
                // 注册码格式 key0 key1 key2 key3 key4 以 - 分隔
                // xx-xx-xx-xx-xx

                String key0 = "";
                String key1 = "";
                String key2 = "";
                String key3;
                String key4 = "";

                // step 1 生成000000-999999随机字符 xx(key1)
                // step 2 将上一步6位数每位数值相加再+22,作最后一组(key4)前两位字符
               

                // step 3 先获得注册类型xxxx 后的1位 值 是 x 或x,计算出一个值
                // 如果是 x,要满足
                // 1+值(2153483746)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
               
                // 或
                // 1+值(3227225570)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
               

                // 如果是 xx ,要满足
                // 16+值(2153483731)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
                // 或
                // 16+值(3227225555)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
               
                // 根据step3 值,计算key4最后两字符
                // 如果=2153483746,各位数值相加再+22 =65

                // step 4 生成key2,满足
                // 字符先反向,然后取每位在字符串xxxxxxxxxx中的索引值,再乘上以1为初值,32倍递增的基数
                // 加起来=step3中的值

                // step 5 key3的生成
                // 第一位,注册类型, xxxxx
                // 第二位,随机是 x 或 xxx
                // 后两位随机生成

                // step 6 key0
                // 由key1,key2拼接与key3,key4拼接的字符串,每位ASCII数值相加,得到各4位一组,一共8位的16进制字符
                int rdGet = Math.abs(random.nextInt()) % 2;
                if (rdGet > 0) {
                        strMOrL = "xxx";
                }
                else {
                        strMOrL = "xxxx";
                }

                rdGet = Math.abs(random.nextInt()) % 2;
                if (rdGet > 0) {
                        bigNoFlag = 1;
                }
                else {
                        bigNoFlag = 0;
                }
                key3 = licType + strMOrL + getRandomString2();

                // 生成000000-999999随机字符
                int ikey1 = Math.abs(random.nextInt()) % 999999 + 0;
                key1 = frontCompWithZore(ikey1, 6, "d");
                // key4前两字符
                int firstTwoLetterOfKey4 = getStrSum(key1, 0, 6) + 22;
                // 此值为key3进行计算后乘出的值
                long value = getValue(key1, firstTwoLetterOfKey4);
                int lastTwoLetterOfKey4 = getLastTwoLetterOfKey4(value);
                key4 = String.valueOf(firstTwoLetterOfKey4 + "" + lastTwoLetterOfKey4);
                key2 = getKey2(value);
                key0 = getKey0(key1 + key2, key3 + key4);
                return key0 + "-" + key1 + "-" + key2 + "-" + key3 + "-" + key4;
        }

        public static int getStrSum(String str, int start, int len) {
                int result = 0;
                for (int i = start; i < len; i++) {
                        result += Integer.parseInt(String.valueOf(str.charAt(i)));
                }
                return result;
        }

        public static int getFirstTwoLetterOfKey4() {
                int rdGet = Math.abs(random.nextInt()) % 54 + 22;
                return rdGet;
        }

        public static long getValue(String key1, int firstTwoLetterOfKey4) {
                String lastTwoLetterOfKey1 = String.valueOf(key1);
                lastTwoLetterOfKey1 = lastTwoLetterOfKey1.substring(lastTwoLetterOfKey1
                                .length() - 2);
                long i3 = Integer.parseInt(lastTwoLetterOfKey1);
                if (strMOrL == "M") {
                        if (bigNoFlag == 0) {
                                i3 += 2147483647l + 100000 * firstTwoLetterOfKey4;
                        }
                        else {
                                i3 += 3221225471l + 100000 * firstTwoLetterOfKey4;
                        }
                }
                else {
                        if (bigNoFlag == 0) {
                                i3 += 3221225456l + 100000 * firstTwoLetterOfKey4;
                        }
                        else {
                                i3 += 2147483632l + 100000 * firstTwoLetterOfKey4;
                        }

                }
                return i3;
        }

        public static int getLastTwoLetterOfKey4(long value) {
                String s = String.valueOf(value);
                int result = 0;
                for (int i = 0; i < s.length(); i++) {
                        result += Integer.parseInt(String.valueOf(s.charAt(i)));
                }
                result += 22;
                return result;
        }

        public static String getKey2(long num) {
                String result = "";
                String str = xxxxxx
                int base = 1073741824;

                while (base > 0) {
                        if (num / base > 0) {
                                long i = num / base;
                                // result += i;
                                num = num - i * base;
                                char ch = str.charAt((int) i - 1);
                                result += Character.toUpperCase(ch);
                                base /= 32;
                        }
                        else {
                                base /= 32;
                                // 取个不在字符串中的字符,最简单的是取0
                                result += getRandomString1();
                                // result += "0";
                                continue;
                        }
                }
                return result;
        }

        public static String getKey0(String str1, String str2) {
                int result = 0;
                for (int i = 0; i < str1.length(); i++) {
                        result += Integer.valueOf(str1.charAt(i));
                }
                str1 = frontCompWithZore(result, 4, "x");
                result = 0;
                for (int i = 0; i < str2.length(); i++) {
                        result += Integer.valueOf(str2.charAt(i));
                }
                str2 = frontCompWithZore(result, 4, "x");
                return str1 + str2;
        }

        public static String frontCompWithZore(int sourceDate, int formatLength,
                        String format) {
                /*
                 * 0 指前面补充零 formatLength 字符总长度为 formatLength x 代表表现形式。
                 */
                String newString = String.format("%0" + formatLength + format,
                                sourceDate);
                return newString.toUpperCase();
        }

        public static String getRandomString1() {

                StringBuffer sb = new StringBuffer();
                int rdGet;
                char ch;
                rdGet = Math.abs(random.nextInt()) % 5 + 87;
                if (rdGet > 90) {
                        rdGet = 48;
                }
                ch = (char) rdGet;
                sb.append(ch);

                return sb.toString();
        }

        public static String getRandomString2() {
                StringBuffer sb = new StringBuffer();
                int rdGet;
                char ch;
                for (int i = 0; i < 2; i++) {
                        rdGet = Math.abs(random.nextInt()) % 28 + 65;
                        if (rdGet > 90) {
                                rdGet = Math.abs(random.nextInt()) % 10 + 48;
                        }
                        ch = (char) rdGet;
                        sb.append(ch);
                }

                return sb.toString();
        }
}
2010-9-9 09:36
0
雪    币: 149
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
略去部分请根据我发的算法分析自行修改
2010-9-9 09:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
正需要 可是我不知道怎么用啊
2010-9-16 10:49
0
雪    币: 12
活跃值: (603)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
已经下载,正在研究ing,谢谢楼主分享
2010-9-17 09:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
验证码可用哦。谢谢qazzaqqa
研究一下你写的算法,再次感谢分享
2010-9-23 23:20
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢楼主分享
2010-10-10 17:25
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
验证有效,谢谢了
2011-1-21 15:13
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
不用這個,不需要它
2011-1-21 15:19
0
雪    币: 84
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
做点小贡献, 把qazzaqqa的工作用js写了一个keygen.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SQL Assistant v5.xx Key Generator</title>
<style type="text/css">
</style>
<script language="javascript" type="text/javascript">
var toInt = function(x) { return Math.floor(x); }
var randInt = function () { return toInt(Math.random() * Math.pow(2, 32)); }

var licType,
	strMOrL,
	log = true,
	bigNoFlag;


window.onload = function() {
	licType = 'E';
	document.getElementById("thekey").innerHTML = getLicense();
}

// "E" : Enterprise Edition
// "P" : Professional Edition
// "S" : Site Edition
// "1" : Standard Edition	

function genkey(e)
{
	// get either event (W3C) or 
	// window event object (MSIE)
	e = e || window.event; 
	// get either target (W3C) or event source (MSIE)
	var t = e.target || e.srcElement;
	switch(t.value) {
		case '1': case 'S': case 'P': case 'E':
			licType = t.value;
			document.getElementById("thekey").innerHTML = getLicense();
			//alert("Sql Assistant 5 Key:\r\n" + getLicense());
		break;
		default:
	}
}

function getLicense() {
	// 注册码格式 key0 key1 key2 key3 key4 以 - 分隔
	// xx-xx-xx-xx-xx
	// Example:
	//   Standard 版 
	//   030401EE-902943-3W4LH6A-1MOL-4953
	
	var key0 = '',
	key1 = '',
	key2 = '',
	key3 = '',
	key4 = '';
	
	// step 1 生成000000-999999随机字符 xx(key1)
	// step 2 将上一步6位数每位数值相加再+22,作最后一组(key4)前两位字符
	
	
	// step 3 先获得注册类型xxxx 后的1位 值 是 x 或x,计算出一个值
	// 如果是 x,要满足
	// 1+值(2153483746)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
	
	// 或
	// 1+值(3227225570)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
	
	
	// 如果是 xx ,要满足
	// 16+值(2153483731)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
	// 或
	// 16+值(3227225555)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值
	
	// 根据step3 值,计算key4最后两字符
	// 如果=2153483746,各位数值相加再+22 =65
	
	// step 4 生成key2,满足
	// 字符先反向,然后取每位在字符串xxxxxxxxxx中的索引值,再乘上以1为初值,32倍递增的基数
	// 加起来=step3中的值
	
	// step 5 key3的生成
	// 第一位,注册类型, xxxxx
	// 第二位,随机是 x 或 xxx
	// 后两位随机生成
	
	// step 6 key0
	// 由key1,key2拼接与key3,key4拼接的字符串,每位ASCII数值相加,得到各4位一组,一共8位的16进制字符
	if (randInt() % 2 > 0)
		strMOrL = "M";
	else
		strMOrL = "L";
	
	if (randInt() % 2 > 0)
		bigNoFlag = 1;
	else
		bigNoFlag = 0;
	
	key3 = licType + strMOrL + getRandomString2();
	
	// 生成000000-999999随机字符
	var ikey1 = randInt() % 999999 + 0;
	key1 = padZero(ikey1, 6, 10);
	// key4前两字符
	var firstTwoLetterOfKey4 = getStrSum(key1, 0, 6) + 22;
	// 此值为key3进行计算后乘出的值
	var value = getValue(key1, firstTwoLetterOfKey4);
	var lastTwoLetterOfKey4 = getLastTwoLetterOfKey4(value);
	key4 = '' + firstTwoLetterOfKey4 + '' + lastTwoLetterOfKey4;
	key2 = getKey2(value);
	key0 = getKey0(key1 + key2, key3 + key4);
	return key0 + "-" + key1 + "-" + key2 + "-" + key3 + "-" + key4;
}

function getStrSum(str, start, len) {
	var result = 0;
	for (var i = start; i < len; i++)
		result += parseInt(str.charAt(i));
	return result;
}
/*
function getFirstTwoLetterOfKey4()
{
	return randInt() % 54 + 22;
}
*/
function getValue(key1, digits)
{
	var lastTwoLetterOfKey1 = key1.substr(key1.length - 2);
	var i3 = parseInt(lastTwoLetterOfKey1);
	if(strMOrL == 'M') {
		if(bigNoFlag == 0)
			i3 += 2147483647 + 100000 * digits;
		else
			i3 += 3221225471 + 100000 * digits;
	}
	else {
		if(bigNoFlag == 0)
			i3 += 3221225456 + 100000 * digits;
		else
			i3 += 2147483632 + 100000 * digits;
	}
	return i3;
}

function getLastTwoLetterOfKey4(value) {
	var s = value.toString(),
		result = 0;
	for (var i = 0; i < s.length; i++)
		result += parseInt(s.charAt(i));
	result += 22;
	return result;
}

function getKey2(num)
{
	var result = '',
		str = '123456789ABCDEFGHIKJLMNOPQRSTUV',
		base = 1073741824;
	
	while (base > 0) {
		if (toInt(num / base) > 0) {
			var i = toInt(num / base);
			// result += i;
			num = num - i * base;
			result += str.charAt(i - 1);
		}
		else {
			// 取个不在字符串中的字符,最简单的是取0
			result += getRandomString1();
			// result += "0";
		}
		base = toInt(base / 32);
	}
	return result;
}

function getKey0(str1, str2)
{
	var result = 0;
	for (var i = 0; i < str1.length; i++)
		result += str1.charCodeAt(i);

	str1 = padZero(result, 4, 16);
	result = 0;
	for (var i = 0; i < str2.length; i++)
		result += str2.charCodeAt(i);

	str2 = padZero(result, 4, 16);
	return str1 + str2;
}

function padZero(num, len, radix)
{
	var zs = new Array(len + 1).join('0');
	return (zs.substr(num.toString(radix).length) + num.toString(radix)).toUpperCase();
}

function getRandomString1()
{
	var ri = randInt() % 5 + 87;
	if(ri > 90)
		ri = 48;
	
	return String.fromCharCode(ri);
}

function getRandomString2()
{
	var sb = '';
	for (var i = 0; i < 2; i++) {
		var ri = randInt() % 28 + 65;
		if(ri > 90)
			ri = randInt() % 10 + 48;
		sb += String.fromCharCode(ri);
	}
	
	return sb;
}

</script>
</head>
<body width="50%">
<h1 align="center" class="regsel" lang="en">SQL Assistant v5.xx<br>Key Generator</h1>
<div align="center">
<table>
<tr><td align="left">
<input type=radio name="regtype" value="E" onclick="genkey(event);" checked>Enterprise Edition<br>
<input type=radio name="regtype" value="P" onclick="genkey(event);">Professional Edition<br>
<input type=radio name="regtype" value="S" onclick="genkey(event);">Site Edition<br>
<input type=radio name="regtype" value="1" onclick="genkey(event);">Standard Edition<br>
</td></tr>
</table>
<br>
<br>
<div id="thekey"></div>
</div>
<br>
</body>
</html>
2011-1-23 12:53
0
雪    币: 2194
活跃值: (996)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
[QUOTE=linhanshi;852559]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]

http://hotfile.com/dl/65526284/2abb276/sql.assistant.v5.1.7.0.incl.patch-TRAN.rar.html...[/QUOTE]

文件不存在 无法下载了
2011-2-17 23:51
0
雪    币: 84
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
v5.20 安装包
    http://good.gd/996759.htm

算号器
    http://good.gd/996760.htm
2011-2-20 22:44
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
谢谢分享。不过怎么我安装了最新的5.2.59版本后,无论选择Enterprise、Professional、Site、Standard算出来的号都是Standard版本的?好像5.2.59只有Professional和Standard两种版本的,是不是Professional版本的注册算法变化了?求高手解决。
2011-2-21 11:07
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我知道问题了,卸载旧版本后再安装就没问题了,谢谢quard提供注册机。
2011-2-21 12:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
感谢qazzaqqa和quard
2011-4-2 12:23
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
已经有了,功能不及RedGate ,随便膜拜下写算法的朋友
2011-8-11 21:23
0
游客
登录 | 注册 方可回帖
返回
//