你用的是什么开发工具?什么数据库?我也好喜欢用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
%>

解决方案 »

  1.   

    你先在interDev里面,建立数据库连接,就可以测试连接是否成功!然后用上面一段程序就可以检查叶面是否可以访问数据库!
      

  2.   

    如果不用游标呢?是否可以?
    类似与vbs里用conn.Errors.Count = 0来判断//呵呵,我用UltraEdit+SQLServer
      

  3.   

    还是 zhjzh_zjz老兄说的比较正确。
    我去年的一个项目(oracle数据库),需要检测数据库的连接状态。发现Ado对象提供的属性和方法都不管用。
    后来还是采用select sysdate from dual的方式来进行判断的。
    ado这个东西还是不太完善。
      

  4.   

    我建议你还是使用 interDev比较好,用
    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)
      

  5.   

    给定一个不存在的数据库和表,zhjzh_zjz老兄的代码还是无法判断
    <%@ 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));
    %>
      

  6.   

    倒,问题是问怎么判断不存在的数据库,如果不存在则返回一个友好的错误,例如vbs的做法'入口参数:连接字符串strconn
    '返回值: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不可以做到么
      

  7.   

    搞错了。我是zhjzh_zjz的马甲。分数请给 zhjzh_zjz。刚回答别人一个问题,用这个用户登陆了!有什么你问给我发短信!发到zhjzh_zjz
      

  8.   

    那么请问,下列判断数据库是否可以连接的方法是否可取
    <%@ 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"));
    %>
      

  9.   

    使用Application来存储连接数据库的变量,那样岂不是很耗资源的么
    请问怎么找到,占用资源和尽量不改动代码的平衡点
    谢谢
      

  10.   

    to flylyke(爱就像英雄莫问出处):
    我的代码是在interDev里面,先用globle.asa 里面的连接成功之后才用的。如果数据库不存在,你用globle.asa就会连接不上的!建议你还是使用工具为好!
      

  11.   

    而Jscript里面没有On Error Resume Next这个
    所以出错就停止了,怎么做才好呢,我看过迷失的例子,关于这个部分也是用vbs写的,难道jscript不可以做到么==>
    用try{....return true}catch(e){reutrn false;}
    一样的道理。能用vbs的就能用js.相对来说,js的错误处理比vbs的要好!都能实现这种效果!
      

  12.   

    to zhjzh_zjz
    呵呵,我一直认为工具会养成一个人的惰性,所以一直坚持用文本编辑器来写代码。(个人观点)但我不否认使用工具确实能提高工作效率。结帖结帖!!
    交个朋友吧,我在北京。你呢?
      

  13.   

    我在西安!好的。我的email:[email protected]。欢迎来信!