随笔 - 5  文章 - 0  评论 - 4 
  2008年9月1日
     摘要: 用万网接口查询域名  阅读全文
posted @ 2008-09-01 17:00 beal 阅读(123) | 评论 (0)编辑
  2007年11月1日

上周接到一个需求,帮客户初始化权限模块的数据(包括用户,角色,模块以及三者之间的关系,还有用户与用户的关系,角色与角色的关系,模块与模块的关系),看了需求后一头雾水,幸好客户提供的是excel表格,但数据分布在两个工作表里,要把它拆分出来并不容易~~~

就像这样的格式(这是角色和上级角色)
一个一个写显然是行不通的,想到前几天刚用游标做了一个循环Parent的脚本,这个是不是也可以用游标来遍历客户给的数据然后按我需要的格式生成脚本呢,答案是肯定的。
首先把初始数据处理一下(去掉一些空纪录,整理一下表头 Supervisor - Role 改成 SupervisorRole等)导入数据库(表名RoleData),接着开始用游标定制初始脚本...
就以Role表为例吧
Declare @SQL varchar(8000),
@RoleName varchar(100)
SET @SQL = ''
DECLARE RoleCursor CURSOR FOR

SELECT[Role] FROM RoleData --需要遍历的数据
 OPEN RoleCursor
 FETCH NEXT FROM RoleCursor INTO @RoleName
 WHILE @@FETCH_STATUS=0
 BEGIN  
  SET @SQL = 'INSERT INTO Roles (RoleName) '
  SET @SQL = @SQL+'Values('''+@RoleName+''') ;'
  print @SQL
  FETCH NEXT FROM RoleCursor INTO @RoleName
 END
 CLOSE RoleCursor
DEALLOCATE RoleCursor

这样就把Role数据导入完成了,接着就是Role和Role的关系了(Supervisor - Role)
写法和这个差不多,不过会复杂一些,具体实现可以下载附件分析
当然把所有需要的脚本整到一个游标里是比较好的办法了
详细的脚本在附件里,包括创建Roles脚本和Excel文档以及这两个游标的脚本...
附件: /Files/beal/InitRole.rar

posted @ 2007-11-01 09:11 beal 阅读(41) | 评论 (0)编辑
  2007年8月3日

在sql server中修改表的列名,可以使用sp_rename

sp_rename 'change.Times',times1,'column'

change是表名,times是原来的列名,times1是新的列名

注意:times1前面不要有表名,否则,更改后的列名为change.times1

 

posted @ 2007-08-03 09:22 beal 阅读(729) | 评论 (2)编辑
  2007年7月10日
創建Cookie
HttpCookie myCookie = new HttpCookie("test");
   myCookie["t1"] = "t1" ;
   myCookie["t2"] = "t2" ;
   myCookie["t3"] = "t3" ;
   myCookie["t4"] = "t4" ;
   myCookie.Expires = DateTime.Now.AddSeconds(25);
   
   Response.Cookies.Add(myCookie);
讀Cookie
this.Label1.Text = Request.Cookies["test"]["t1"];
    this.Label1.Text += "<br>"+Request.Cookies["test"]["t2"];
    this.Label1.Text += "<br>"+Request.Cookies["test"]["t3"];
    this.Label1.Text += "<br>"+Request.Cookies["test"]["t4"];
延長生命周期
HttpCookie test = Request.Cookies["test"];
   test.Expires = DateTime.Now.AddSeconds(25);
   Response.Cookies.Add(test);
增加一個子健
HttpCookie test = Request.Cookies["test"];
   test["tt"] = "tt";
   test.Expires = DateTime.Now.AddMinutes(5);
   Response.Cookies.Add(test);
讓Cookie過期
Response.Cookies["test"].Expires = DateTime.Now.AddMinutes(-1);
/Files/beal/TestCookie.rar
posted @ 2007-07-10 18:31 beal 阅读(22) | 评论 (0)编辑
  2007年3月9日

用一个字段 NodeID代表该结点的位置信息,NodeID 由三部分组成(深度+父结点+编号)
具体实现过程:建一张表TreeInit(包含的信息,树的深度字段的长度、父结点的长度、编号的长度)。用一个存储过程按照TreeInit初始化存放树结构的表TreeNode(主要是用表TreeInit控制字段 NodeID中各部分的长度)
如:TreeInit 表为
深度 2
父结点 2
编号 2

则NodeID字段 可为 00 00 01 共可表示深度为100、每个深度可有100条记录
如:120605 表示 该结点的深度 为 12 、父结点 为 11xx06、编号为05

posted @ 2007-03-09 09:01 beal 阅读(289) | 评论 (2)编辑