请教大虾们怎么连接SQL数据库  ———— 求代码和讲解,谢谢!

解决方案 »

  1.   

    不可以!javascript不能直接访问数据库,只能按照下面的流程来处理。   javascript(发送) → http请求 → web Server → 数据库
                                                     | 
       javascript(展现) ← http应答 ← web Server ← ←
      

  2.   

    javascript不能直接连数据库,通过ajax~~
      

  3.   

    javascript 是本地的脚本,在客户端才开始解释执行的,是不能访问数据库的。
    如果你需要访问数据库,需要写服务器端的脚本,比如ASP,PHP等。
    记住客户端脚本和服务器端脚本的区别。
      

  4.   

    如果你访问的数据库不是运行在Server上的,那么SQL Server上的4133(数据库端口),是不开放的。
    你需要手动的设置开放该端口,达到访问数据库的要求。
      

  5.   

    用 javascript 写服务器端    就可以连了
      

  6.   

    var   conn   =   new   ActiveXObject("ADODB.Connection");     
    用这个就可以
      

  7.   

    一般来说是不可以的,但是你要是用php或者asp来调用也行
      

  8.   

    你做一个ASP页面,把语言设置为JAVASCRIPT而不是VBSCRIPT,然后代码如下:
    <%
    var con=new ActiveXObject("ADODB.Connection");
    con.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ="+Server.MapPath("data/#data.mdb"));
    //可以直接用Open(param,param2)的方法直接赋予con变量参数打开数据库,也可以用下面的方法:
    /*var con = new ActiveXObject("ADODB.Connection");
    con.Provider = "Microsoft.Jet.OLEDB.4.0";
    con.ConnectionString = "Data Source=" + path;
    con.open;*/
    //将数据加入记录集
    var rs=new ActiveXObject("ADODB.Recordset");
    var sql="select * from[list]";
    rs.Open(sql,con,1);
    %>
      

  9.   

    JAXER 服务器里可以用 JAVASCRIPT实现, 有兴趣可以去看下。
      

  10.   

      和JSP套着用  用JSP来连接数据库
      

  11.   

    首页 资讯 空间 学生 论坛 博客 下载 读书 网摘 程序员 外包 商城 培训 书店 网址 CTO 
    纏綿|鎂麗| ---- 【&缠绵&⒀月】专栏
    高楼把酒愁独语,借问春归何处所。暮云空阔不知音,惟有绿杨芳草路。
    条新通知 登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页   全站 当前博客  空间 博客 好友 相册 留言 用户操作 
    [留言]  [发消息]  [加为好友]  
    订阅我的博客 
         
     
     
     
    [编辑]jemlee2002的公告 
    <SMALL><A href="mailto:[email protected]" >给&缠绵&⒀月写邮件</A></SMALL> 
    [编辑]文章分类 
    J2EE技术
    Java基础技术
    电子商务应用开发
    随笔
    政务应用开发
    存档 
    2009年11月(1)
    2009年09月(4)
    2009年08月(3)
    2007年03月(2)
    2004年11月(1)
    2004年10月(8)
    2004年09月(2)
    2004年04月(13)
      JS直接访问数据 -MySQL 收藏 
     JavaScript DataBase Connector
    JSDBC:提供Javascript有效的连接数据库,目前支持MySQL、SQLite、ACCESS,后期会支持更多的数据库;
    在从事AJAX开发的工程师肯定会希望有一个通过AJAX直接连接数据库的组件,这样,可以省掉后台很多的操作步骤,比如免去了部署JAVA的运行环境,免去了写很多复杂的JDBC调用,不管出于调试的需要还是应用的需要,JSDBC都能够很好的集成到您的应用当中。/**
     * 类说明:该脚本主要是实现与JSDBC for MySQL 连接,方便用户在js直接使用MySQL
     * 创建事件:2009-06-12
     *///Include OCX Object
    document.writeln(" <OBJECT  id='mysql' classid='clsid:9C579403-6745-4695-B14C-96212D319F18'");   
    document.writeln(" codebase='JSDBC_MySQL.ocx#Version=1,0,0,000'");   
    document.writeln(" WIDTH='0'   HEIGHT='0'>");  
    document.writeln(" </OBJECT>"); 
    //error message
    var lasterr = ""; 
    //Exec Falg
    var execFlag; /**
     * Connecte to mysql server 
     * provite:MySQL IP,PORT,DB Name,USER,Password,CharSet
     */
    function connectMySQL()
    {
     execFlag = mysql.connecte("127.0.0.1","3306","testdb","root","123210","GBK");
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Close already open Connection
     */
    function closeMySQL()
    {
     execFlag = mysql.close();
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Exec Insert Into SQL statement
     * @param {Object} sql
     */
    function insertMySQL(sql)
    {
     execFlag = mysql.insertData(sql);
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Exec DataBase Manager Language
     * @param {Object} sql
     */
    function execDMLMySQL(sql)
    {
     execFlag = mysql.execDML(sql);
     if(execFlag == 1)
      return 0;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Exec Select Data From DataBase
     * @param {Object} sql
     * @param {Object} cnum == Number of fields in SQL statement
     */
    function selectMySQL(sql,cnum)
    {
     var rs = mysql.selectData(sql,cnum);
     if(rs.length > 0)
     {
      var array = new Array();
      var DataSet = new Array();
      var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的,使用时拷贝过去即可
      var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的,使用时拷贝过去即可
      
      array = rs.split(rowsplit);
      for(var i = 0;i < array.length; i++)
      {
       var DataRow = array[i].split(fieldsplit);
       DataSet[i] = DataRow;
      }
      return DataSet;
     }
     else
     {
      lasterr = mysql.getLastError();
      return null;
     }
    }
    /**
     * Exec Delete SQL statement
     * @param {Object} sql
     */
    function deleteMySQL(sql)
    {
     execFlag = mysql.deleteData(sql);
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Exec Update SQL statement
     * @param {Object} sql
     */
    function updateMySQL(sql)
    {
     execFlag = mysql.updateData(sql);
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }
    /**
     * Exec Call Produce
     * @param {Object} proname == Produce Name
     * @param {Object} inparas == Produce IN Parameters
     * @param {Object} outparas == Produce OUT Parameters
     * @param {Object} cnum == Number of fields in OUT Parameters
     */
    function callProduceMySQL(proname,inparas,outparas,cnum)
    {
     var rs = mysql.execProduce(proname,inparas,outparas,cnum);
     if(rs.length == 0)
     {
      lasterr = mysql.getLastError();
      return null;
     }
     else
     {
      var array = new Array();
      var DataSet = new Array();
      
      var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的
      var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的
        array = rs.split(rowsplit);
      var DataRow = new Array();
      for(var i = 0;i < array.length; i++)
      {
       var fieldarray = array[i].split(fieldsplit);
       DataSet[i] = fieldarray;
      }
      return DataSet;
     }
    }/**
     * Exec Transcation
     * @param {Object} sql
     */
    function execTranscationMySQL(sql)
    {
     execFlag = mysql.execTranscation(sql);
     if(execFlag == 1)
      return 1;
     else
     {
      lasterr = mysql.getLastError();
      return 0;
     }
    }/**
     * Get Last Error Message if exec error from js
     */
    function getLastErrorMySQL()
    {
     return lasterr;
    }
    /**
     * Get Last Error Message if exec error from ocx
     */
    function getLastErrorFromMySQL()
    {
     var lasterrmysql = mysql.getLastError();
     return lasterrmysql;
    }发表于 @ 2009年08月23日 13:08:00 | 评论( 2 ) | 编辑| 举报| 收藏 旧一篇:VC 时间操作实例 | 新一篇:JS直接访问数据 -SQLite
    查看最新精华文章 请访问博客首页相关文章 
    动手扩充FreeTextBox的功能(原创)在Web页面中控制MediaPlayer播放器的一般操作!js MapPHP实现最简单爬虫原型对闭包设计的思考查询dataset中符合查询条件的所有记录JS直接访问数据 -ACCESSAS3 颜色操作函数库keakon 发表于2009年8月23日 17:36:24  IP:举报回复删除
    感觉不实用,对js开放数据库接口的话,任何人都可以用firebug改代码,而后台却不验证 此外这种方式会暴露密码… mysql.connecte("127.0.0.1","3306","testdb","root","123210","GBK");jemlee2002 发表于2009年8月26日 16:10:29  IP:举报回复删除
    一般这种技术多用于局域网或是单机应用,或是AJAX的测试.公司内部系统人员不会故意破坏数据库,再者如果想把数据库的入口隐藏起来无非就是在ocx上做工作即可.发表评论 表 情:           评论内容:  用 户 名: 登录 注册 匿名评论 匿名用户验 证 码:   重新获得验证码     Copyright ? jemlee2002 
    Powered by CSDN Blog   本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jemlee2002/archive/2009/08/23/4474906.aspx
      

  12.   


    可以的,不过要调浏览器的安全设置,采用ADO方式,具体实现和VBScript差不多, 
    JS还是很强大的,不过,浏览默认是不让这样做的,所以,还是采用后台方式做吧,把JS当成客户端脚本用来展现数据和控制数据
      

  13.   

    你要的是ASP的功能,只是使用的语言是JScript,一般情况下开发人员不喜欢把它叫做JS连数据库,而是ASP连数据库