没办法,在ASP论坛实在找不到答案,只好到这里来了 。 。 。

ricky460 2003-09-29 10:46:36
不知道这两天高手都放假了,还是都不会。。。
我觉的对于高手应该很容易的问题,我在ASP论坛居然问了好几天都没有解答出来。。。
郁闷 。 。 。

只好到javascript来再找一下高手。。。问题和javascript有关 。 。
在服务器端访问数据库的语言默认是VBScript , 我现在想用JAVASCRIPT。。
如下代码:
<%@ LANGUAGE = "JAVASCRIPT"%>
<%Session("UserName") = Request("UserName")%>
出现了编译错误 。 。
但是改成
<%@ LANGUAGE = "VBSCRIPT"%>
<%Session("UserName") = Request("UserName")%>
就没有什么问题 。 。 。
为何 ???
还有在Javascript里用什么代码来代替Set Rs = nothing ??

谢谢各位大侠了。。。
...全文
37 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ricky460 2003-09-30
  • 打赏
  • 举报
回复
再次谢谢astra1(Hyperion) 。。原来和VC是一样的。。。
VC里是
delete pPter ;
pPter = NULL;
好了,在次结贴 。 。
astra1 2003-09-30
  • 打赏
  • 举报
回复
我在第一次回复时说过了

除非是全局对象或变量,一般JScript在每个语句块运行完毕之后会将块内不会再使用的变量或对象自动释放(这种自动管理方式应该和JAVA一样)

如果一定要显式地释放,用null就可以了
要权威一点的说法,我摘一点MSDN里有关JScript内存管理的内容

[以下摘自MSDN2003]

JS0007:内存不足请参见
脚本疑难解答 | JScript 参考
该程序已占用了所有可用内存,这可能会在处理大量数据时发生。避免出现此错误的一种方法是有效地利用可用内存。这可通过确保该程序不保留不再需要的内存(数组、对象等形式)来实现。

另一种减少程序使用的内存的方法是帮助垃圾回收例程动态释放内存。JScript 使用的垃圾回收例程负责释放未使用的内存。该例程释放程序不再使用的数据。当变量中的数据被新数据替换,或者当范围发生变化并且有一个变量不再可访问时,数据可能变得不可用。

若要释放程序中的内存,请在不再需要占用大量内存的变量(如大数组或其他对象)时将其设置为 null。这使得垃圾回收器能够释放内存。

更正此错误

确保代码有效地使用内存。
在需要占用大量内存的对象之前立即声明。
当变量不再需要时将其设置为 null。
紫郢剑侠 2003-09-29
  • 打赏
  • 举报
回复
关注.
ricky460 2003-09-29
  • 打赏
  • 举报
回复
<%@ language = javascript%>
<%
var ConDB = Server.CreateObject("ADODB.Connection");
var strCon = "Provider=SQLOLEDB.1;Password=rick;Persist Security Info=True;User ID=rick;Initial Catalog=GD_MSDB;Data Source=RICKY";
var strSQL = "SELECT * FROM AccTB WHERE UserName = 'ricky' "
ConDB.Open(strCon);
var ConRs = ConDB.Execute(strSQL)
if(ConRs.EOF)
{
var strInfo = "<font color = #ff0000>无法找到这个帐号!!错误!!</font>";
Response.Write(strInfo);
Response.End
}
else
{
//此处省略.........
if(ConRs.state)
ConRs.Close();
}
%>
上面的代码编译运行没有任何问题 。 。 。
但是如果我加上Session("UserName") = Request("UserName")就有错 。 。 为何??

另外:astra1(Hyperion),应该和后面的代码没有关系。。因为我随便新新建一个asp,
然后在前面加上这两句代码都会出现问题。。。
astra1 2003-09-29
  • 打赏
  • 举报
回复
顺便说一下,如果你在以
<%@ LANGUAGE = "JAVASCRIPT"%>
开头的ASP页面里再用<%%>包含VBS语法的代码,出错错误是一定的

正确的应该使用
<script language=vbscript runat=server>
</script>
包含你的VBS语句

而如果用<%@ LANGUAGE = "VBSCRIPT"%>当然就不会有问题了
astra1 2003-09-29
  • 打赏
  • 举报
回复
第一个问题出现错误与你后面的代码有关,要不你再贴一下

javascript并没必要将使用后的对象变量设成空
如果一定需要的话,就
Rs=null;

lzt_6666 2003-09-29
  • 打赏
  • 举报
回复
你怎么能这样写呢,
反正我还没见过.
ricky460 2003-09-29
  • 打赏
  • 举报
回复
谢谢astra1(Hyperion)和 Laone(Laone) 。。尤其感谢astra1(Hyperion)
另外,想请问Set rs = nothing 在javascript里用什么代替比较合适。。谢谢。。
Laone 2003-09-29
  • 打赏
  • 举报
回复
Session("UserName") = String(Request("UserName"))
astra1 2003-09-29
  • 打赏
  • 举报
回复
原因是这样,Request集合在JScript中的类型是本质对象[ASP built-in objects]
必须转换才能存储在Session集合中
云帆 2003-09-29
  • 打赏
  • 举报
回复
关注!
hexhero 2003-09-29
  • 打赏
  • 举报
回复
关注
astra1 2003-09-29
  • 打赏
  • 举报
回复
报歉,是我没看清楚

如果表单的username是字符串用
Session("UserName") = Request("UserName")+"";

如果表单的username是数字用
Session("UserName") = parseInt(Request("UserName"));

一时大意,呵呵
pas 2003-09-29
  • 打赏
  • 举报
回复
这样<%Session["UserName"] = Request["UserName"];%>

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧