--递归

create table Dept(
 DepartNO  varchar(10),
   DepartName  varchar(20),
 TopNo    varchar(10))

delete from dept

insert into Dept values('001','董事会','0')
insert into Dept values('002','总裁办公室','001')
insert into Dept values('003','财务部','001')
insert into Dept values('004','市场部','002')
insert into Dept values('005','公关部','002')
insert into Dept values('006','销售部','002')
insert into Dept values('007','分销处','006')
insert into Dept values('008','业务拓展处','004')
insert into Dept values('009','销售科','007')
go
select *
from dept
go

with Dept_CTE as
(
select DepartNO,
   DepartName,
 TopNo from Dept
where DepartNo='002'
union all
select child.DepartNO,
   child.DepartName,
 child.TopNo from Dept_CTE as Parent
join Dept as child
on parent.DepartNO=child.TopNo
)

select * from Dept_CTE

posted @ 2011-01-24 17:04 YaSin 阅读(325) 评论(1) 编辑

/// <summary>
    /// 使用WebClient方法
    /// </summary>
    protected void WebClientButton_Click(object sender, EventArgs e)
    {
        pageUrl = UrlText.Text;
        WebClient wc = new WebClient();
        wc.Credentials = CredentialCache.DefaultCredentials;

        //方法一
        byte[] pageData = wc.DownloadData(pageUrl);
        ContentHtml.Text = Encoding.Default.GetString(pageData);

        /*
        //方法二
        Stream resStream = wc.OpenRead(pageurl);
        StreamReader sr = new StreamReader(resStream, Encoding.Default);
        ContentHtml.Text = sr.ReadToEnd();
        resStream.Close();
        */

        wc.Dispose();
    }

    /// <summary>
    /// 使用WebRequest方法
    /// </summary>
    protected void WebRequestButton_Click(object sender, EventArgs e)
    {
        pageUrl = UrlText.Text;
        WebRequest wrequest = WebRequest.Create(pageUrl);
        WebResponse wresponse = wrequest.GetResponse();
        Stream resStream = wresponse.GetResponseStream();
        StreamReader sr = new StreamReader(resStream, Encoding.Default);
        ContentHtml.Text = sr.ReadToEnd();
        resStream.Close();
        sr.Close();
    }

 

public string GetRemoteHtmlCode(string Url)
    {
        string s = null;
        try
        {
            MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
            _xmlhttp.open("GET", Url, false, null, null);
            _xmlhttp.send("");
            if (_xmlhttp.readyState == 4)
            {
                s = System.Text.Encoding.UTF8.GetString((byte[])_xmlhttp.responseBody);
            }

           
        }
        catch
        {
        }
        return s;
    }

    public string GetRemoteHtmlCodeByGB2312(string Url)
    {
        string s = null;
        try
        {
            MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
            _xmlhttp.open("GET", Url, false, null, null);
            _xmlhttp.send("");
            if (_xmlhttp.readyState == 4)
            {
                s = System.Text.Encoding.Default.GetString((byte[])_xmlhttp.responseBody);
            }
        }
        catch
        {
        }
        return s;
    }

 

 

posted @ 2011-01-06 16:52 YaSin 阅读(76) 评论(0) 编辑
<script type="text/javascript" language="javascript">
var _sn = ["df/common", "df/home2010"];
var _su = "http://www.360buy.com/skin/";
var Swidth = screen.width; var _se, _st;
for (i in _sn) {
_se = document.createElement("link");
_se.type = "text/css";
_se.rel = "stylesheet";
if (Swidth >= 1280) {
_st = _su + _sn[i] + ".w.css";
} else {
_st = _su + _sn[i] + ".css";
}
_se.href = _st;
document.getElementsByTagName("head")[0].appendChild(_se);
}
</script>
posted @ 2010-07-28 13:26 YaSin 阅读(101) 评论(0) 编辑

在还原数据库时,有时会提示因为数据库正在使用,所以无法获得对数据库的独占访问权!!
这时需要在还原数据库前先杀死正在使用数据库得线程.

该解决方案用到了系统表中的sysprocesses ,若要访问 sysprocesses,您必须定位到master 数据库。

如以下杀死正在使用'jcjq'数据库的线程:
use master
declare @dbname varchar(20)
set @dbname='数据库名称'

declare @sql nvarchar(500)
declare @spid int--SPID 值是当用户进行连接时指派给该连接的一个唯一的整数
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1--如果FETCH 语句没有执行失败或此行不在结果集中。
begin
exec('kill '+@spid)--终止正常连接
fetch next from getspid into @spid
end
close getspid
deallocate getspid

posted @ 2010-07-16 15:35 YaSin 阅读(385) 评论(0) 编辑


update 表名
    set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值')


1.update ntext:
(1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace。


update 表名
    set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值')



update 表名
    set ntext类型字段名=replace(convert(nvarchar(4000),ntext类型字段名),'要替换的字符','替换成的值')


(2)如果text/ntext超过8000/4000,看如下例子


declare @pos int
   declare @len int
   declare @str nvarchar(4000)
   declare @des nvarchar(4000)
   declare @count int
   set @des ='<requested_amount+1>'--要替换成的值

   set @len=len(@des)
   set @str= '<requested_amount>'--要替换的字符


   set @count=0--统计次数.


   WHILE 1=1
   BEGIN
       select @pos=patINDEX('%'+@des+'%',propxmldata) - 1
       from 表名
       where 条件

      IF @pos>=0
      begin
          DECLARE @ptrval binary(16)
          SELECT @ptrval = TEXTPTR(字段名)
          from 表名
          where 条件
          UPDATETEXT 表名.字段名 @ptrval @pos @len @str
          set @count=@count+1
       end
      ELSE
         break;
   END

   select @count


2.alter column语句有局限性,比如不允许修改text、image、ntext 或 timestamp 列.
以下提供一个修改ntext列的例子:




    Alter Table tbl Add newcol ntext null
    go
    update tbl set newcol=col
    go
    EXEC sp_rename 'tbl.col', 'oldcol', 'COLUMN'
    go
    EXEC sp_rename 'tbl.newcol', 'col', 'COLUMN'
    go
    alter table tbl drop column oldcol
    go


以上通过新增一列替换旧的列方法实现了将一个不允许为空的ntext修改为允许为空的ntext列(注意:以上的go不能缺少).修改表结构之后,由于视图所依赖的基础对象的更改,视图的持久元数据会过期,需要刷新视图,通过sp_refreshview (可以通过sp_depends 找处相关的视图,再通过sp_refreshview逐个刷新).
另外可以也可以通过一下存储过程进行刷新所有视图:


PRINT 'Refreshing all views...'

   DECLARE @vName sysname

   DECLARE refresh_cursor CURSOR FOR
    SELECT Name from sysobjects WHERE xtype = 'V'
    order by crdate
   FOR READ ONLY
   OPEN refresh_cursor

   FETCH NEXT FROM refresh_cursor
   INTO @vName
    WHILE @@FETCH_STATUS <> -1
    BEGIN
        exec sp_refreshview @vName
        PRINT '视图' + @vName + ' refreshed'
       FETCH NEXT FROM refresh_cursor
       INTO @vName
    END
   CLOSE refresh_cursor
   DEALLOCATE refresh_cursor

posted @ 2010-05-20 18:22 YaSin 阅读(118) 评论(0) 编辑
摘要: Date.prototype.isLeapYear判断闰年Date.prototype.Format日期格式化Date.prototype.DateAdd日期计算Date.prototype.DateDiff比较日期差Date.prototype.toString日期转字符串Date.prototype.toArray日期分割为数组Date.prototype.DatePart取日期的部分信息Da...阅读全文
posted @ 2010-05-05 09:53 YaSin 阅读(83) 评论(0) 编辑
摘要: insert into province values(32,'新1111疆维吾尔自治区','X');-- - -! 由于被屏蔽 单独插入create table dbo.province( proID int primary key, proName varchar(50), keys varchar(2))--------------------------------------------...阅读全文
posted @ 2010-04-27 21:17 YaSin 阅读(512) 评论(0) 编辑
摘要: 拼音一:[代码]拼音二:[代码]阅读全文
posted @ 2010-04-06 13:48 YaSin 阅读(734) 评论(0) 编辑
摘要: } public int getPageCount() {// 计算出总页数pageCount = (rowCount + pageSize - 1) / pageSize;return pageCount;}public int getBeginPosition() {// 计算出页起始beginPosition = (currentPage - 1) * pageSize + 1;return...阅读全文
posted @ 2010-04-02 17:05 YaSin 阅读(410) 评论(0) 编辑
摘要: #*宏pageGrid:自定义表格宏${gridInfo}: 表格中的信息,含数据和分页信息,样式等20行<!--表格样式需在引用css-->26行<!--表格标题头行-->47行<!--表格内容奇数行与偶数行在鼠标移动到上面时变色-->55行<!--表格首列是否显示checkbox-->54行<!-- 定义表格某列为链接列-->63行&...阅读全文
posted @ 2010-04-02 17:00 YaSin 阅读(523) 评论(0) 编辑