最近一直在用javascript在做项目
可是做着做着
感觉很多功能代码都是重复的。比如对javascript数组的排序
还有对数组数据的删选以及分组所以,后来兴致以上来。
一发不可收拾。写了一个能在javascript中应用的 SQL 库
后来又想,怎么不能用javascript直接连接数据库呢?
又做了一个javascript直连Sql数据的类库后来,又想到其实还可以用SQL语句来操作HTML DOM模型再再再后来,又看到了HTML5中对web DB的实现
所以对webDB,就是chrome和safari中的sqlite的封装于是乎就有了:1.从服务器上获取数据、执行SQL操作:  _SQLPROXYURL_ = 'SQLProxy.php';
_SQLSERVERHOST_ = 'localhost';
_SQLUSERNAME_ = 'root';
_SQLPASSWORD_ = '';
_SQLDATABASE_ = 'HotelManageMent'; var result = "select * from Room".OnServer().executeSQL();
for(var i=0; i<result.length; i++) {
    //do something here.... using result[i];
}2.操作Javascript Object Array 、执行SQL操作:
var Room = [
{
ID: 'bot',
name: 'test',
sex: true
}, {
ID: 2,
name: 'test8',
sex: true
}, {
ID: 3,
name: 'test5',
sex: false
}, {
ID: 4,
name: 'test2',
sex: true
}]; SQL = "select Max(id) as bid,Sum(id) as total from records where name like \"test%\" group by sex order by id desc,name asc";
var result = SQL.executeSQL();
for(var i=0; i<result.length; i++) {
    //do something here.... using result[i];
};
"create table mytable".executeSQL();
for(var j=0; j<100; j++) {
"insert into mytable (id,name,sex) values(2,'zhangsan',true) ".executeSQL();
};接下文

解决方案 »

  1.   

    有很多弊端:
    1.将server端的数据库结构都暴露到client,安全性差
    2.javascript语言执行效率往往比服务器端的要慢很多
    3.action,logic,dao全部前端实现,重用性差,商业应用很少会这样做的,还有事务控制之类的一大堆问题.
      

  2.   


    OnServer部分可以这样做,但是OnServer我建议主要用来快速实现,不建议用于实际项目
      

  3.   


    我这个东东Server的SQL应用只是一部分
    还有Objects Array 、 DOM 和 浏览器的Sqlite!
      

  4.   


    不好意思,你在我帖子的回帖我无法回复了,
    系统说一个用户同一个帖子只能回复3次
    1.首先安全性差我承认。但是好在Http有Ssl加密机制,传输过程中的安全问题可以解决,其次,将数据库中的表的增、删、改的权利分配给每个前台用户帐号,也就是说,数据库用户验证机制直接用Sql数据库服务器本身的,这样即使知道了结构,也要数据库登陆验证通过才能访问、修改。
    而且也不建议大家用这种方式来做实际项目,只是提供了一种快速实现的方法,可以先用我的JSQL-Server快速做一个产品原型,展示给客户。
    2.JavaScript的执行效率的确是非常的低,好在IE并不是唯一的选择,firefox。Chrome的JS效率还不错。我做过测试,JSQL-Memory在操作1000条记录的Object Array的时候,反应速度应该是小于0.1s的。我想客户端需要操作的数据应该不会大于这个数字了。如果真大于这个数字,那就用JSQL-Server直接从服务器上面重新获取。
    3.置于您说的事务控制,的确存在这个问题。需要一步步的完善。现在我把库做到了能用的阶段,下一步要完善到好用。
    所以这个版本的JSQL大家拿来玩玩就是啦。不要用来做项目我做JSQL的原因之一,只是为了给大伙开阔一下思路,不是所有的Web应用都需要Mvc三层一层一层去做的。对于开发一个简单的应用,用JSQL的开发效率会更高点,只需两步:1.建立数据库(表) 2.用Javascript直接连接数据库。
      

  5.   

    我们公司也是js连的数据库,js直接操作数据库,但是文件都被重新编码了,你打开就是乱码!所以这样做也未尝不可啊。。
      

  6.   

    我曾经做过尝试。但是我最终的选择是使用xslt作为中转。虽然还是安全性差点。但相对来说好多了。在所有的项目当中我们都不应该如此暴露,这是原则。其实自从SQL SERVER支持TO XML之后我觉得很多问题都方便多了,但是太方便也
      

  7.   

    没看明白 javascript 联接的数据库 在哪???通过 flash 保存在客户机上??? 
      

  8.   


    第一步:
    通过 
    var ServerResult = "select top 100 * from table where id>N".OnServer().query();
    将数据从SQL服务器拉回到客户端的浏览器中,并且将返回的数据保存到变量result中。第二步:
    执行客户端查询
    var FilterResult = "select id,type,type_name from ServerResult where type='student' ".query();
    来进一步filter服务器返回的数据。
    也可以通过
    var count = "select count(*) as total from ServerResult group by type order by id Asc".query();
    然后通过 count[i].total 就可以获取每一组的总数 ( i= 0 , 1 , 2 , ... )第三步,如果认为服务端的数据需要存入客户端的web DB数据库
    那么可以执行:
    for(var j=0; j<FilterResult.length; j++) {
        var executeReturn = "insert in to table (id,type) values (" + FilterResult[i].id + ",'" + FilterResult[i].type  + "')".OnClient().execute();
        if(!executeReturn) {
            alert("数据插入错误!");
            return false;
        };
    };
      

  9.   

    这是javascript还是jscript,这一样吗?
      

  10.   


    jscript是微软的东西,
    我是在苹果系统下写的JSQL,用的firefox调试
    因此是javascript
      

  11.   

    进来学习,又燃起对JS的学习欲望总觉得JS操作SQL不是很安全,不过用SQL语句操作JS数组,倒是很新鲜的玩意