2006-12-27
TAG:数据库相关
原作者:edobnet
项目介绍 政府一个业务系统, 使用范围全国 数据是区域还存储,最大地方,主业务表,一年有600万,工作流表,1年有几千万,迄今为至系统已经运行三年。 其它全国还有46个地点,数据也比较多 新开发系统主要功能,对业务系统的数据进行分析统计.
所以对性能要求比较高。
我们的简要方案。 建立中间表,通过DTS调度每天共步数据。 中间表设计原则 记录数同原表一样,减少多表连接,保存运算好的值,如果记录修改,根据修改日志,重新计算中间值 增量同步数据(DTS) 直接从每天的数据库更改日志读取记录,更新中间表,根据服务器空间程度合理调度DTS,减少数据同步时间。 对中间数据进行运算 查询不作字段运行,所以运算在生成中间表的过程中已经计算 根据查询,优化索引设计 根据数据查询特性,对where ,GROUP BY等操作字段进行索引设计,提高查询速度 优化数据类型 大量采用Int提高查询、统计速度 优化中间表关键字 采用Int,提高插入速度 数据文件优化设计,一个主要业务,一个数据文件,建数据文件时,估计数据量,一次建一个比较大的文件,这样所分配的文件就是一个连续文件块, sql server设置区别大小写。初始内存调到一个比较大的内存。
使用我们的Toolkit开发简单分页,相关压力测试, 测试服务器配制 2个至强3.0CPU 2G内存 150G硬盘 Window 2000 Advance Server中文版+SP4 测试数据ENTRY_WORKFLOW表,数据量2,473,437
页数 界面显示时间 CPU Reads I/O Writes I/O Duration 第1页 2-3 S 642 10689 0 390 第100页 3-4S 626 128001 0 423 ....后页业数太多,没有必要
压力测试
并发数 平均每秒请求数 未字节响应毫秒数 50 45.28 20,095.65 25 45.41 10,043.12
索引优化测试, 对分量值小的数据建索引测试,测试语句,GROUP BY 分量值 一个字段,大概有6个分量值,没有建索引,4S,建索引<1s 两个分量,不建索引,3S,建索引,<1S 一般来说,对分量小的字段,不建索引,但是我们对性能要求太高,根据我们的测试,数据对分量范围小的也要建索引。
因为一个统计,有一个很多组合的WHERE,比如有十个指标这样会有十次访问原表,这样性能太低,所以我们把where后的数据作 用中间数据, 十个指标对中间数据作查询,中间数据,我们使用临时表, 经测试,10万条记录,插入操作,临时表需要,16s,表变量需要,40S select ... into #temp from ....... 速度极快,2,500,000条记录,16S
一个存储过程样例,有兴趣可以分析一下!
1 SET QUOTED_IDENTIFIER ON 2 GO 3 SET ANSI_NULLS ON 4 GO 5 6 7 8 9 10 ALTER Procedure sp_tg009 11 /**/ /* Param List */ 12 @TE_I_E_FLAG varchar ( 4 ), /**/ /* 进出口方式 */ 13 @TE_PASS_RANGE varchar ( 4 ), /**/ /* 关区范围 */ 14 @TE_C_OUTPUT varchar ( 4 ), /**/ /* 输出方式退单理由输出、申报单位输出、全部输出 */ 15 @TE_END_DATE datetime , /**/ /* *********申报起止日期******* */ 16 @TE_END_DATEEND datetime , /**/ /* *********************** */ 17 @TE_MONI_T varchar ( 4 ), /**/ /* 监控类型 */ 18 @USER_ID varchar ( 64 ), 19 @CUSTOMER_CODE varchar ( 4 ), 20 @PAGE_NUMBER int , 21 @TOTAL_COUNT int OUTPUT 22 AS 23 24 /**/ /* ***************************************************************************** 25 ** File: 26 ** Name: sp_tg009 27 ** Desc: 通关业务监控-通关规范监控-报关单退(拒)单管理 28 ** 29 ** This template can be customized: 30 ** 31 ** Return values: 32 ** 33 ** Called by: 34 ** 35 ** Parameters: 36 ** Input Output 37 ** ---------- ----------- 38 ** 39 ** Auth: chengdj 40 ** Date: 2005-4-7 41 ******************************************************************************* 42 ** Change History 43 ******************************************************************************* 44 ** Date: Author: Description: 45 ** -------- -------- ------------------------------------------- 46 ** 2005-04-11 chengdj add HgDiv function 47 ** 2005-04-11 chengdj 48 *******************************************************************************/ 49 SET NOCOUNT ON 50 51 declare @sqlWhere varchar ( 4000 ) 52 set @sqlWhere = '' 53 54 set @TE_END_DATEEND = DATEADD ( Day , 1 , @TE_END_DATEEND ) -- 结束日期加一天 55 set @sqlWhere = @sqlWhere + ' TE_END_DATE >= ''' + CONVERT ( varchar ( 20 ), @TE_END_DATE ) + ''' and TE_END_DATE < ''' + CONVERT ( varchar ( 20 ), @TE_END_DATEEND ) + '''' 56 57 if @TE_I_E_FLAG <> ' -2 ' -- --进出口 58 set @sqlWhere = @sqlWhere + ' and TE_I_E_FLAG = ''' + @TE_I_E_FLAG + '''' 59 60 if @TE_PASS_RANGE <> ' -2 ' -- 关区范围 61 set @sqlWhere = @sqlWhere + ' and TE_PASS_RANGE in ( SELECT a.GCL_CODE 62 FROM GL_CUSTOMER_LIST a CROSS JOIN 63 GL_CUSTOMER_LIST b 64 WHERE (a.GCL_LAYER LIKE b.GCL_LAYER + '' % '' ) AND (b.GCL_CODE = ''' + @TE_PASS_RANGE + ''' )) ' 65 66 /**/ /* if @TE_C_OUTPUT<> '-2' --输出方式 67 set @sqlWhere = @sqlWhere + 'and ' 68 ****************监控类型**********************/ 69 70 /**/ /* if @TE_MONI_T <> '-2' --监控类型 71 if @TE_MONI_T = '2' 72 set @sqlWhere = @sqlWhere + ' AND TE_SCENE_FLAG = 1 ' 73 else 74 set @sqlWhere = @sqlWhere + ' AND TE_WORKER_FLAG = ' +@TE_MONI_T + ' '*/ 75 /**/ /* 76 CREATE TABLE #TG009( 77 TE_PASS_RANGE VARCHAR(4) PRIMARY KEY NOT NULL, 78 MAN_CLE_COUNT int null, --人工退单报关单总数 79 MAN_CLE_TOTAL int null, --人工退单报关单总数 80 MAN_CLE_PCT float null, --人工退单率 81 ELC_CLE_COUNT int null, --电子退单总数 82 ELC_CLE_TOTAL int null, --电子退单总次数 83 MAN_MU_COUNT int null, --多次人工退单报关单数 84 ELC_CLE_PCT float null, --电子退单率-- 85 RE_COUNT int null, --现场拒单报关单总数-- 86 RE_TOTAL int null, --现场拒单报关单总次数-- 87 RE_PCT float null, --现场拒单报关单率-- 88 MU_ELC_CEL_EXP float null, --多次电子退单指数 89 MU_MAN_EXP float null, --多次人工退单指数 90 MU_SEC_EXP float null --多次现场拒单指数 91 ) 92 */ 93 declare @sql varchar ( 8000 ) 94 declare @groupby varchar ( 50 ) 95 96 if @TE_C_OUTPUT = ' 1 ' -- 按申报单位 97 set @groupby = ' TE_AGENT_CODE ' 98 else -- 其它按关区 99 set @groupby = ' TE_PASS_RANGE ' 100 101 declare @sql2 nvarchar ( 500 ) 102 set @sql2 = ' select @COUNT = count(distinct( ' + @groupby + ' )) from TG_ENTRY where ' + @sqlWhere 103 execute sp_executesql 104 @sql2 , 105 N' @COUNT int output ' , 106 @TOTAL_COUNT output 107 108 DECLARE @START_ID INT 109 DECLARE @END_ID INT 110 SET @START_ID = ( @PAGE_NUMBER - 1 ) * 15 + 1 111 SET @END_ID = @PAGE_NUMBER * 15 112 113 -- -- 114 -- -- 115 -- --- 116 if @TE_MONI_T = ' 1 ' -- 人工退单 117 set @sql = ' 118 select top ' + convert ( varchar ( 20 ), @END_ID ) + ' ' + @groupby + ' ,IDENTITY(int,1,1) AS TID into #PAGE from TG_ENTRY where ' + @sqlWhere + ' group by ' + @groupby + ' ; 119 CREATE TABLE #TG009( 120 ' + @groupby + ' VARCHAR(10) PRIMARY KEY NOT NULL, 121 MAN_CLE_COUNT int null, 122 MAN_CLE_TOTAL int null, 123 MAN_CLE_PCT numeric(10,2) null, 124 MU_MAN_EXP numeric(10,2) null, 125 MAN_CLE_TOTAL1 int null, 126 MAN_CLE_TOTAL2 int null, 127 MAN_CLE_TOTAL3 int null 128 ); 129 130 SELECT ' + @groupby + ' ,TE_CANCEL_FLAG,TE_WORKER_FLAG,TE_END_FLAG,TE_CANCEL_TIME INTO #temp1 FROM TG_ENTRY where ' + @sqlWhere + ' AND ' + @groupby + ' in ( select ' + @groupby + ' from #PAGE where TID between ' + convert
2006-12-13
TAG:数据库相关
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
方法一
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0
方法二
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
查询分析器不能单步调试的的原因
具体步骤如下:
1、将服务器【身份验证】属性设置成【混合模式】(window与SQL身份验证)
2、在【控制面板】中打开【服务】将【MS SQL Server】服务打开【属性】,选择【登录】页面,将登录身份设置成服务器本地帐号和该帐号密码,如administrator,密码123;
3、重新启动SQL Server服务,此时的服务指的是【SQL服务管理器】中的SQL Server服务;假设【帐号】设置为administrator 。此时达到的效果是:服务器本地帐号administrator与客户端上的administrator(并且该帐号的密码要与服务器密码相同)可以通过【查询分析器】进行调试;如果想让【其他帐号】也能够调试,那么还需要如下设置: a、在【服务器】上运行dcomcnfg.exe;
b、在【默认安全机制】中【默认访问权限】右边点击【编辑默认值】选择允许调试的帐号类型,如users用户类型,sample帐号有包含users组;
c、重新启动SQL Server服务;
3、在客户端上创建与服务帐号密码一样的用户,如sample;做到这步就可以通过查询分析器的调试功能进行单步调试了。 注:第二步更改“启动服务帐户”,在第一次登录之前,必须更改用户密码。不然,event log:以当前密码登录的尝试因下列错误而宣告失败: 在第一次登录之前,必须更改用户密码。
2006-12-09
TAG:数据库相关
我们就选用SQL Server有的Northwind表作为示例。很明显T-SQL函数不能满足这个要求:
useNorthwind
select rand(), productid, productname from Products
这个方法的问题在于Rand()函数在给定命令里所有行都返回相同的值,见Listing A。
你可能不需要得到这样的结果,则可以给rand()函数提供一个种子值。在下面的代码中,我们在Rand()函数中给定每一行的productid作为种子值。
select top 10
rand(productid) as row, productid, productname
from Products
order by row
返回的结果见Listing B.
不论这个命令运行多少次,虽然随机指派的行返回唯一的值,但是我们的得到的productids数字是10进制的。这个方法还没有起作用。
但是,这里提供了另外一个更有用的函数:NewID(),它返回一个GUID(全局唯一标志符)。我们看看Rand()函数被NewID()函数代替后的结果怎么样:
select top 10
newid() as row, productid, productname
from Products
order by row
运行的结果与Listing C中的结果很相似。
你的结果有点不同,因为NewID()在每一次调用的时候都产生一个GUID,因此,如果将上面的命令运行2到3次,得到的结果是不同的。
这个方法是调用NewID()的值作为一列,然后通过NewID()排列这些值。此方法很简单,并且可以应用到不同的场合。例如:你可能需要创建一些有某种特性的产品的列表或随机挑选10个客户或者100个随机挑选出来的订单的详细资料等。
SQL Server不是设计用于产生随机集的,但是其设计是基于数学而非商学的。幸亏有NewID()函数,我们才能够毫不费力地产生随机数据集。
2006-12-08
TAG:数据库相关
第一步:先备份欲压缩数据库 第二步:dbcc shrinkdatabase (数据库名称) 第三步:backup log 数据库名称 with truncate_only 第四步: dbcc shrinkdatabase (数据库名称) 以金王为例 注意第三步 数据库名称 没有圆括号 二、四步有 1.先备份 jwgl 在SQLServer查询分析器里执行下面步骤: 2.dbcc shrinkdatabase (voosay) 3 backup log voosay with truncate_only 4 dbcc shrinkdatabase (voosay)
2006-10-03
TAG:数据库相关
因为中国使用方块字,所以对于tag,中国人也喜欢用空格来间隔来表示不是同一个tag
我的解决的方案是这样的 在这里和大家分享,如有好的思路希望可以大家一起讨论.
比如 这里 给用户 一个题目输入框 内容输入框 一个tag输入框 支持tag以空格分割
这里我们重点说明的是程序如何辨别tag空格的 以及插入做操的存储过程。
我是利用正则,获取到字符串中的空格 然后替换成"," 这样我们就可以传入数据库由存储过程来处理了
比如你输入的tag形式如下:voosay blog pizi 那么使用正则以后变成 voosay,blog,pizi 这样我们就可以直接交给存储过程来处理了。存储过程代码在最下面。
程序里正则地使用很简单 两行:
string p = @"\s+"; string result = Regex.Replace("voosay blog pizi ",p,",");
以下是存储过程,我加了足够的注释,大家应该可以看得懂
2006-08-24
TAG:数据库相关
用惯了MS的产品,对黑色屏幕恐惧又向往着,小的时候总是认为程序员就应该坐在一个
小黑屋里,面对着黑色背景的屏幕飞快的敲击出一行行白色的代码出来,编程多年,也只有
在c的时候才会有一些这样的感受,但我不喜欢c,因为它没有人情味,最少我感觉如此。
但MYSQL不是 它给的命令在DOS屏幕上敲击出几个简单的命令,就能听着你的命令马上
显示出来,非常容易懂也很简单,虽然玉龙兄向我介绍了SQLyog.exe
这个可视化mysql的工具,但我想再刚刚开始时我先享受享受编写代码的快乐吧!:)
2006-08-23
TAG:数据库相关
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表
2006-07-25
TAG:数据库相关
很久以前写的 贴上来也许其他人有用
CREATE proc insterdata
@QQNO nvarchar(100),--传入的很可能是多个值 @VerSion nvarchar(50), @inline bit, @LoginIP nvarchar(50), @wordback int output
as
declare @int int declare @num int declare @word varchar(50) declare @f varchar(8000)
set @int =charindex('.',@QQNO)
if(@int=0) begin select @num = count(*)from tbQQ where qqNo = @QQNo if(@num=0)
begin
insert tbQQ(qqNo,version,inline,loginIP) values(@QQNO,@VerSion,@inline,@LoginIP)
end else if(@num=1)
begin
update tbQQ set version=@VerSion,inline=@inline,loginIP=@LoginIP where qqNo =@QQNO
end
end
else
begin set @f = @QQNO set @int =charindex('.',@f)
while @int<>0 --一次拆分数组的循环插入或更新 比如@QQNO传入的数字是5218.14566 begin set @word = left(@f,charindex('.',@f)-1) --拿出来.前的第一个 select @num=count(*) from tbQQ where qqNo=@word if(@num=1)--就是说有重复的 其实也就是@num=1 begin update tbQQ set version=@VerSion,inline=@inline,loginIP=@LoginIP where qqNo=@word end else if(@num=0) --没有重复行 执行插入 begin insert tbQQ(qqNo,version,inline,loginIP) values(@word,@VerSion,@inline,@LoginIP) set @f=right(@f,len(@f)-@int) set @int=charindex('.',@f) end end
select @num=count(*) from tbQQ where qqNo=@f if(@num=0)
begin
insert tbQQ(qqNo,version,inline,loginIP) values(@f,@VerSion,@inline,@LoginIP) end else if(@num=1)
begin
update tbQQ set version=@VerSion,inline=@inline,loginIP=@LoginIP where qqNo=@f
end
end if(@@error<>0) BEGIN set @wordback =1---表明存储过程失败 end else begin set @wordback=0 ---表明存储过程成功 end
GO
2006-07-01
TAG:数据库相关
在sql server中 要添加 修改 删除表中的字段是非常容易的
sql语句分别是:
添加:alter table diaocha add column [name] ntext
修改:alter table diaocha alter column [name] ntext
删除:alter table diaocha delete column [name] ntext
下面是网页常用代码
如内容超出单元格,则隐藏 style="TABLE-LAYOUT: fixed" 让弹出窗口 总是在最上面:
不要滚动条? 让竖条 没有: 让横条 没有: 两个都去掉?更简单了 怎样去掉图片链接点击后,图片周围的虚线? 电子邮件处理提交表单 在打开的子窗口刷新父窗口的代码里如何写? window.opener.location.reload() 如何设定打开页面的大小 在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 各种样式的光标 auto :标准光标 default :标准箭头 hand :手形光标 wait :等待光标 text :I形光标 vertical-text :水平I形光标 no-drop :不可拖动光标 not-allowed :无效光标 help :?帮助光标 all-scroll :三角方向标 move :移动标 crosshair :十字标 e-resize n-resize nw-resize w-resize s-resize se-resize sw-resize 本机ip<%=request.servervariables("remote_addr")%> 服务器名<%=Request.ServerVariables("SERVER_NAME")%> 服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%> 服务器端口<%=Request.ServerVariables("SERVER_PORT")%> 服务器时间<%=now%> IIS 版本<%=Request.ServerVariables"SERVER_SOFTWARE")%> 脚本超时时间<%=Server.ScriptTimeout%> 本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%> 服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 服务器解译引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %> 服务器操作系统<%=Request.ServerVariables("OS")%>文本竖排方式 超链接去虚线边框 在链接中加上onfocus="this.blur()"网页搜索关键字 头里插入 收藏夹图标 我的电脑 file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}网上邻居 file:///::%7B208D2C60-3AEA-1069-A2D7-08002B30309D%7D我的文档 file:///::%7B450D8FBA-AD25-11D0-98A8-0800361B1103%7D控制面板 file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}回收站 file:///::%7B645FF040-5081-101B-9F08-00AA002F954E%7D鼠标控制图片隐现效果 把如下代码加入<body>区域中: 2、把如下代码加入<body>区域中: onMouseOver="makevisible(this,0)" onMouseOut="makevisible(this,1)">禁止图片下载 页嵌页 隐藏滚动条 CSS文字阴影(定义在中) .abc{ FILTER: dropshadow(color=#666666, offx=1, offy=1, positive=1); FONT-FAMILY: "宋体"; FONT-SIZE: 9pt;COLOR: #ffffff; }列表/菜单 onchange="location=this.options[this.selectedIndex].value" reurl=server.htmlencode(request.ServerVariables("HTTP_REFERER"))服务器上如何定义连接 MM_www_STRING ="driver={Microsoft access Driver (*.mdb)};dbq=" & server.mappath("../data/www.mdb")链接到 response.redirect"login.asp" location.href="xx.asp" onClick="window.location=login.asp" onClick="window.open()"取得IP userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR") sql="update feedbak set hit=hit+1 where id="&request("id") conn.execute(sql)截取字符是否加... function formatStr(str,len) if(len(str)>len) str = left(str,len) + "..." end if formatStr = str end function接收表单 If Ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then end if图片宽度 Ill be Back 22:18:06 " border="0" onload="javascript:DrawImage(this);">跳转 溢出栏的设制 visible:超出的部分照样显示; hidden:超出的部分隐藏; scrool:不管有否超出,都显示滚动条; auto:有超出时才出现滚动条; onMouseOver:鼠标移到目标上; onMouseUp:按下鼠标再放开左键时; onMouseOut:鼠标移开时; onMouseDown:按下鼠标时(不需要放开左键); onClink:点击时; onDblClick:双击时; onLoad:载入网页时; onUnload:离开页面时; onResize:当浏览者改变浏览窗口的大小时; onScroll:当浏览者拖动滚动条的时。CSS样式 a:link:表示已经链接; a:hover:表示鼠标移上链接时; a:active:表示链接激活时; a:visited:表示己点击过的链接。跳出对话框链接 javascript:alert(lajflsjpjwg) 后退:javascript:history.back(1) 关闭窗口:javascript:window.close(); 窗口还原 function restore(){ window.moveTo(8,8); window.resizeTo(screen.width-24,screen.availHeight-24); } head区是指首页HTML代码的和之间的内容。 必须加入的标签1.公司版权注释 2.网页显示字符集 简体中文: 繁体中文: 英 语:3.网页制作者信息 4.网站简介 5.搜索关键字 6.网页的css规范 (参见目录及命名规范)7.网页标题 xxxxxxxxxxxxxxxxxx .可以选择加入的标签 1.设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。 2.禁止浏览器从本地机的缓存中调阅页面内容。 3.用来防止别人在框架里调用你的页面。 4.自动跳转。 5指时间停留5秒。5.网页搜索机器人向导.用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。 CONTENT的参数有all,none,index,noindex,follow,nofollow。默认是all。6.收藏夹图标 所有的javascript的调用尽量采取外部调用. 附标签: 标签不属于head区,这里强调一下,为了保证浏览器的兼容性,必须设置页面背景 flash透明 在flash的源代码中加上: 表格透明 style="FILTER: alpha(opacity=72)"
网址前添加icon的方法 1、上http://www.favicon.com 上用他的icon editor online制作一个图标。他会将做好的图标通过email即时发送给你。 2、把这个命名为favicon.ico的图标放置在index.html同一个文件夹中。就可以了。 作一个图标文件,大小为16*16像素。文件扩展名为ico,然后上传到相应目录中。在HTML源文件“<head></head>”之间添加如下代码: <Link Rel="SHORTCUT ICON" href="http://图片的地址(注意与刚才的目录对应)"> 其中的“SHORTCUT ICON”即为该图标的名称。当然如果用户使用IE5或以上版本浏览时,就更简单了,只需将图片上传到网站根目录下,自动识别
可以在收藏夹中显示出你的图标
状态栏连接说明 某某链接
链接说明
禁止鼠标右键 在
标签中加入 DW里输入空格 插入N个
水平线
noshade为有无阴影表单电子邮件提交 < form name="content" method="post" action="mailto:电子邮箱" >< /form> 文本域名为Subject 为邮件的标题
邮件链接定制 Mailto:地址 ? Subject=邮件的标题 &bc=抄送 &bcc=密件抄送
背景音乐
禁止页面正文选取
消除ie6自动出现的图像工具栏,设置 GALLERYIMG属性为false或no .
防止点击空链接时,页面往往重置到页首端。 代码“javascript:void(null)”代替原来的“#”标记
如何避免别人把你的网页放在框架中
设为首页 设为首页
添加收藏 收藏本站
文字滚动 插入边框为0的1行1列的表格,在表格中输入文字,选中文字, 按ctrl+t输入marquee direction="up", 回车即可让文字在表格区域内向上滚动。 (right、down可用于让文字或图象向右及向下滚动,修改html原代码还可以得到需要的滚动速度。
表单验正
定义鼠标 body{cursor: url(cur.ani或cur);}
以图片方式插视频
层在flash上面 < param name="wmode" value="opaque" >
延迟跳转 导航条变色: 单元格
居中 空链接 javascript:;标题表格 表格的说明 细线表格 style="BORDER-COLLAPSE: collapse;"滚动条颜色代码 BODY{ SCROLLBAR-FACE-COLOR: #FFFFFF; SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF; SCROLLBAR-SHADOW-COLOR: #FFFFFF; SCROLLBAR-3DLIGHT-COLOR: #FFCBC8; SCROLLBAR-ARROW-COLOR: #FFFFFF; SCROLLBAR-TRACK-COLOR: #FFFFFF; SCROLLBAR-DARKSHADOW-COLOR: #FFCBC8; SCROLLBAR-BASE-COLOR: #FFFFFF }连续的英文或者一堆感叹号!!!不会自动换行的问题 只要在CSS中定义了如下句子,可保网页不会再被撑开了 table{table-layout: fixed;} td{word-break: break-all; word-wrap:break-word;} 注释一下: 1.第一条table{table-layout: fixed;},此样式可以让表格中有!!!(感叹号)之类的字符时自动换行。 2.td{word-break: break-all},一般用这句这OK了,但在有些特殊情况下还是会撑开,因此需要再加上后面一句{word-wrap:break-word;}就可以解决。此样式可以让表格中的一些连续的英文单词自动换行。
2006-05-17
TAG:数据库相关
分页之后的需求就是对符合一定条件的内容进行排序按各种条件,当分页提取一定数量的数据时总有可能会因为排序的问题,导致排序失败 对于这个方面不精的朋友。
order by 是如此重要啊
没有时间详说 贴出来 如果哪位有心的话 或许会收获到一些东西 如你有更高明的也请麻烦告诉我 tks
---对付以球队分类的列表 开始 with partdata As (select rownum as rowno, c.* From (Select a.userid,a.gateno,a.joinname,b.timeused,b.correctanswers,a.SupportTeam from mycup_pk_userinfo a,mycup_pk_record b where a.userid=b.userid and a.gateno=b.gateno And a.SupportTeam='阿根廷' Order By a.gateno Desc ,b.timeused) c ) select * from partdata where rowno Between 1 And 4 ---对付以球队分类的列表 结束
--手工关闭 开始 Commit --手工关闭 结束
--全部成员列表 开始 with partdata as (select rownum as rowno, d.* from (select a.userid,b.JoinName,b.SupportTeam,a.gateno,a.timeused, a.correctanswers From mycup_pk_record a Join mycup_pk_userinfo b On b.userid=a.userid And a.gateno=b.gateno order by a.gateno Desc)d) select * from partdata where rowno Between 1 And 4 --全部成员列表 结束
分页 共2页 1 2 下一页 最后一页