你用的是什么开发工具?什么数据库?我也好喜欢用JS 写服务器短程序。给段代码你看看!
<%@ Language=JavaScript%>
<%
var conn =new ActiveXObject("AdoDb.Connection");
var rs =new ActiveXObject("AdoDb.Recordset");
conn.CursorLocation=3;
rs.CursorLocation=3;
conn.Open(Application("DBConn_ConnectionString"));
var sql="select sysdate from dual";
if(rs.state==1)rs.close();
rs.Open(sql,conn);
Response.write(rs(0));
//如果有值表示成功,否则失败!
//我用的是interDev ,oracle
%>
<%@ Language=JavaScript%>
<%
var conn =new ActiveXObject("AdoDb.Connection");
var rs =new ActiveXObject("AdoDb.Recordset");
conn.CursorLocation=3;
rs.CursorLocation=3;
conn.Open(Application("DBConn_ConnectionString"));
var sql="select sysdate from dual";
if(rs.state==1)rs.close();
rs.Open(sql,conn);
Response.write(rs(0));
//如果有值表示成功,否则失败!
//我用的是interDev ,oracle
%>
类似与vbs里用conn.Errors.Count = 0来判断//呵呵,我用UltraEdit+SQLServer
我去年的一个项目(oracle数据库),需要检测数据库的连接状态。发现Ado对象提供的属性和方法都不管用。
后来还是采用select sysdate from dual的方式来进行判断的。
ado这个东西还是不太完善。
conn.Open(Application("DBConn_ConnectionString"));
连接的优点在于:如果以后,连接穿发生改变,你只要在globle.asa 改变一下数据库连接,代码都不用改动,要省掉很多事。这是我们又深刻体会的。你如果每一个网页里面都用连接串,那假使要改变数据库连接,就要每一个网页都来改变。麻烦!游标建议你使用!这样,代码稳定性才高!你可以将:
<%@language=Jscript%>
<%
var conn =new ActiveXObject("AdoDb.Connection");
var rs =new ActiveXObject("AdoDb.Recordset");
conn.CursorLocation=3;
rs.CursorLocation=3;
conn.Open(Application("DBConn_ConnectionString"));
%>做成一个包含文件,在需要的网页里面就包含进来。这样公共代码,改起来也方便!我对vbs不熟。所以客户端和服务器短都用Js来做。排除错误,用try{...}catch(e)
<%@ Language=JavaScript%>
<%
var connstr="Driver={SQL server};Server=(local);uid=sa;pwd=;database=book";//如果这个数据库不存在
var conn =new ActiveXObject("AdoDb.Connection");
var rs =new ActiveXObject("AdoDb.Recordset");
conn.CursorLocation=3;
rs.CursorLocation=3;
conn.Open(connstr)
var sql="select bookNo from book";
if(rs.state==1)rs.close();
rs.Open(sql,conn);
Response.write(rs(0));
%>
'返回值:TestConnection=true,falseFunction TestConnection(strconn)
On Error Resume Next
set conn=server.createobject("adodb.connection")
'这里设定连接超时为10秒
conn.ConnectionTimeout=10
conn.Open strconn
If conn.Errors.Count = 0 Then
TestConnection = True
conn.close
Else
TestConnection = False
End If
set conn=nothing
End Function
而Jscript里面没有On Error Resume Next这个
所以出错就停止了,怎么做才好呢,我看过迷失的例子,关于这个部分也是用vbs写的,难道jscript不可以做到么
<%@ Language=JavaScript%>
<%
function TestLine(str){
try{
var conn=Server.CreateObject("adodb.connection");
conn.open(str);
conn.close();
return true;
}
catch(e){
return false;
}
}
Response.write(TestLine("Driver={SQL server};Server=(local);uid=sa;pwd=;database=thtf_resource"));
%>
请问怎么找到,占用资源和尽量不改动代码的平衡点
谢谢
我的代码是在interDev里面,先用globle.asa 里面的连接成功之后才用的。如果数据库不存在,你用globle.asa就会连接不上的!建议你还是使用工具为好!
所以出错就停止了,怎么做才好呢,我看过迷失的例子,关于这个部分也是用vbs写的,难道jscript不可以做到么==>
用try{....return true}catch(e){reutrn false;}
一样的道理。能用vbs的就能用js.相对来说,js的错误处理比vbs的要好!都能实现这种效果!
呵呵,我一直认为工具会养成一个人的惰性,所以一直坚持用文本编辑器来写代码。(个人观点)但我不否认使用工具确实能提高工作效率。结帖结帖!!
交个朋友吧,我在北京。你呢?