近期的一些精华帖子,请大家分享!
大白菜芯 2003-12-06 01:21:57 发给你一个联动下拉框的ASP例子吧(感谢:meizz(梅花雪))
<%@ Language=VBScript codepage=936 %>
<% Option Explicit %>
<!-- 数据库结构 两个字段 provinceName(省名) cityName(城市名) -->
<!-- #include file="connection.asp" -->
<script language=javascript>
<%
dim RS
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "SELECT * FROM tableName ORDER BY provinceName DESC", Conn, 0, 1
dim provinceName '省名
dim provinceList '记录所有的省名, 最后输出到JS里组成省名数组
dim cityList '记录某个省的所有城市名, 最后输出到JS里组成城市名数组
dim cityIndex 'JS的city数组名与省名下拉框的索引对应
cityIndex = 1
do while not RS.eof
if isEmpty(provinceName) then
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
provinceName = Trim(RS("provinceName"))
else
if provinceName<>Trim(RS("provinceName")) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
if not isEmpty(cityList) then Response.write "var city"& cityIndex &_
" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
'输出每个省所对应的城市名的列表并组成JS的数组, 数组形式参考下面的实例
cityIndex = cityIndex + 1
cityList = ""
end if
provinceName = Trim(RS("provinceName"))
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
'将每个省里的所有城市名组成一串字串
end if
RS.movenext
loop
if not isEmpty(cityList) then
Response.write "var city"& cityIndex &" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
end if
if not isEmpty(provinceName) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
Response.write "var provinceName = ["& Left(provinceList, Len(provinceList)-1) &"];"
'输出省名字串并组成省名的JS数组, 形式见下实例
end if
RS.close : Set RS=nothing
Conn.close : Set Conn=nothing
%>
</script>
<form name=form1>
<select name=province onchange="cityName(this.selectedIndex)">
<option value="">请选择省名</option>
</select>
<select name=city>
<option value="">请选择城名</option>
</select>
</form>
<script language=javascript>
/* 若要直接看下拉框联动效果的话, 将这段被注释的代码起用, 且上面的那段ASP注释即可
var provinceName = ["浙江", "江苏", "安徽", "江西"];
var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
//你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功
*/
function province()
{
var e = document.form1.province;
for (var i=0; i<provinceName.length; i++)
e.options.add(new Option(provinceName[i], provinceName[i]));
}
function cityName(n)
{
var e = document.form1.city;
e.options.length = 1;
if (n == 0) return;
var a = eval("city"+ n); //得到城市的数组名
for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
}
window.attachEvent("onload", province); //初始时给省名下拉框赋内容
</script>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如何高效地访问记录集?
最近,随着数据库的日益庞大,本来两个差不多的数据库,我开始发现我的数据库查询起来越来越比我朋友网站的慢了,经过初步对照,问题好像出在访问记录集的方法上,这是真正的原因吗?
在遍历数据库时,事实表明,用索引数(index number)访问记录集元素要比用字段名称(field name)访问快出几倍,按字符串查询要比按整数查询花去更多的时间和系统资源。我想这是你的网站慢的主要原因吧。
因此,在遍历数据库时应注意下面两个问题:
1、尽量最少用select * 这样的语句。在遍历表里少量的字段时,select * 语句的执行效率是很低的,因为它在执行时,其实是执行了两次查询,在执行select语句前,首先必须查询系统表来确定名称和数据类型。
2、在使用记录集rs值前,应该把它赋值给本地变量,尤其是操作Text/Memo字段时。在“read mode”下调用本地变量比从记录集中重新调用rs值要快一些,特别是在多次recall recordset的场合,快的效果更明显。但要注意,如果在SQL语句或存储过程中改变了select列表的字段顺序,那么就要小心你的赋值。看看下面这个ASP例子:
<%
' 创建数据库连接.
set rs = conn.execute("exec sp_getRecords")
if not rs.eof then
do while not rs.eof
id = rs(0) ' 把rs值赋给本地变量
fname = rs(1)
lname = rs(2)
' ... 使用本地变量处理工作
rs.movenext
loop
end if
' ... 释放变量,结束连接.
%>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如何更快更好地调试ASP程序代码?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
<title>程序调试高手</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<%@ LANGUAGE="VBScript" %>
<%
Response.Buffer = True
' 打开页面缓冲
On Error Resume Next
' 打开错误处理
%>
<%
If Err.Number <> 0 Then
' 错误处理
Response.Clear
' 清除缓冲区
%>
</head>
<body>
<p><%= Err.Number %><br>
<%= Err.Line %><br>
</p>
</font><div align="center"><center>
<table border="0" cellspacing="0" width="600" height="166">
<tr>
<td height="61"><p align="center"> ASP调试错误信息显示</td>
</tr>
<tr>
<td height="106"><div align="center"><center><table border="1" cellspacing="0" width="400">
<tr>
<td colspan="2" width="400"><p align="center"><font
color="red">警告:本页面发生错误 </font></td>
</tr>
<tr>
<td width="96">错误号</td>
<td width="376"> </td>
</tr>
<tr>
<td width="96">错误描述<%=
Err.Description %></td>
<td width="376"> </td>
</tr>
<tr>
<td width="96">错误源<%= Err.Source
%></td>
<td width="376"> </td>
</tr>
<tr>
<td width="96">错误发生行
</td>
<td width="376"> </td>
</tr>
</table>
</center></div></td>
</tr>
</table>
</center></div>
</body>
</html>
<%
End If
%>