# Thursday, August 18, 2005

/*
  经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下:
  exec GetRecordFromPage news,newsid,10,100000
  news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。
*/

/*
  函数名称: GetRecordFromPage
  函数功能: 获取指定页的数据
  参数说明: @tblName      包含数据的表名
           @fldName      关键字段名
           @PageSize     每页记录数
           @PageIndex    要获取的页码
           @OrderType    排序类型, 0 - 升序, 1 - 降序
           @strWhere     查询条件 (注意: 不要加 where)
  作  者: 铁拳
  邮  箱:
sunjianhua_kki@sina.com
  创建时间: 2004-07-04
  修改时间: 2004-07-04
*/
CREATE PROCEDURE GetRecordFromPage
    @tblName      varchar(255),       
-- 表名
    @fldName      varchar(255),       -- 字段名
    @PageSize     int = 10,          
-- 页尺寸
    @PageIndex    int = 1,           
-- 页码
    @OrderType    bit = 0,           
-- 设置排序类型, 非 0 值则降序
    @strWhere     varchar(2000) = ''  
-- 查询条件 (注意: 不要加 where)
AS

declare @strSQL   varchar(6000)       -- 主语句
declare @strTmp   varchar(1000)       -- 临时变量
declare @strOrder varchar(500)        -- 排序类型

if @OrderType != 0
begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin

    set @strTmp = '>(select max'
    set @strOrder = ' order by [' + @fldName +'] asc'
end

set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
    + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
    + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
    + @strOrder

if @strWhere != ''
    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
        + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
        + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
        + @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
        + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder

if @PageIndex = 1
begin
    set @strTmp = ''
    if @strWhere != ''
        set @strTmp = ' where (' + @strWhere + ')'

    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
        + @tblName + ']' + @strTmp + ' ' + @strOrder
end

exec (@strSQL)

GO

posted on Thursday, August 18, 2005 9:26:54 AM (China Standard Time, UTC+08:00)  #    Comments [3]
在 web.config 的 <system.web> 节中添加以下代码:
 
<webServices>
  <protocols>
   <add name="HttpGet" />
   <add name="HttpPost" />
   <add name="HttpPostLocalhost" />
   <add name="Documentation" />
  </protocols>
</webServices>
posted on Thursday, August 18, 2005 9:24:10 AM (China Standard Time, UTC+08:00)  #    Comments [4]
# Saturday, July 30, 2005

Johnny Hughes的Blog上获悉可以从CVS上获得dasBlog 1.8版源码,于是尽早立即下载后将原码中的明显错误去除,将FreeTextBox升级为最新的3.0.5000.5版,然后修改了部分小错误。现将我修改后的带源码的已编译版本共享给大家。
点击这里下载(连接已失效)

posted on Saturday, July 30, 2005 12:23:50 PM (China Standard Time, UTC+08:00)  #    Comments [7]
# Thursday, July 28, 2005

    在博客园管理员dudu以及博客堂开心就好宝玉的支持和帮助下,烟台.NET 俱乐部也成立啦.
    希望烟台、威海及其周边地区.NET爱好者能积极的加入.
    希望加入此团队的博客园成员可以在本文的评论中回复或EmailTo : qihangnet(AT)hotmail.com。
    请说明你的Blog帐号和所在城市,特长/兴趣(最好详细点)。

    继北京,上海,广州,杭州,郑州,济南等城市成立后。我们烟台也要努力了。
    Let's Do Our Best!

烟台.Net俱乐部博客园团队Blog:http://www.cnblogs.com/team/dotsail.html
烟台.NET俱乐部官方网站:http://qihang.net
烟台.NET俱乐部QQ群:6718824
烟台.NET俱乐部博客园聊天室:http://chat.cnblogs.com/CuteSoft_Client/CuteChat/CH_MainForm.Aspx?ChannelId=45f4536b-39fc-44d5-af07-1715e7b2097e

posted on Thursday, July 28, 2005 9:31:12 PM (China Standard Time, UTC+08:00)  #    Comments [1]
# Monday, July 11, 2005

为了方便北京及周边地区广大程序员、编程爱好者和高校计算机爱好者更好的交流.Net技术,博客堂、博客园共同发起成立“北京.Net俱乐部”,她是一个非营利性质的、民间组织,旨在为北京及周边地区广大程序员、编程爱好者和高校计算机爱好者提供一个结交朋友、交流技术的平台,通过俱乐部组织的技术交流、会员聚会、培训讲座等系列活动,让俱乐部成员可以面对面的进行技术交流,帮助会员开阔视野、增进知识、积累资源,从而达到提升自我、增强竞争优势的目的。俱乐部将邀请北京地区的.Net技术专家和MVP等,成立专家组,为我们俱乐部的活动提供坚强的技术后盾。

俱乐部于2005年07月23日组织俱乐部的第一次活动,这次活动的主题是“Community Server 开发日”,首先,四位讲师(其中有两位微软资深讲师——开心就好、MVM,博客园——春鱼、博客堂——宝玉)将围绕Community Server(简称CS)这个开源项目对.Net技术的应用,从CS架构、控件、性能、ASP.NET 2.0从CS中吸取的特性几个方面进行讲解和分析,帮助您更好的理解学习.Net。讲课结束后会有讲师的答疑时间,然后将组织大家根据自己感兴趣的话题进行分组讨论交流,讨论结束后每组派代表发言。中间我们会有抽奖活动,会后参与者可选一起FB。本次活动时间、地点,讲课的题目/讲师简介/PPT等将于下周一公布。

此后我们每个月组织一次类似活动,欢迎大家一起加入到我们中来,对于俱乐部及活动有任何意见和建议请您反馈给我们。

场地支持:微软(中国)有限公司平台及开发技术部
加入方式:在您参加俱乐部活动时,即可报名加入俱乐部
俱乐部网站:http://www.cnblogs.com/team/BJDotNetClub.html
QQ群号码:12920817
负责人:
 宝玉(http://blog.joycode.com/dotey)
 dudu(http://dudu.cnblogs.com/)
 Bestcomy(http://bestcomy.cnblogs.com/)

posted on Monday, July 11, 2005 11:33:58 AM (China Standard Time, UTC+08:00)  #    Comments [1]
# Wednesday, June 22, 2005

对原来的版本的渐变效果进度条做了改进,抛弃了长度达256的数组,并修改了样式表,实现了大幅度减少资源消耗。请看效果 。

具体程序如下:

<html>
<head>
<title>渐变效果进度条</title>
<script language="javascript">
 var i;
 function go()
 {
  bar_width = document.getElementById("bg").clientWidth;
  i = bar_width;
  setTimeout('start();',300);
 }
 function start()
 {
  if(i-->0)
  {
   ps.style.width = i;
   bn.innerHTML = Math.floor((bar_width-i)/bar_width*100)+"%";
   setTimeout('start();',20);
  }
 }
 
</script>
<style type="text/css">
#bg {
filter:progid:DXImageTransform.Microsoft.Gradient
(GradientType=1, StartColorStr=#FFFF00, EndColorStr=#FF0000);
width:300px;
height:20px;
border:1px solid black;
z-index:0;
position:absolute;
}
#ps {
float:right;
background-color:#FFFF00;
width:100%;
}
#bn {
position:absolute;
text-align:center;
width:100%;
height:100%;
cursor:default;
}
</style>
</head>
<body onload="go();">
<div id="bg"><div id="ps"></div><span id="bn">0%</span></div>
</body>
</html>

posted on Wednesday, June 22, 2005 11:23:54 AM (China Standard Time, UTC+08:00)  #    Comments [4]
# Tuesday, June 21, 2005

演示效果请看渐变效果进度条,具体代码如下:

<html>
<head>
<title>渐变效果进度条</title>
<script language="javascript">
var _Hex = Array("00","01","02","03","04","05","06","07","08","09",
"0A","0B","0C","0D","0E","0F","10","11","12","13","14","15","16","17","18","19",
"1A","1B","1C","1D","1E","1F","20","21","22","23","24","25","26","27","28","29",
"2A","2B","2C","2D","2E","2F","30","31","32","33","34","35","36","37","38","39",
"3A","3B","3C","3D","3E","3F","40","41","42","43","44","45","46","47","48","49",
"4A","4B","4C","4D","4E","4F","50","51","52","53","54","55","56","57","58","59",
"5A","5B","5C","5D","5E","5F","60","61","62","63","64","65","66","67","68","69",
"6A","6B","6C","6D","6E","6F","70","71","72","73","74","75","76","77","78","79",
"7A","7B","7C","7D","7E","7F","80","81","82","83","84","85","86","87","88","89",
"8A","8B","8C","8D","8E","8F","90","91","92","93","94","95","96","97","98","99",
"9A","9B","9C","9D","9E","9F","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9",
"AA","AB","AC","AD","AE","AF","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9",
"BA","BB","BC","BD","BE","BF","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9",
"CA","CB","CC","CD","CE","CF","D0","D1","D2","D3","D4","D5","D6","D7","D8","D9",
"DA","DB","DC","DD","DE","DF","E0","E1","E2","E3","E4","E5","E6","E7","E8","E9",
"EA","EB","EC","ED","EE","EF","F0","F1","F2","F3","F4","F5","F6","F7","F8","F9",
"FA","FB","FC","FD","FE","FF");
 function go()
 {
  setTimeout('start();',100);
 }
 var i=0;
 function start()
 {
  if(i++<256)
  {
   ps.innerHTML += "<span style='width:1px;background-color:#FF"+_Hex[256-i]+"00;'>";
   bn.innerHTML = Math.floor(i/2.56)+"%";
   setTimeout('start();',10);
  }
 }
 
</script>
<style type="text/css">
#ps {
background-color:#FFFF00;
width:256px;
margin: 1px;
float:left;
}
#bn {
width:39px;
margin: 1px;
float:right;
text-align:center;
color:#FFFFFF;
font-family:Arial;
font-size:13px;
}
</style>
</head>
<body onload="go();">

<div style="background-color:black;width:300px;height:20px;"><div id="ps"></div><div id="bn"></div></div>
</body>
</html>

posted on Tuesday, June 21, 2005 8:26:14 AM (China Standard Time, UTC+08:00)  #    Comments [0]
# Wednesday, June 15, 2005

<%
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'数据库操作类
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'名称:Class_DBOperate
'版本:0.2
'作者:qihangnet
'更新:2005年6月14日
'作用:简化数据库操作的流程
'授权:免费使用
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Class Class_DBOperate

'************************************
'变量定义
'************************************
'Conn ---------- 数据库连接对象
'Conn_Str ------ 数据库连接字符串

Private Conn,Conn_Str

'************************************
'实例 初始化/终止
'************************************

Private Sub Class_Initialize()
Set Conn = Server.CreateObject("ADODB.Connection")
End Sub

Private Sub Class_Teriminate()
Set Conn = Nothing
End Sub

'************************************
'属性
'************************************

'输出数据库连接字符串
' 返回值类型:string

Property Get ConnectString
ConnectString = Conn_Str
End Property

'设置数据库连接字符串(数据库连接字符串)
' 参数:str --- string

Property Let ConnectString(str)
Conn_Str = str
End Property

'************************************
'事件
'************************************

'数据库打开
Public Sub DB_Open() 。
Conn.ConnectionString = Conn_Str
Conn.Open
End Sub

'数据库关闭
Public Sub DB_Close()
Conn.Close
End Sub

'************************************
'方法
'************************************

'数据库查询(sql语句)
' 参数及类别:sql ---- string
' 返回值类型:记录集
' 前提:数据库状态为打开

Public Function DB_Select(sql)
Set DB_Select = Conn.Execute(sql)
End Function

'数据库执行(SQL语句)
' 参数及类别:sql ---- string
' 返回值类型:整形
' 返回值含义:受影响行数
' 前提:数据库状态为打开

Public Function DB_Excute(sql)
Dim rs_affected
Conn.Execute sql,rs_affected
DB_Excute = rs_affected
End Function

End Class
%>

posted on Wednesday, June 15, 2005 11:50:26 AM (China Standard Time, UTC+08:00)  #    Comments [0]

<%
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'快速字符串连接类
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'名称:Class_FastString
'来源:http://www.jansfreeware.com
'整理:qihangnet
'更新:2005年6月15日
'作用:高效地进行字符串连接,比 str = str & "abc"的方法快很多
'授权:免费使用
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Class Class_FastString

'************************************
'变量定义
'************************************
'index --- 字符串数组的下标
'ub ------ 用于调整数组度数的整数变量
'ar() ---- 字符串数组

Private index, ub, ar()

'************************************
'实例 初始化/终止
'************************************

Private Sub Class_Initialize()
Redim ar(50)
index = 0
ub = 49
End Sub

Private Sub Class_Terminate()
Erase ar
End Sub

'************************************
'事件
'************************************

'默认事件,添加字符串
Public Default Sub Add(value)
ar(index) = value
index = index+1
If index>ub Then
ub = ub + 50
Redim Preserve ar(ub)
End if
End Sub

'************************************
'方法
'************************************

'返回连接后的字符串
Public Function Dump
Redim preserve ar(index-1)
Dump = join(ar,"") '关键所在哦^_^
End Function

End class
%>

posted on Wednesday, June 15, 2005 11:41:18 AM (China Standard Time, UTC+08:00)  #    Comments [0]
# Monday, June 06, 2005

本站的Dasblog是经过站长qihangnet汉化修改的版本,近日一些网友提出使用汉化版的想法。为了满足大家的要求,在此提供编译好的版本给大家使用。由于原始版本的默认样式比较不美观,本站提供的汉化版为Qihangnet自己修改的样式,不喜欢的可以修改或删除。

点击这里下载

posted on Monday, June 06, 2005 12:33:52 PM (China Standard Time, UTC+08:00)  #    Comments [0]