ASP函数大全

ASP函数大全
ASP函数与VBSCRIPT类似,以下举一些常用的函数 
 
Array() 
 
函数返回一个数组 
 
表达式 Array(list) 
 
允许数据类型: 字符,数字均可 
 
实例: <% 
 
Dim myArray() 
 
For i = 1 to 7 
 
Redim Preserve myArray(i) 
 
myArray(i) = WeekdayName(i) 
 
Next 
 
%> 
 
返回结果: 建立了一个包含7个元素的数组myArray 
 
myArray("Sunday","Monday", ... ... "Saturday") 
 
 
CInt() 
 
函数将一个表达式转化为数字类型 
 
表达式 CInt(expression) 
 
允许数据类型: 任何有效的字符均可 
 
实例: <% 
 
f = "234" 
 
response.write cINT(f) + 2 
 
%> 
 
返回结果: 236 
 
转化字符"234"为数字"234",如果字符串为空,则返回0值 
 
 
CreateObject() 
 
函数建立和返回一个已注册的ACTIVEX组件的实例。 
 
表达式 CreateObject(objName) 
 
允许数据类型: objName 是任何一个有效、已注册的ACTIVEX组件的名字. 
 
实例: <% 
 
Set con = Server.CreateObject("ADODB.Connection") 
 
%> 
 
 
CStr() 
 
函数转化一个表达式为字符串. 
 
表达式 CStr(expression) 
 
允许数据类型: expression 是任何有效的表达式。 
 
实例: <% 
 
s = 3 + 2 
 
response.write "The 返回结果 is: " & cStr(s) 
 
%> 
 
返回结果: 转化数字“5”为字符“5”。 
 
 
Date() 
 
函数返回当前系统日期. 
 
表达式 Date() 
 
允许数据类型: None. 
 
实例: <%=Date%> 
 
返回结果: 9/9/00 
 
 
DateAdd() 
 
函数返回一个被改变了的日期。 
 
表达式 DateAdd(timeinterval,number,date) 
 
允许数据类型: 
timeinterval is the time interval to add; 
number is amount of time intervals to add; 
and date is the starting date. 
 
实例: <% 
 
currentDate = #9/9/00# 
 
newDate = DateAdd("m",3,currentDate) 
 
response.write newDate 
 
%> 
 
 
<% 
 
currentDate = #12:34:45 PM# 
 
newDate = DateAdd("h",3,currentDate) 
 
response.write newDate 
 
%> 
 
返回结果: 9/9/00 
 
3:34:45 PM 
 
"m" = "month"; 
 
"d" = "day"; 
 
If currentDate is in time format then, 
 
"h" = "hour"; 
 
"s" = "second"; 
 
 
DateDiff() 
 
函数返回两个日期之间的差值 。 
 
表达式 DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) 
 
允许数据类型: timeinterval 表示相隔时间的类型,如“M“表示“月”。 
 
实例: <% 
 
fromDate = #9/9/00# 
 
toDate = #1/1/2000# 
 
response.write "There are " & _ 
 
DateDiff("d",fromDate,toDate) & _ 
 
" days to millenium from 9/9/00." 
 
%> 
 
返回结果: 从9/9/00 到2000年还有 150 天. 
 
 
Day() 
 
函数返回一个月的第几日 . 
 
表达式 Day(date) 
 
允许数据类型: date 是任何有效的日期。 
 
实例: <%=Day(#9/9/00#)%> 
 
返回结果: 4 
 
 
FormatCurrency() 
 
函数返回表达式,此表达式已被格式化为货币值 
 
表达式 FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]]) 
 
允许数据类型: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置; LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。

实例: <%=FormatCurrency(34.3456)%> 
 
返回结果: $34.35 
 
 
FormatDateTime() 
 
函数返回表达式,此表达式已被格式化为日期或时间 
 
表达式 FormatDateTime(Date, [, NamedFormat]) 
 
允许数据类型: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate. 
 
实例: <%=FormatDateTime("09/9/00", vbLongDate)%> 
 
返回结果: Sunday, September 09, 2000 
 
 
FormatNumber() 
 
函数返回表达式,此表达式已被格式化为数值. 
 
表达式 FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]]) 
 
允许数据类型: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。. 
 
实例: <%=FormatNumber(45.324567, 3)%> 
 
返回结果: 45.325 
 
 
FormatPercent() 
 
函数返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 (%) 
 
表达式 FormatPercent(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]]) 
 
允许数据类型: 同上. 
 
实例: <%=FormatPercent(0.45267, 3)%> 
 
返回结果: 45.267% 
 
 
Hour() 
 
函数以24时返回小时数. 
 
表达式 Hour(time) 
 
允许数据类型: 
 
实例: <%=Hour(#4:45:34 PM#)%> 
 
返回结果: 16 
 
(Hour has been converted to 24-hour system) 
 
 
Instr() 
 
函数返回字符或字符串在另一个字符串中第一次出现的位置. 
 
表达式 Instr([start, ] strToBeSearched, strSearchFor [, compare]) 
 
允许数据类型: Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符.compare比较方式(详细见ASP常数) 
 
实例: <% 
 
strText = "This is a test!!" 
 
pos = Instr(strText, "a") 
 
response.write pos 
 
%> 
 
返回结果: 9 
 
 
InstrRev() 
 
函数同上,只是从字符串的最后一个搜索起 
 
表达式 InstrRev([start, ] strToBeSearched, strSearchFor [, compare]) 
 
允许数据类型: 同上. 
 
实例: <% 
 
strText = "This is a test!!" 
 
pos = InstrRev(strText, "s") 
 
response.write pos 
 
%> 
 
返回结果: 13 
 
 
 
Int() 
 
函数返回数值类型,不四舍五入。 
 
表达式 Int(number) 
 
允许数据类型: 
 
实例: <%=INT(32.89)%> 
 
返回结果: 32 
 
 
IsArray() 
 
函数判断一对象是否为数组,返回布尔值 . 
 
表达式 IsArray(name) 
 
实例: <% 
 
strTest = "Test!" 
 
response.write IsArray(strTest) 
 
%> 
 
返回结果: False 
 
 
IsDate() 
 
函数判断一对象是否为日期,返回布尔值 
 
表达式 IsDate(expression) 
 
实例: <% 
 
strTest = "9/4/2000" 
 
response.write IsDate(strTest) 
 
%> 
 
返回结果: True 
 
 
IsEmpty() 
 
函数判断一对象是否初始化,返回布尔值. 
 
表达式 IsEmpty(expression) 
 
实例: <% 
 
Dim i 
 
response.write IsEmpty(i) 
 
%> 
 
返回结果: True 
 
 
IsNull() 
 
函数判断一对象是否为空,返回布尔值. 
 
表达式 IsNull(expression) 
 
实例: <% 
 
Dim i 
 
response.write IsNull(i)

%>

返回结果: False 
 
 
IsNumeric() 
 
函数判断一对象是否为数字,返回布尔值. 
 
表达式 IsNumeric(expression) 
 
实例: <% 
 
i = "345" 
 
response.write IsNumeric(i) 
 
%> 
 
返回结果: True 
 
就算数字加了引号,ASP还是认为它是数字。 
 
 
IsObject() 
 
函数判断一对象是否为对象,返回布尔值. 
 
表达式 IsObject(expression) 
 
实例: <% 
 
Set con = Server.CreateObject("ADODB.Connection") 
 
response.write IsObject(con) 
 
%> 
 
返回结果: True 
 
 
LBound() 
 
函数返回指定数组维的最小可用下标. 
 
表达式 Lbound(arrayname [, dimension]) 
 
实例: <% 
 
i = Array("Monday","Tuesday","Wednesday") 
 
response.write LBound(i) 
 
%> 
 
返回结果: 0 
 
 
LCase() 
 
函数 返回字符串的小写形式 
 
表达式 Lcase(string) 
 
实例: <% 
 
strTest = "This is a test!" 
 
response.write LCase(strTest) 
 
%> 
 
返回结果: this is a test! 
 
 
Left() 
 
函数返回字符串左边第length个字符以前的字符(含第length个字符). 
 
表达式 Left(string, length) 
 
实例: <% 
 
strTest = "This is a test!" 
 
response.write Left(strTest, 3) 
 
%> 
 
返回结果: Thi 
 
 
Len() 
 
函数返回字符串的长度. 
 
表达式 Len(string | varName) 
 
实例: <% 
 
strTest = "This is a test!" 
 
response.write Len(strTest) 
 
%> 
 
返回结果: 15 
 
 
LTrim() 
 
函数去掉字符串左边的空格. 
 
表达式 LTrim(string) 
 
实例: <% 
 
strTest = " This is a test!" 
 
response.write LTrim(strTest) 
 
%> 
 
返回结果: This is a test! 
 
 
Mid() 
 
函数返回特定长度的字符串(从start开始,长度为length). 
 
表达式 Mid(string, start [, length]) 
 
实例: <% 
 
strTest = "This is a test! Today is Monday." 
 
response.write Mid(strTest, 17, 5) 
 
%> 
 
返回结果: Today 
 
 
Minute() 
 
函数返回时间的分钟. 
 
表达式 Minute(time) 
 
实例: <%=Minute(#12:45:32 PM#)%> 
 
返回结果: 45 
 
 
Month() 
 
函数返回日期. 
 
表达式 Month(date) 
 
实例: <%=Month(#08/04/99#)%> 
 
返回结果: 8 
 
 
MonthName() 
 
函数返回指定月份 
 
表达式 MonthName(month, [, Abb]) 
 
实例: <%=MonthName(Month(#08/04/99#))%> 
 
返回结果: August 
 
 
Now() 
 
函数返回系统时间 
 
表达式 Now() 
 
实例: <%=Now%> 
 
返回结果: 9/9/00 9:30:16 AM 
 
 
Right() 
 
函数返回字符串右边第length个字符以前的字符(含第length个字符). 
 
表达式 Right(string, length) 
 
实例: <% 
 
strTest = "This is an test!" 
 
response.write Right(strTest, 3) 
 
%> 
 
返回结果: st! 
 
 
Rnd() 
 
函数产生一个随机数. 
 
表达式 Rnd [ (number) ] 
 
实例: <% 
 
Randomize()

 

Rnd() 
 
函数产生一个随机数. 
 
表达式 Rnd [ (number) ] 
 
实例: <% 
 
Randomize() 
response.write RND() 
 
%> 
 
返回结果: 任何一个在0 到 1 之间的数 
 
 
Round() 
 
函数返回按指定位数进行四舍五入的数值. 
 
表达式 Round(expression [, numRight]) 
 
实例: <% 
 
i = 32.45678 
 
response.write Round(i) 
 
%> 
 
返回结果: 32 
 
 
Rtrim() 
 
函数去掉字符串右边的字符串. 
 
表达式 Rtrim(string) 
 
实例: <% 
 
strTest = "This is a test!! " 
 
response.write RTrim(strTest) 
 
%> 
 
返回结果: This is a test!! 
 
 
Split() 
 
函数将一个字符串分割并返回分割结果 
 
表达式 Split (S[,d]) 
 
实例:<%V= Split(A,B,C) 
 
For i = 0 To UBound(V) 
 
Response.Write V(i) 
 
Next 
 
%> 
 
返回结果: A B C 
 
 
Second() 
 
函数返回秒. 
 
表达式 Second(time) 
 
实例: <%=Second(#12:34:28 PM#)%> 
 
返回结果: 28 
 
 
StrReverse() 
 
函数反排一字符串 
 
表达式 StrReverse(string) 
 
实例: <% 
 
strTest = "This is a test!!" 
 
response.write StrReverse(strTest) 
 
%> 
 
返回结果: !!tset a si sihT 
 
 
Time() 
 
函数返回系统时间. 
 
表达式 Time() 
 
实例: <%=Time%> 
 
返回结果: 9:58:28 AM 
 
 
Trim() 
 
函数去掉字符串左右的空格. 
 
表达式 Trim(string) 
 
实例: <% 
 
strTest = " This is a test!! " 
 
response.write Trim(strTest) 
 
%> 
 
返回结果: This is a test!! 
 
 
UBound() 
 
函数返回指定数组维数的最大可用下标>. 
 
表达式 Ubound(arrayname [, dimension]) 
 
实例: <% 
 
i = Array("Monday","Tuesday","Wednesday") 
 
response.write UBound(i) 
 
%> 
 
返回结果: 2 
 
 
UCase() 
 
函数返回字符串的大写形式. 
 
表达式 UCase(string) 
 
允许数据类型: 
 
实例: <% 
 
strTest = "This is a test!!" 
 
response.write UCase(strTest) 
 
%> 
 
返回结果: THIS IS A TEST!! 
 
 
VarType() 
 
函数返回指示变量子类型的值 
 
表达式 VarType(varName) 
 
实例: <% 
 
i = 3 
 
response.write varType(i) 
 
%> 
 
返回结果: 2(数字)详见"asp常数" 
 
 
WeekDay() 
 
函数返回在一周的第几天. 
 
表达式 WeekDay(date [, firstdayofweek]) 
 
实例: <% 
 
d = #9/9/00# 
 
response.write Weekday(d) 
 
%> 
 
返回结果: 4(星期三) 
 
 
WeekDayName() 
 
函数返回一周第几天的名字. 
 
表达式 WeekDayName(weekday [, Abb [, firstdayofweek]]) 
 
实例: <% 
 
d = #9/9/00# 
 
response.write WeekdayName(Weekday(d)) 
 
%> 
 
返回结果: Wednesday 
 
 
Year() 
 
函数返回当前的年份. 
 
表达式 Year(date) 
 
实例: <%=Year(#9/9/00#)%>

ASP网页制作技巧
 

 

1.获得系统时间:

  <%=now()%>



2.取得来访用的IP:

  <%=request.serverVariables("remote_host")%>



3.获得系统,浏览器版本:

  <script>

  window.document.write("版本:"+navigator.appName+navigator.appVersion+" browser.")

  </script>



4.去除IE混动条:

  <body scroll="no">

  <body style="overflow-y:hidden">



5.进入网站,跳出广告:

  <script language="&#106avascript">

  <!--

  <!-- 注意更改文件所在路径-->

  ***********(''http://www.******.com'','''',''height=200,width=300,top=0,left=30'');


  // -->

  </script>



6.随机数:

  <%randomize%>

  <%=(int(rnd()*n)+1)%>


  N为可改变数

7.向上混动代码:

  <marquee direction="up" scrolldelay="200" style="font-size:
  9pt; color: #FF0000; line-height: 150%; font-style:italic; font-weight:bold"
  scrollamount="2" width="206" height="207" bgcolor="#FFFF00">hhhhhhhhhhhhhhhhhhh</marquee>



8.自动关闭网页:

  <script LANGUAGE="&#106avascript">

  <!--

  setTimeout(''window.close();'', 10000); //60秒后关闭

  // -->

  </script>

  <p align="center">本页10秒后自动关闭,请注意刷新页面</p>



9.随机背景音乐:

  <%randomize%>

  <bgsound src="mids/<%=(int(rnd()*60)+1)%>.mid" loop="-1">


  可以修改数字,限制调用个数,这里是60个。

10.自动刷新本页面:

  <script>

  <!--
  var limit="0:10"
  if (document.images){

  var parselimit=limit.split(":")

  parselimit=parselimit[0]*60+parselimit[1]*1

  }

  function beginrefresh(){

  if (!document.images)

  return

  if (parselimit==1)

  window.location.reload()

  else{

  parselimit-=1

  curmin=Math.floor(parselimit/60)

  cursec=parselimit%60

  if (curmin!=0)

  curtime=curmin+"分"+cursec+"秒后重刷本页!"

  else

  curtime=cursec+"秒后重刷本页!"

  window.status=curtime

  setTimeout("beginrefresh()",1000)

  }

  }
  window.οnlοad=beginrefresh

  file&#58//-->

  </script>


  //让页面五秒钟后自动关闭
  <script>

  setTimeout("window.close()",5000);

  </script>

asp判断函数

<1>IsArray 函数
  返回 Boolean 值指明某变量是否为数组。

  语法
  IsArray(varname)
  varname 参数可以是任意变量。

  说明
  如果变量是数组,IsArray 函数返回 True;否则,函数返回 False。当变量中包含有数组时,使用 IsArray 函数很有效。

<2>IsDate 函数
  返回 Boolean 值指明某表达式是否可以转换为日期。

  语法

  IsDate(expression)
  expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。

  说明
  如果表达式是日期或可合法地转化为有效日期,则 IsDate 函数返回 True;否则函数返回 False。在 Microsoft Windows 操作系统中,有效的日期范围公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日;合法的日期范围随操作系统不同而不同。

<3>IsEmpty 函数
  返回 Boolean 值指明变量是否已初始化。

  语法
  IsEmpty(expression)
  expression 参数可以是任意表达式。然而,由于 IsEmpty 用于判断一个变量是否已初始化,故 expression 参数经常是一个变量名。

  说明
  如果变量未初始化或显式地设置为 Empty,则函数 IsEmpty 返回 True;否则函数返回 False。如果 expression 包含一个以上的变量,总返回 False。

<4>IsNull 函数
  返回 Boolean 值,指明表达式是否不包含任何有效数据 (Null)。

  语法
  IsNull(expression)
  expression 参数可以是任意表达式。

  说明
  如果 expression 为 Null,则 IsNull 返回 True,即表达式不包含有效数据,否则 IsNull 返回 False。如果 expression 由多个变量组成,则表达式的任何组成变量中的 Null 都会使整个表达式返回 True。
  Null 值指出变量不包含有效数据。Null 与 Empty 不同,后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同,零长度字符串往往指的是空串。

  重点 使用 IsNull 函数可以判断表达式是否包含 Null 值。在某些情况下想使表达式取值为 True,例如 IfVar=Null 和 IfVar<>Null,但它们通常总是为 False。这是因为任何包含 Null 的表达式本身就为 Null,所以表达式的结果为 False。

<5>IsNumeric 函数
  返回 Boolean 值指明表达式的值是否为数字。

  语法
  IsNumeric(expression)
  expression 参数可以是任意表达式。

  说明
  如果整个 expression 被识别为数字,IsNumeric 函数返回 True;否则函数返回 False。
  如果 expression 是日期表达式,IsNumeric 函数返回 False。

<6>IsObject 函数
  返回 Boolean 值指明表达式是否引用了有效的 Automation 对象。

  语法
  IsObject(expression)
  expression 参数可以是任意表达式。

  说明
  如果 expression 是 Object 子类型变量或用户自定义的对象,则 IsObject 返回 True;否则函数返回 False。

回到先前的页面
<a href="<%=request.serverVariables("Http_REFERER")%>">preivous page</a>

或用图片如:<img src="arrowback.gif" alt="<%=request.serverVariables("HTTP_REFERER")%>">
用FOR循环执行重复操作
用FOR循环执行重复操作

当你需要重复执行一组语句一 定次数时,你可以使用一个FOR...NEXT循环,如下例所示:

<%

for i=1 to 500

%>

Hello Again!

<%

next

%>

在这个例子中,句子“Hello Again!”被在浏览器中打印500次。FOR语句和NEXT语句之间的任何语句都将被重复执行。甚至,象这个例子一样,当循环体内是HTML代码时,它也将被重复执行。

通过使用关键字STEP,你可以构造反向的循环。考虑下面的例子:

<%

For i=500 to 1 step –1

%>

Hello Again!

<%

NEXT

%>

这个例子输出与上一个例子完全相同的结果。但是,在这个例子中,FOR...LOOP循环从数字500开始,反向循环到1。

你可以在循环中使用不同的步长。在下面的例子中,变量i每次被增加10:

<%

for i=1 to 500 step 10

%>
<%=i%><br>

<%

next

%>


你可以用EXIT FOR语句从一个FOR...LOOP循环退出。假定你在遍历一个数组以找到某个字符串表达式的匹配值。当你已经找到了一个匹配时,你不需要继续执行循环:

<%

dim myarray(10)

myarray(4)=”Running Shoes”

for i=0 to ubound(myarray)

if myarray(i)=”Running Shoes” then exit for

next

%>

在这个例子中,如果数组中某个元素的值与表达式“Running Shoes”相匹配,则立即退出FOR...NEXT循环。变量i的值等于被匹配的元素的索引值。

FOR EACH...NEXT语句于FOR...NEXT语句关系密切。FOR EACH...NEXT语句只适用于对数组或集合的元素进行循环,如下面的例子所示:

<%

dim myarray(10)

myarray(4)=”Running Shoes”

for each i in myarray

if i=”Running Shoes” then exit for

next

%>

这个例子中的脚本与上一个例子完成相同的任务。当字符串表达式得到匹配时,立即退出循环。但是,当脚本完成时,变量i的值等于“Running Shoes”。

与FOR...LOOP循环中不同,这里的变量i不是作为一个计数器。而是代表循环所操作的数组或集合的每个成员的值。如果你想显示一个数组的所有元素的值,你可以这样做:

<%

for each i in myarry

%>

<%=i%>

<%

next

%>

用WHILE和DO执行条件循环

当以指定的次数执行一组语句或显示HTML代码块时,FOR...LOOP循环是有用的。但是,在许多情况下,当一个循环执行之前,你并不知道它需要执行的次数。在这些情况下,你需要使用WHILE循环或DO循环。

WHILE循环当某个条件的真值保持为TRUE时,重复执行一组语句。考虑如下的例子:

<%
TheFuture=DATEADD(“s”,15,TIME)

WHILE TIME<TheFuture

%>

<%=TIME%> : Waiting For The Future... <BR>

<%
WEND

%>
<B> The Future’s Here!</B>

在这个例子中,处在WHILE和WEND之间的所有语句被重复执行,直到时间过去15秒。WHILE语句测试当时时间是否小于存储在变量TheFuture中的时间。一旦当前时间大于或等于TheFuture,则退出循环。

DO循环与WHILE循环密切相关,但是更复杂。用DO循环,你可以构造当某个条件保持为真时重复执行的循环,也可以构造重复执行直到某个条件为真的循环。这里有一个例子:

<%

do while sentence<>”Hello There!”

sentence=”Hello There!”

%>

<%=sentence%>

<%

loop

%>

在这个例子中,当变量sentence的值不等于字符串”Hello There!”时,处在DO语句和LOOP语句之间的语句被重复执行。因为在循环体你变量sentence被赋了值”Hello There!”,WHILE条件只在第一次迭代时为TRUE。换句话说,这个DO循环体内的语句只执行一次,字符串”Hello There!”只被在屏幕上打印一次。

在这个例子中,当某个条件为真时则执行循环。你也可以构造一个一直执行直到某个条件为真的循环,如下例所示:

<%
do until sentence=”Hello There!”

sentence=”Hello There!”

%>

<%=sentence%>

<%

loop

%>

这个脚本于上一个完成同样的功能。DO循环只执行一次。一旦变量sentence的值等于”Hello There!”就不再执行循环。这个循环只执行一次,字符串”Hello There!”只在屏幕上打印一次。

如果你愿意,你可以把表达式WHILE或UNTIL转移到循环的底部,象这样:

<%

do

sentence=”Hello There!”

%>

<%

loop until sentence=”Hello There!”

%>

使用DO循环时,你可以用EXIT DO语句退出循环。考虑如下的循环:

<%

do until 1<>1

exclaim=exclaim&”!”

if exclaim=”!!!!!” then exit do

loop

%>

<%=exclaim%>

在这个例子中,DO循环一直执行到1等于1,换句话说,它永远循环下去。然而,在每一次循环中,变量exclaim被追加一个感叹号。当变量exclaim等于字符串”!!!!!”时,exit do语句强制退出循环。

当用WHILE或DO构造循环时,小心不要构造死循环。如果你偶尔构造了一个死循环,不要担心。经过一定时间之后(通常是90秒),脚本会自动结束。

注意

你可以使用Sever对象的ScriptTimeOut属性来控制一个脚本执行多长时间后就算超时。请参见第14章,“使用单个Active Sever Page。”
6月11日
常用SQL命令
常用SQL命令
 

1、修改字段长度:
alter table 单位招聘资料 alter column 其它要求 nvarchar(500)

2、更新内容
update 类别 set 类别名称='开展保持共产党员先进性教育活动专题' where 类别编号=1

3、select into 创建新表
select * into 网上招聘单位基本资料 from 单位基本资料 where 招聘类型='网上'

4、更改表名
exec sp_rename '网上查询', '网上招聘单位'

5、插入一条记录
insert into 单位基本资料(备注,单位简介,单位名称,地址,点击量,电话,电子信箱,发布状态,联系人,网址,邮编,招聘类型,招聘日期)
 values ('备注','单位简介','锐达工具厂','贵阳小河',0,'12345678','gyrc@gyrc.com.cn','启动','小朱','www.gyrc.cn','550001','网上','2005-9-30')

6、插入多条记录
INSERT INTO 表 [IN 外部资料库] [(字段1[,字段2[, ...]])] SELECT [表.]字段1[, 字段2[, ...] FROM 表

asp连接SQL数据库及RS指针资料
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
[Source]
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。
[ActiveConnection]
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。
 
[CursorType]
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常数        常数值   说明
-------------------------------------------------------------
adOpenForwardOnly 0     缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset    1     启动一个Keyset类型的游标。
adOpenDynamic   2     启动一个Dynamic类型的游标。
adOpenStatic    3     启动一个Static类型的游标。
-------------------------------------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。
-------------------------------------------------------------
Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
-------------------------------------------------------------
AbsolutePage 不支持 不支持 可读写 可读写
AbsolutePosition 不支持 不支持 可读写 可读写
ActiveConnection 可读写 可读写 可读写 可读写
BOF 只读 只读 只读 只读
Bookmark 不支持 不支持 可读写 可读写
CacheSize 可读写 可读写 可读写 可读写
CursorLocation 可读写 可读写 可读写 可读写
CursorType 可读写 可读写 可读写 可读写
EditMode 只读 只读 只读 只读
EOF 只读 只读 只读 只读
Filter 可读写 可读写 可读写 可读写
LockType 可读写 可读写 可读写 可读写
MarshalOptions 可读写 可读写 可读写 可读写
MaxRecords 可读写 可读写 可读写 可读写
PageCount 不支持 不支持 只读 只读
PageSize 可读写 可读写 可读写 可读写
RecordCount 不支持 不支持 只读 只读
Source 可读写 可读写 可读写 可读写
State 只读 只读 只读 只读
Status 只读 只读 只读 只读
AddNew 支持 支持 支持 支持
CancelBatch 支持 支持 支持 支持
CancelUpdate 支持 支持 支持 支持
Clone 不支持 不支持
Close 支持 支持 支持 支持
Delete 支持 支持 支持 支持
GetRows 支持 支持 支持 支持
Move 不支持 支持 支持 支持
MoveFirst 支持 支持 支持 支持
MoveLast 不支持 支持 支持 支持
MoveNext 支持 支持 支持 支持
MovePrevious 不支持 支持 支持 支持
NextRecordset 支持 支持 支持 支持
Open 支持 支持 支持 支持
Requery 支持 支持 支持 支持
Resync 不支持 不支持 支持 支持
Supports 支持 支持 支持 支持
Update 支持 支持 支持 支持
UpdateBatch 支持 支持 支持 支持
--------------------------------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。
 
[LockType]
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
-------------------------------------------------------------
常数 常数值 说明
--------------------------------------------------------------
adLockReadOnly 1
缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic 2
当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3
当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic 4
当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。
SQL的基本操作
1.数据类型

数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQL Server 提供了 25 种数据类型:

·Binary [(n)]

·Varbinary [(n)]

·Char [(n)]

·Varchar[(n)]

·Nchar[(n)]

·Nvarchar[(n)]

·Datetime

·Smalldatetime

·Decimal[(p[,s])]

·Numeric[(p[,s])]

·Float[(n)]

·Real

·Int

·Smallint

·Tinyint

·Money

·Smallmoney

·Bit

·Cursor

·Sysname

·Timestamp

·Uniqueidentifier

·Text

·Image

·Ntext



(1)二进制数据类型

二进制数据包括 Binary、Varbinary 和 Image.

Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。

Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。

Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是 n 个字节。

在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用 BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。

(2)字符数据类型

字符数据的类型包括 Char,Varchar 和 Text。

字符数据是由任何字母、符号和数字任意组合而成的数据。

Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text 数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在 SQL Server 中。

(3)Unicode 数据类型

Unicode 数据类型包括 Nchar,Nvarchar 和Ntext。

在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server 安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode 数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。

在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用 Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储 4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。

(4)日期和时间数据类型

日期和时间数据类型包括 Datetime 和 Smalldatetime 两种类型。

日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01 AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server 中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到 9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900 年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。

日期的格式可以设定。设置日期格式的命令如下:

Set DateFormat {format | @format _var|

其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为 MDY。

例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为 日 月有年 形式

(5)数字数据类型

数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数 。

整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是 Int,Smallint 和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于 Tinyint 数据类型存储数据的范围。使用 Int 数据狗昔存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求 4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用 Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。

精确小娄数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。

在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。

(6)货币数据表示正的或者负的货币数量 。在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney。Money 数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。

(7)特殊数据类型

特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。

Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。

Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。

Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。

2.用户定义的数据类型

用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为 postal_code 的数据类型,它基于 Char 数据类型。

当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。

(1)创建用户定义的数据类型

创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:

sp_addtype {type},[,system_data_bype][,'null_type']

其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。 null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'NULL'、'NOT NULL'或者'NONULL'。

例子:

Use cust

Exec sp_addtype ssn,'Varchar(11)',"Not Null'

创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。

例子:

Use cust

Exec sp_addtype birthday,datetime,'Null'

创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。

例子:

Use master

Exec sp_addtype telephone,'varchar(24),'Not Null'

Eexc sp_addtype fax,'varchar(24)','Null'

创建两个数据类型,即 telephone 和 fax

(2)删除用户定义的数据类型

当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {'type'}。

例子:

Use master

Exec sp_droptype 'ssn'

注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。

SQL的基本操作(2.数据库的相关操作)

1.如何创建数据库

(1).使用 Create Database 创建数据库

Create Database 语名的语法形式如下:

Create Database database_name

[On

{[Primary](Name=logical_file_name,

Filename='os_file_name'

[,Size=size]

[,Maxsize=max_size]

}[,...n]

]

[Log On

}(Name=Logical_name,

Filename='os_file_name'

[,Size=size])

}[,...n]

]

[For Restore]

注释:

Primary:该选项是一个关键字,用来指定主文件组中的文件。主文件组不公包含了数据库系统表中的全部内容,而且还包含了没有在用户文件组中包含的全部对象。一个数据库只能有一个主文件。在默认情况下,即在没有指定Primary关键字时,列在语句中的第一个文件就是主文件。

Name:该选项指定数据库的逻辑名字,这是在SQL Server 系统中使用的名称,是数据库在SQL Server 中标识符。

Filename:该选项用来指定数据库所在文件的操作系统文件名称和路径。在os_file_name中的路径必须是SQL Server 所在服务器上的一个文件夹。该操作系统文件名称与Name 的逻辑名称是一一对应的。

Size:该选项用来指定数据库操作系统文件的大小。在指定文件大小的时候,既可以使用MB单位,也可以使用KB单位。如果没有指定单位,那么系统默认的单位是MB。文件最小是1MB,也就是说,数据库所在的文件不能小于1MB。在默认情况下,数据库数据文件的大小是3MB,数据库日志文件的大小是1MB。

Maxsize:该选项用来指定操作系统文件可以增长的最大尺寸。在指定文件增长尺寸的时候,既可以使用MB单位,也可以使用KB单位。如果没有指定单位,那么系统的默认单位是MB。如果没有指定文件可以增长的最大尺寸,那么系统的增长是没有限制的,可以占满整个磁盘空间。

FielGrowth:该选取项用来指定文件的增量,当然该选项不能与Maxsize选项有冲突。该选项指定的数据值为零时,表示文件不能增长。该选项可以用MB、KB和百分比指定。

例子:

创建一个cust数据库,该数据库的主数据文件的逻辑名称是cust_data,操作系统文件是cust.mdf,大小是15MB,最大是30MB,以20%的速度增加;该数据库的日志文件的逻辑名称是cust_log,操作系统是cust.ldf,大小是3MB,最大是10MB,以1MB的速度增加。

Create Database cust

On

Primary (Name=cust_data,

Filename='d:/cust.mdf',

Size=15MB,

Maxsize=30MB,

Filegrowth=20%)

Log On

(Name=cust_log,

Filename='d:/cust.ldf',

Size=3MB,

Maxsize=10MB,

FileGrowth=1MB)

2.如何增加数据库的大小

(1).使用Alter Database命令来增加数据库文件的大小

如果在创建数据库文件时没有配置文件的大小自动增长,那么可以使用Alter Database命令来增加文件的大小。

例子:

将数据库cust的数据文件cust_data的大小调整为50MB。

Alter Database cust

Modify File (Name='cust_data',Size=50)

(2).使用Add File 增加一个次要文件

通过为数据库增加次要的数据文件和日志文件来增加数据库的大小。

例子:

Alter Database cust

Add File

(Name=cust_data2,Filename='d:/cust2.mdf',

Size=5MB,

Maxsize=10MB,

Filegrowth=10%)

3.压缩数据库和数据文件

(1)使用Dbcc Shrinkdatabase 命令压缩整个数据库

例子:

将cust数据库的大小压缩到10%

Dbcc Shrinkdatabase (cust,10)

(2)使用Dbcc ShrinkFile命令压缩数据库中的某一个数据文件

例子:

将cust数据文件的大小压缩到5MB

Dbcc ShrinkFile (cust,5)

4.删除数据库

(1)使用Drop命令删除数据库

例子:

将删除cust数据库

Drop Database cust

SQL的基本操作(3.表的相关操作)

1.创建表

(1)用Create Table 命令创建表

语法:

Create Table tabl_name

({

}column_name As computed_column_expression

}

}[,...n]

)

[On {fiegroup | Default}]

[Textimage_On {fiegroup | Default}]

例子:

打开cust数据库,创建一个表,该表包含了学生的有关信息,即有学号、姓名、性别、出生日期、籍贯、联系电话、住址和备注信息。

Use cust

Create Table students

(

number int not null,

name varchar(10) not null,

sex char(2) null,

birthday datetime null,

hometown varchar(30) null,

telphone_no varchar(12) null,

address varchar(30) null,

others varchar(50) null

)

在这个表中number表示学生代号,数据类型为int,不允许为空;name表示学生姓名,数据类型为varchar,长度为10,不允许为空;sex表示学生的性别,数据类型为char,长度为2,允许为空;birthday表示学生的出生日期,数据类型为datetime,允许为空;hometown表示学生的籍贯,数据类型为varchar,长度为30,允许为空;telephone_no表示学生的联系电脑,数据类型为varchar,长度为12,允许为空;address表示学生的住址,数据类型为varchar,长度为30,允许为空;others表示学生的备注信息,长度为50,允许为空。

2.修改表的结构

(1)使用T-SQL语句增加和删除一个新列

语法:

Alter Table table

{

ADO

{[]

|colun_name As computed_column_expression

|[]

}[,...n]

|Drop

{Column column

}[,...n]

}

例子:打开cust数据库,修改其中的表students的结构,增加一个新字段,字段名为ying,数据类型是varchar,长度是10,没有默认值,充许为空。

Use cust

Alter Table students Add ying varchar(10) null

打开cust数据库,修改其中的表students的结构,删除一个字段,字段名为ying。

Use cust

Alter Table students Drop Column ying

3.向表中插入数据

(1)用 Insert 语句

语法如下:

Insert [Into]

{table_name|view_name}[(column_list)]

{Values|values_list|select_statement}

注意:在插入数据时,字符数据和日期数据要使用引号引起来。

例子:

Use cust

Insert Into students

Values (11,"影子","男","1999-12-12","湖北","83779805","武汉市桥口区","VB爱好者")

打开cust数据库,向students表中插入数据



(2)用Default 选项

在插入数据时,可以使用Default选项。Default选项有两种形式,一种形式是Default Values,另一种是Default。

Default Values 形式为表中的某一行的所有列插入默认值。使用这种形式的前提条件是表中的所有列必须是这四种类型之一:Identity属性,Timestamp数据类型,允许为Null,或者有一个指定的默认值。否则,会错误信息。

例子:

Use cust

Insert Into students Default Values

这个例子会出现错误,因为students表的number字段是设置为不允许为空的。



Default 形式是为表中的某一列插入默认值。要插入的该列必须具备一定的条件,即该列要么是Timestamp 数据类型,要么是允许为Null,要么是有一个指定的默认值,否则,会出现错误信息。

例子:

Use cust

Insert Into students Values(11,"影子",Default,Default,Default,Default,Default,Default)

由天前2个字段不能为空,所以要赋值,否则会出现错误,而后面的6个字段允许为空,因此可以调用Default默认。



(3)插入部分数据

在使用Insert语句插入数据是,还可以插入部分数据,也就是可以为每一行的指定的部分列插入数据。在插入部分数据时,应该注意以下三个问题:

☆在 Insert 子句中,指定要插入数据的列名。

☆在 Values 子句中,列出与列名对应的数据。列名的顺序和数据的顺序应该完全对应。

☆在 Insert 子句中,没有列出的列应该至少具有这四种类型之一:Identtty 属性,Timestamp 数据类型,允许为 Null,或者有一个指定的默认值。否则,会出现错误信息。

例子:

Use cust

Insert Into students (number,name)

Values (110,"影子")

打开cust数据库,向students表中插入一行数据

注意:如用下例语句将发生错误,因为name字段是不允许为空的(在创建数据库时设定的)

Insert Into students (number)

Values (110)



(4)用 Select 语句插入多条数据

Insert 语句插入数据的特点是每一次只能插入一行数据。相反,Select 也可以用在 Insert 语句中,并且可以一次插入多条数据。使用 Select 语句插入数据的语法形式如下:

Insert table_name

Select column_list

From table_list

Where search_conditions

在使用 Select 语句插入数据时,应该注意下面几点:

☆在 Insert 语句中使用 Select 时,他们参考的表既可以是相同的,也可以是不同的。

☆要插入数据的表必须已经存在。

☆要插入数据的表必须和 Select 的结果集兼容。兼容的含义是列的数量和顺序必须相同,列的数据类型或者相同,或者SQL Server 可以自动转换。

例子:

Use cust

Insert students

Select number,name,sex,birthday,hometown,telphone_no,address,others

From students

注意:

Select 后面的字段要输完整,这个例子是自己向自己插入多条数据(自己向自己插入是被允许的)

补充:

你还可以“From students”后面加上“Where name="影子"”,只插入name等于影子的记录,可以用And 和 Or 加上多个条件。



(5)使用 Select Into 插入数据到一个新表中

带有 Into 子句的 Select 语句允许用户定义一个新表并且把数据插入到新表中。这种方法不同于前面讲述的那些方法。在前面的那些方法中,一个共同的特点,是在数据输入之前表已经存在。而使用 Select Into 插入数据的方法,是在插入数据的过程中建立新表。

Select Into 语句的语法如下:

Select select_list

Into new_table_name

From table_list

Where search_conditions

在使用 Select Into 插入数据时,要注意下面几点:

☆在某个数据库中使用 Select Into 插入数据时,设置该数据库的 Select Into/Bulk Copy 为真。

☆新表不能存在,否则会产生错误信息。

☆新表中的列和行是基于查询结果集

☆要插入的数据不记录在日志中。

☆在select_list 中出现的列应该使用别名,否则,新表中的列没有列名。没列名的表只能通过 Select * From new_table_name 的形式查询。因此,应该为列起个别名。

☆这种方法多用在对列进行各种计算的情况。

例子:

Select number,name

Into newcust1

From students

创建新的表newcust1,插入students表中的number和name字段的所有数据。

补充:如果要插入所有字段的记录,则“Select *”,也可在“From students”后加条件,方法和上个例子一样。



(6)用 UPdate 语句修改表中的数据

Update 语句用来修改表中已存在的数据。Update 语句既可以一次修改一行数据,也可以一次修改许多行,甚至可以一次修改表中的全部数据。Update 语句使用 Where 子句指定要修改的行,使用 Set 子句给出新的数据。新数据可以是常量,也可以是指定的表达式,还可以是使用 From 子句来自其他表的数据。

Update 语句的语法如下:

Update {table_name|view_name}

Set {column_list}=expression [,. . .]

[Where clause]

在使用 Update 语句时,如果没有使用 Where 子句,那么就对表中所有的行进行修改。如果使用Update 语句修改数据时与数据完整性约束有冲突,那么修改就不会发生,整个修改事务全部滚回。例如,这种冲突可能是所输入的值是错误的数据类型,或者所输入的值违背了在该列定义的规则约束,等等。

例子:

Use cust

Update students

Set name=name+"007"

Where number>100

打开cust数据库,修改students表,使number>100的数据的name的值全部加"007"。



4.用 Delete 语句删除表中的数据

当数据库中的数据不需要的进修可以删除。一般情况下,删除数据使用 Delete 语句。Delete 语句可以一次从一个表中删除一条或者多条数据行。

Delete 语句的语法如下:

Delete [From] table_name

Where search_conditions

在 Delete 语句中如果使用了 Where 子句,那么就从指定的表中删除满足 Where 子句条件的数据行。

例子:

Use cust

Delete students

Where number>100

删除 students中,number>100的数据

补充:

如果在 Delete 语句中没有指定 Where 子句,那么就将表中所有的记录全部删除,即 Delete students 语句删除表中的全部记录。

在删除表中的全部数据时,还可以使用 Truncate Table 语句。Truncate Table 语句和 Delete 语句都可以将表中的全部数据删除,但是,两条语句又有不同的特点。当用户使用 Delete 语句删除数据时,被删除的数据要记录在日志中。并不将对数据的变化记录在日志中。因此,使用 Truncate Table students 语句删除记录的速度快于使用 Delete students 语句删除表中记录的速度。



5.用 Drop Table 命令删除表

当数据库中的表不需要时可以删除。删除表可以使用 Drop Table 语句。删除表就是删除表的定义以及表的全部数据、索引、触发器、约束和指定该表的许可。当删除表时,基于表的视图不能被删除,必须使用 Drop View 语句删除视图。

Drop Table 语句的语法如下:

Drop Table table_name

例子:

Use cust

Drop Table students

删除cust数据库中的students表。

补充:

不能使用 Drop Table 语句删除正在被约束参考的表,必须首先要么删除外键约束,要么删除参考表。表的所有者可以删除表。当删除表是时,绑定在该表上的规则或者默认则失掉了绑定,该表的约束或者触发器则自动被删除。如果重新创建表,必须重新绑定相应的规则和默认、重新创建触发器和增加必要的约束。另外,系统表不能删除。

删除表的许可属于表的所有者。然而,数据所有者(DBO)、系统管理员(SA)和DLL管理员可以删除数据库中的任何对象。





SQL的基本操作(4.数据的检索)



1.用 Select 子句检索记录

Select 子句是每一个检索数据的查询核心。它告诉数据库引擎返回什么字段。

Select 子句的常见形式是:

Select *

该子句的意思是“返回在所指定的记录源中能找到的所有字段”。这种命令形式很方便,因为你无需知道从表中检索的字段名称。然而,检索表中的所有列是低效的。因此,因该只检索需要的字段,这样可以大大的提高查询的效率。

2.使用 From 子句指定记录源

From 子句说明的是查询检索记录的记录源;该记录源可以是一个表或另一个存储查询。

你还能从多个表中检索记录,这在后面的章节中将介绍。

例子:

Select * From students 检索students表中的所有记录

3.用 Where 子句说明条件

Where 子句告诉数据库引擎根据所提供的一个或多个条件限定其检索的记录。条件是一个表达式,可具有真假两种判断。

例子:

Select * From students Where name="影子"

返回students中name字段为影子的列表,这次所返回的结果没有特定顺序,除非你使用了 Order By 子句。该子句将在后面的章节介绍。

注意:Where 子句中的文本字符串界限符是双引号,在VB中因改为单引号,因为在VB中字符串的界定符是双引号。

补充:

使用 And 和 Or 逻辑可以将两个或更多的条件链接到一起以创建更高级的 Where 子句。

例子:

Select * From students Where name="影子" And number>100

返回name为影子number大于100的列表。

例子:

Select * From students Where name="影子" And (number>100 Or number<50)

返回name为影子,number大于100或者小于50的列表。



Where 子句中用到的操作符

操作符 功能

< 小于

<= 小于或等于

> 大于

>= 大于或等于

= 等于

<> 不等于

Between 在某个取值范围内

Like 匹配某个模式

In 包含在某个值列表中

SQL中的等于和不等于等操作符与VB中的意义和使用相同



例子:

(1).Between 操作符

Use cust

Select * From students

Where number Between 1 and 100

Between 操作符返回的是位于所说明的界限之内的所有记录值。这个例子就返回 number 字段 1 到 100 之间的全部记录。



(2). Like 操作符和通配符

Use cust

Select * From students

Where name Like "%影%"

Like 操作符把记录匹配到你说明的某个模式。这个例子是返回含“影”的任意字符串。



四种通配符的含义

通配符 描述

% 代表零个或者多个任意字符

_(下划线) 代表一个任意字符

[] 指定范围内的任意单个字符

[^] 不在指定范围内的任意单个字符



全部示例子如下:

Like "BR%" 返回以"BR"开始的任意字符串

Like "br%" 返回以"Br"开始的任意字符串

Like "%een" 返回以"een"结束的任意字符串

Like "%en%" 返回包含"en"的任意字符串

Like "_en" 返回以"en"结束的三个字符串

Like "[CK]%" 返回以"C"或者"K"开始的任意字符串

Like "[S-V]ing" 返回长为四个字符的字符串,结尾是"ing",开始是从S到V。

Like "M[^c]%" 返回以"M"开始且第二个字符不是"c"的任意字符串。



4. 使用 Order By 对结果排序

Order By 子句告诉数据库引擎对其检索的记录进行排序。可以对任何字段排序,或者对多个字段排序,并且可以以升序或隆序进行排序。

在一个正式的 Select 查询之后包含一个 Order By 子句,后跟想排序的字段(可以有多个)便可以说明一个排序顺序。

例子:

Use cust

Select * From students

Where name Like "%影%"

Order By number

对返回的结果按 number 进行排序。



以降序排序

如要以隆序排序,只需在排序的字段之后使用 Desc 关键字。

例子:

Use cust

Select * From students

Where name Like "%影%"

Order By number Desc



5. 使用 Top 显示某个范围的第一个记录或最后一个记录。

使用 Top 关键字可以只显示一个大记录前面或后面的少数几个记录。在查询中,Top 关键字与排序子句一起把结果集限制为少数几个记录或按某个百分比显示整个结果记录集合中的一部分。

例子:

Select Top 3 * From students 返回 students 表中的前3条记录

Select Top 10 Percent * From students 返回 students 表中前面的10%个记录

Select Top 3 * From students Order By number desc 返回 students 表中 number 最大的(最后)的3条记录



6. 用 As 对字段名进行别名化

为什么在查询中对字段命以别名,或重新命名,这样做的原因有两个:

☆所涉及的表的字段名很长,想使字段在结果集中更易处理一些。

☆创建的查询产生了某些计算或合计列,需要对之进行命名。

不管是什么原因对字段命以别名,在 SQL 中都可以容易地使用 As 子句做得。

例子:

Select number As 学号 ,name As 姓名 From students



7. 合并查询

合并查询( Union Query )用于合并具有相同字段结构的两个表的内容,如果想在一个结果集中显示多个记录源中的不相关的记录时,这十分有用。

例子:

Select *

From students

Union

Select *

From students1

该查询结果集把 students 和 students1 中的记录合并到一个结果中,其输出就和原表归档之前一模一样。

注意:缺省情况下,合并查询不会返回重复记录(如果记录归档系统在把记录拷到归档表中后不将相应的记录删除,这时该功能就有用了),可以加上 All 关键字而让合并查询显示重复记录。

例子:

Select *

From students

Union All

Select *

From students1

该合并查询显示 students 表和 students1 表的内容时,没有对重复记录进行处理

补充:

Union 运算符允许把两个或者多个查询结果合并到一个查询结果集中。如果比较 Union 和 Join 两咱运算符,那么 Union 运算符增加行的数量,而 Join 运算符增加列的数量。使用 Union 时应该注意,两个结果中的列的结构必须匹配,数据类型必须兼容等等。

Union 运算符的语法形式如下:

Select select_list

From clause

Where clause

Group By clause

Having clause

Union [All]

Select select_list

From clause

Where clause

Group By clause

Having clause

Order By clause

Compute clause

对于 Union 运算符,有下列几点需要说明:

·在默认情况下,Union 运算符删除全部冗余行。如果使用All 选项,那么冗余行不删除。

·在 Union 语句中的全部 select_list 必须有相同数量的列、兼容的数据类型并且按照同样的顺序出现。

·在结果集中,列名来自第一个 Select 语句。





8.连接查询

在实际使用过程中经常需要同时从两个表或者两个以上表中检索数据。连接就是允许同时从两个表或者两个以上表中检索数据,指定这些表中某个或者某些列作为连接条件。在 SQL Server 中,可以使用两种连接语法形式,一种是 Ansi 连接语法形式,这是连接用在 From 子句中,另外一种是 SQL Server 连接语句形式,这是连接用在 Where 子句中。

Ansi 连接语法形式如下:

Select table_name.column_name,table_name.column_name,...

From {table_name [join_type] Join table_name On search_conditions}

Where [search_conditions]

在 Ansi 语法形式中,可以 Ansi 连接关键字来确定使用的连接形式。例如:

☆使用 Inner Join 关键字,结果集中仅包含满足条件的行。

☆使用 Cross Join 关键字,结果集中包含两个表中所有行的组合。

☆使用 Outer Join 关键字,结果集中既包含那些满足条件的行,还包含那些其中某个表的全部行。

SQL Server 连接语法形式如下所示:

Select table_name.column_name,table_name.column_name,...

From [table_name,tab



结构化查询语言(SQL)详解之一







一、SQL语句的分类



ANSI SQL语句分成以下六类(按使用频率排列):





数据查询语言(DQL):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

数据操作语言(DML):其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

事务处理语言(TPL):它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

数据控制语言(DCL):它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

数据定义语言(DDL):其语句可在数据库中创建新表(CREAT TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

目前还没有一个商用的RDBMS支持全部的ANSI SQL-92中的所有保留字。例如Jet 3.5数据库引擎不支持任何DCL保留字,而是用Data Accesss Object的计划性安全对象和Visual Basic的保留字及关键字取代。同时Jet 3.5引擎不需支持CCL语句,因为Jet不处理SQL语句中的指针。



二、DQL语法详解





SQL操作符和表达式



SQL提供基本的算术操作符:<,>,=,<=,>=,<>。SQL增加了一组操作符,用于与文本数据类型的字段值连接(LINK和IN)及处理字段中的NULL值(IS NULL和IS NOT NULL)。SQL语句中的大多数操作符都是双值的。双值函数需要两个操作数,像LIKE,IN,IS NULL等则是单值的。



对于文本字段数据类型字段的WHERE标准,最有用的操作符是LIKE。在Jet SQL中称为LIKE操作符。下表显示了LIKE操作符的ANSI SQL语法和用于SQL语句WHERE子句中的Jet SQL Like操作符。



用途 ANSI SQL Jet SQL 返回

取包含字符的任何文本 LIKE '%am%' Like "*am*" ram,rams damsel,amnesty

取以字符打头的任何文本 LIKE 'John%' Like "John*" Johnson,Johnsson

取以字符结尾的任何文本 LIKE '%son' Like "*son" Johnson,Anderson

取文本和任意单个后缀字符 LIKE 'Glen_' Like "Glen?" Glenn,Glens

取文本和任意单个前缀字符 LIKE '_am' Like "?am" dam,Pam,ram

取文本和一个前缀及任意个后缀字符 LIKE '_am%' Like "?am*" dams,Pam,Ramses



注意:为与ANSI SQL-92保持一致,本地OLE DB数据提供者(Microsoft.JET.OLEDB.3.51)使用%和_通配符而非Jet的?和*。这种不一致要求修改已存在的DAO代码以适应ADO使用SQL通配符。



连接表



1。常规的内部连接或相等连接



最常见的连接类型是相等连接(或称为INNER JOIN)。例如:



SELECT Publishers.Name,Titles.ISBN,Titles.Title FROM Publishers INNER JOIN Titles ON Publishers.PubID=Titles.PubID



也可以写成:



SELECT Publishers.Name,Titles.ISBN,Titles.Title FROM Publishers,Titles WHERE Publishers.PubID=Titles.PubID



2。多重相等连接



例如:



SELECT Titles.Title,Publishers.Name,Titles.ISBN,Authors.Author FROM Publishers,Titles,Authors,[Title Author] WHERE Titles.ISBN=[Title Author].ISBN AND Authors.Au_ID=[Title Author].Au_ID AND Publishers.PubID=Tiltes.PubID



3。外部连接



INNER JOIN只返回与字段值相匹配的行,OUTER JOIN返回一个表的所有行和另一个表中有匹配值的行。有两种类型的OUTER JOIN。





LEFT OUTER JOIN返回LEFT OUTER JOIN 语句左边表或结果集的所有行和语句右边表具有匹配值的行。WHERE子句中,*=操作符特指LEFT OUTER JOIN

RIGHT OUTER JOIN返回RIGHT OUTER JOIN 语句右边表或结果集的所有行和语句左边表具有匹配值的行。WHERE子句中,=*操作符表求RIGHT OUTER JOIN。

通常地,按一到多的形式创建。也就是说,代表关系中“一”方的主要表出现在JOIN表达式左边或WHERE子句中操作符左边,而关系中“多”方的相关表出现在表达式或操作符的右边。LEFT OUTER JOIN可以显示主表所有记录,而不管相关表中的匹配记录;RIGHT OUTER JOIN对寻找孤儿记录很有用。所谓“孤儿记录”就是那些在主表中没有相关记录的相关表中的记录,孤儿记录是违反引用一致性规则的结果。



注意:Jet SQL不支持WHERE子句中的*=和=*操作符。用Jet数据库引擎时要用LEFT JOIN或RIGHT JOIN保留字来创建外部连接。

4。DISTINCTROW

限定词DISTINCT告诉查询只返回在SELECT语句指定字段中具有不同值的行,Jet SQL的限定词DISTINCTROW使得返回集包括在两个表任意字段中有异值的行(而不只是SELECT语句指定显示的字段)

5。自连接和复合列

自连接是建立在同一表中具有相似字段数据类型两个字段之间的一个连接。第一个字段常为主键字段,而第二个字段常为与主键字段相关的外部键字段,尽管这种结构并不是自连接必需的(为使自连接结果有意义,前一个要求也许是需要的)。

建立自连接时,RDBMS建立原表的一个副本,然后把副本连接到原表上。以VB自带的Nwind.mdb为例。其中的Employees表包含ReportsTo字段来表示雇员主管的EmployeeID.在Employees表上建立自连接以显示雇员主管名字的Jet SQL语句如下

SELECT Employees.EmployeeID AS EmpID,Employees.LastName & "," & Employees.FirstName AS Employee,Employees.ReportsTo AS SupId, EmpCopy.LastName & "," & EmpCopy.FirstName AS Supervisor FROM Employees, Employees AS EmpCopy,Employees INNER JOIN EmpCopy ON Employees.ReportsTo=EmpCopy.EmployeeID

SQL汇总函数和GROUP BY及HAVING子句

1。汇总函数

COUNT(field_name)返回field_name中包含NOT NULL值的行数,COUNT(*)返回表或查询的行数,不考虑字段的NULL值。

MAX(field_name)返回集合中field_name的最大值

MIN(field_name)返回集合中field_name的最小值

SUM(field_name)返回集合中field_name值的和

AVG(field_name)返回集合中field_name值的算术平均值

下面是使用汇总函数的一个例子:

SELECT COUNT(*) AS Count,SUM(PubID) AS Total,AVG(PubID) AS Average,MIN(PubID) AS Minimum,MAX(PubID) AS Maximum FROM publishers

2。GROUP BY和HAVING

有重要内容的数据库常常有包含代表分类的字段的表,例如Nwind.mdb中的Products表把一种外来食品的品种归为8个类别。当要为一个对象的每个类获得SQL汇总函数值时,可以使用GROUP BY子句,GROUP BY子句创建一个虚表称为分组表。如果想用特殊标准来限制组(类)成员关系,WHERE子句可以建立标准,然而,WHERE作用于整个表。HAVING子句和WHERE子句一样,但它作用于组,而且把SQL汇总函数的适用性限制在一个组的特定集合上。所以可以加上带有IN操作符的HAVING子句。 例如:

SELECT CategoryID AS Categroy,COUNT(ProductID) AS Item, SUM(UnitsInStock) AS Sum_Stock FROM Products GROUP BY CategoryID HAVING CategoryID IN(1,2)
12月9日
实用的JS脚本
1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键
<table border οncοntextmenu=return(false)><td>no</table> 可用于Table
 
2. <body onselectstart="return false"> 取消选取、防止复制
 
3. οnpaste="return false" 不准粘贴
 
4. οncοpy="return false;" oncut="return false;" 防止复制
 
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
 
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
 
7. <input style="ime-mode:disabled"> 关闭输入法
 
8. 永远都会带着框架
<script language="javascript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>
 
9. 防止被人frame
<SCRIPT LANGUAGE=javascript><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>
 
10. <noscript><iframe src=*.html></iframe></noscript> 网页将不能被另存为
 
11. <input type=button value=查看网页源代码
οnclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
 
12. 怎样通过asp的手段来检查来访者是否用了代理
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
response.write "<font color=#FF0000>您通过了代理服务器,"& _
"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
%>
 
13. 取得控件的绝对位置
//javascript
<script language="javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>
 
14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" οnfοcus="cc()">
 
15. 判断上一页的来源
asp:
request.servervariables("HTTP_REFERER")
java script:
document.referrer
 
16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="Close"></OBJECT>
<input type=button value=最小化 οnclick=hh1.Click()>
<input type=button value=最大化 οnclick=hh2.Click()>
<input type=button value=关闭 οnclick=hh3.Click()>
本例适用于IE
 
17.
<%
'定义数据库连接的一些常量
Const adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark
Const adOpenKeyset = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const adOpenDynamic = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const adOpenStatic = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
Const adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改
Const adLockPessimistic = 2 '当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
Const adCmdText = &H0001
Const adCmdTable = &H0002
%>
 
18. 网页不会被缓存
HTM网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP网页
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 1 solid #000000"></textarea>
<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>

让弹出窗口总是在最上面:
<body οnblur="this.focus();">
不要滚动条?
让竖条没有:
<body style='overflow:scroll;overflow-y:hidden'>
</body>
让横条没有:
<body style='overflow:scroll;overflow-x:hidden'>
</body>
两个都去掉?更简单了
<body scroll="no">
</body>
怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>
电子邮件处理提交表单
<form name="form1" method="post" action=" mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>
在打开的子窗口刷新父窗口的代码里如何写?
windows.opener.location.reload()
如何设定打开页面的大小
<body οnlοad="top.resizeTo(300,200);">
在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<html><head>
<style>
body
{background-image:url(logo.gif); background-repeat:no-repeat; background-position:center }
</style>
</head>
<body bgproperties="fixed" >
</body>
</html>
 
19. 检查一段字符串是否全由数字组成
<script language="javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>
 
20. 获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight
 
21. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
 
22.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>
 
23. 日期减去天数等于第二个日期
<script language=javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>
 
24. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" οnclick="checkme()">
</BODY></HTML>
 
25.获得本页url的request.servervariables("")集合
Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
for each ob in Request.ServerVariables
Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write "</TABLE>"
 
26.
本机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")%>
 
27.ENTER键可以让光标移到下一个输入框
<input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
 
28. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]=" http://www.njcatv.net/"
autourl[2]="javacool.3322.net"
autourl[3]=" http://www.sina.com.cn/"
autourl[4]=" http://www.nuaa.edu.cn/"
autourl[5]=" http://www.cctv.com/"
function butt(){
documents.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
documents.write("<input type=text name=txt"+i+" size=10 value=测试中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO οnclick=windows.open(this.form.url"+i+".value)><br>")
documents.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)documents.write("<img src=http://"+autourl[i]+"/"+Math.random()+" width=1 height=1 οnerrοr=auto('http://"+autourl[i]+"')>")}
run()</script>
 
29. 各种样式的光标
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
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Array()   函数说明: 返回一个数组   语法格式: Array(list)   参数说明: 字符,数字均可   代码范例: Dim User=Array("张三","李四","王五")   返回结果: 建立了一个包含3个元素的数组 CInt()   函数说明: 将一个表达式转化为数字类型   语法格式: CInt(expression)   参数说明: 任何有效的字符均可   代码范例: CInt(236.42)   返回结果: 236 (如果字符串为空,则返回0值) CreateObject()   函数说明: 建立和返回一个已注册的ACTIVEX组件的实例。   语法格式: CreateObject(objName)   参数说明: objName 是任何一个有效、已注册的ActiveX组件的名字.   代码范例: Set Conn=Server.CreateObject("Adodb.Connection")   返回结果:无 CStr()   函数说明: 转化一个表达式为字符串.   语法格式: CStr(expression)   参数说明: expression 是任何有效的表达式。   代码范例: Response.Write CStr(123)   返回结果: "123" Date()   函数说明: 返回当前系统日期.   语法格式: Date()   参数说明: 无   代码范例: Date()   返回结果: 2004-09-14 DateAdd()   函数说明: 返回一个被改变了的日期。   语法格式: DateAdd(timeinterval,number,date)   参数说明: timeinterval是要增加的时间间隔类型,如"y","m","d","h"等等; number是要增加的时间间隔的数量;date是时间增加的基准时间.   代码范例: DataAdd("m",1,CDate("2004-09-14 17:12:23"))   返回结果: 2004-10-14 17:12:23 这里有一个技巧(对于初学者而言),如果number为负数,则相当于减去Abs(number)个时间间隔。 DateDiff()   函数说明: 返回两个日期之间的差值 。   语法格式: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear>>)   参数说明: timeinterval 表示相隔时间的类型,如"M"表示"月"。   代码范例: DateDiff("d","2000-1-1","1999-8-4")   返回结果: 从1999-8-4 到2000年还有 -150 天. Day()   函数说明: 返回一个月的第几日 .   语法格式: Day(date)   参数说明: date 是任何有效的日期。   代码范例: Day(CDate("2004-09-14"))   返回结果: 14 FormatCurrency()   函数说明: 返回表达式,此表达式已被格式化为货币值   语法格式: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit>>>>)   参数说明: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置;   LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。   代码范例:   返回结果: $34.35 FormatDateTime()   函数说明: 返回表达式,此表达式已被格式化为日期或时间   语法格式: FormatDateTime(Date, [, NamedFormat>)   参数说明: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.   代码范例:   返回结果: Wednesday, August 04, 1999
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值