Blue的博客

公告

统计

2008年6月11日

搜集整理的一些SQL语句

1、查看所有数据库名称及大小 

sp_helpdb

    重命名数据库用的SQL 

sp_renamedb 'old_dbname''new_dbname' 

2、姓氏笔画排序

Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

3、比较A,B表是否相等

if (select checksum_agg(binary_checksum(*)) from A)=(select checksum_agg(binary_checksum(*)) from B)
    
print '相等'
else
    
print '不相等'

4、记录搜索
    开头到N条记录

Select Top N * From 表

    N到M条记录(要有主索引ID)

Select Top M-* From 表 Where ID in (Select Top M ID From 表) Order by ID Desc

    N到结尾记录

Select Top N * From 表 Order by ID Desc

5、如何修改数据库的名称

sp_renamedb 'old_name''new_name' 

6、获取当前数据库中的所有用户表

select Name from sysobjects where xtype='u' and status>=0

7、获取某一个表的所有字段

select name from syscolumns where id=object_id('表名')

8、查询用户创建的所有数据库

select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')

    或者

select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01

9、查询某一个表的字段和数据类型

select column_name,data_type from information_schema.columns where table_name = '表名'

posted @ 2008-06-11 15:29 Blueeyes 阅读(53) 评论(0) 编辑
.NET程序脱离.NET框架的方法

 

Net框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有Xenocode 的postbuidle或者vas,还有Salamander .NET Linker。另外还有MaxToCode 作者以前做的framework linker,以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等。

Xenocode的是使用了一个虚拟机环境,模拟框架需要的注册表信息和文件信息。Xenocode号称的生成native代码功能实际上就是指的这个功能。我测试了几个程序打包,兼容性似乎不怎么好,不知道是不是因为机器上已经安装了框架的原因。

Jason做的framework linker以前我也使用过,他实际上是利用了Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。

Salamander .Net Linker ,Remotesoft的一个产品,没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。某网友的方法似乎是利用remotesoft的核心和飞信的框架,因为他并没有免费公开方法,从他给出的样例可以看到有remotesoft的核心文件以及飞信的框架程序。这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。

首先下载一个飞信的程序安装,在安装目录中会有VMDotNet 目录,这个就是.Net框架虚拟环境需要的文件,直接把整个目录提取出来。

如何利用这个虚拟环境运行自己的 .Net 程序呢?很简单,一个命令行搞定。在 VMDotNet 目录里面会找到一个 FetionVM.exe ,这个是虚拟环境的loader。

使用方法:

FetionVM.exe pathtoyoureexe。就是直接把你的 .Net 程序作为命令行参数传递给FetionVM.exe 就可以在这个虚拟环境中执行你的.net程序了。

最好再自己写一个启动程序,首先检查系统是否安装了.Net框架,如果有直接运行,没有调用虚拟环境运行。

这个启动程序飞信也有,如果不想自己写就直接拿飞信安装目录中的 Feition.exe,但是这样的话你自己的.Net程序的名字必须叫 FeitionFX.exe 。把它和Feition.exe 放在同一目录下,直接执行 Feition.exe 即可。另外,如果你对.Net程序使用了加密保护,需要注意一下,目前市面上的大部分.Net加密工具加密后的程序集不能在这个虚拟环境中运行的。

这个东西除了能实现脱离 .net框架运行外,还有另外一个副作用——让.net程序运行在指定版本的.net框架中(虽然机器上安装了.net框架,仍然可以让.net程序在这个虚拟框架下运行)。

posted @ 2008-06-11 12:34 Blueeyes 阅读(395) 评论(0) 编辑