<script language="javascript" runat="server">
//用 JavaScript 写服务器端连接数据库的代码示例
var conn = new ActiveXObject("ADODB.Connection");
conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; "
+"Password=password; Initial Catalog=meizz"); var rs = new ActiveXObject("ADODB.Recordset");
var sql="select user_kind from tbRightSet where user_id='"+ Account +"'"; rs.open(sql, conn);
if (!rs.EOF)
{
sysUserKind = (rs("user_kind")+"").replace(/^\s+|\s+$/, "");
}
rs.close(); rs = null; conn.close(); conn = null;
</script>
//用 JavaScript 写服务器端连接数据库的代码示例
var conn = new ActiveXObject("ADODB.Connection");
conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; "
+"Password=password; Initial Catalog=meizz"); var rs = new ActiveXObject("ADODB.Recordset");
var sql="select user_kind from tbRightSet where user_id='"+ Account +"'"; rs.open(sql, conn);
if (!rs.EOF)
{
sysUserKind = (rs("user_kind")+"").replace(/^\s+|\s+$/, "");
}
rs.close(); rs = null; conn.close(); conn = null;
</script>
解决方案 »
- datatables分页参数无效
- [分享]javascript中的观察者模式实现.顺便散分...
- js 怎么判断并获取多行多列表格中 复选框被选中的 那一行的值?
- 正则验证不通过,为什么还能提交表单?
- 我在ASP中这样调用一个JS文件中的一个方法错在哪。高手指点。
- 郁闷一整天了,实在是没办法解决。iframe在ie5里面怎么用js控制?
- jquery mobile search 如何触发事件?
- 复选框问题
- 自己写的javascrip函数里可以调用.java文件并返回参数吗??
- 动态域名解析,求救
- 一个frame的事件捕捉后,在这个frame调用另一个frame的某个自定义function,该如何写javascript?
- 如何把800×600的页面显示,改为320×300的页面显示?
rs.close();
rs = null;
cmd.Execute(count);
而如果改用VBScript来写的话就可以了。请问是怎么回事?应该如何解决。
re:
你把recordset的游标设置, 设置为1或者22、VBScript里使用完ADODB.Recordset或ADODB.Connection对象后一般先关闭,然后再设为空
conn.close
set conn = nothing
这样子,但在Javascript里应该如何释放这些对象呢?close就可以了吗?顺便问下VBScript中如果直接set conn = nothing的话会不会真正释放?
re:
rs.close(); //关闭记录集
rs = null; //前面的set的反操作, 这就是释放对象3、Javascript的函数中如果使用了ADODB.Connection对象,在调用结束退出函数时,如果未显示的释放掉对象,系统是否会自动释放呢???如果不在函数中,是全局变量呢???又会是什么情况???
re:
在函数里调用,若是没有手动释放, 则这个连接应该是一直连着的, 等这个ASP页面代码运行结束之后,可能会随机被系统释放.
把连接放在全局变量的做法, 在数据库连接数不大的情况下, 是可行的, 一般把连接放在一个 application 里, 作为全局变量调用, 这个连接是不会被释放的, 直到application结束
如果如你所说"把recordset的游标设置, 设置为1或者2",如果我是update操作这样的操作就没有效了。
这是ADO API参考上的说法For a Recordset-returning Command:Set recordset = command.Execute( RecordsAffected, Parameters, Options )
For a non–recordset-returning Command:command.Execute RecordsAffected, Parameters, Options
RecordsAffected
Optional. A Long variable to which the provider returns the number of records that the operation affected. The RecordsAffected parameter applies only for action queries or stored procedures. RecordsAffected does not return the number of records returned by a result-returning query or stored procedure. To obtain this information, use the RecordCount property. The Execute method will not return the correct information when used with adAsyncExecute, simply because when a command is executed asynchronously, the number of records affected may not yet be known at the time the method returns. RecordsAffected 应该是可以返回操作所影响的记录数的啊,但Javascript里不行,VBScript里却可以,不理解是为什么????
等弄明白了一起给分。
2、看了微软的例子
conn.close();
conn = null;
3、我所指的全局变量不是Application那个,而是页面中定义在函数之外的变量。
似乎它是会自动释放的,因为我做了测试,在一个页面中打开10个Connection对象,并且不关闭它们,然后使用"Microsoft Application Center Test"这个工具进行测试,模拟了100个浏览器持续3分钟的不断访问,内存的占用并不比关闭的使用得少。
不知道是否我的测试是正确的。