js客户端数据库的对象与函数

有时候想在网页上使用客户端数据库,但为了兼容第版本的浏览器不支持xml技术,所以在此编了一些js的dml函数希望有兴趣的朋友一起讨论
function TRform()
{
this.TRRC=new Array();
this.QRC=new Array();//结果

this.currentRC=1;//当前纪录指针
this.lastRC=0;//最后纪录
this.RClength=arguments.length;//字段数

this.TRRC[0]=new Array();//字段名

for(i=0;i<this.RClength;i++) this.TRRC[0][i]=arguments[i];

this.addRC=addRC; //加一条纪录
this.showRC=showRC;//打印当前纪录
this.showPrevious=showPrevious;
this.showNext=showNext;

this.preLoad=preLoad; //预装载图像
this.item2index=item2index;//使字段名到数组的索引
this.showThis=showThis;
this.Isright=Isright;
this.seek=seek;

}

function addRC()
{
this.TRRC[++this.lastRC]=new Array();
for(i=0;i<this.RClength;i++) this.TRRC[this.lastRC][i]=arguments[i];

return true;

}

function showRC(){
 for(rc=0;rc<this.QRC[0].length;rc++)
 {
  theEL=eval(this.QRC[0][rc]);
 
  if(this.QRC[0][rc].indexOf("image")==-1){
  theEL.innerText=this.QRC[this.currentRC][rc]
  }
  else{
  theEL.src=this.QRC[this.currentRC][rc];
  }
 }
return true;

}

function showNext(){
this.seek("all","all")
if(++this.currentRC>this.lastRC) this.currentRC=this.lastRC;
this.showRC();

}

function showThis(){
 this.seek("all","all")
this.showRC();

}

function showPrevious(){
this.seek("all","all");
if(--this.currentRC==0) this.currentRC=1;
this.showRC();

}

function preLoad(){
if(confirm('您需要先将图片载入内存吗,这样可以提高浏览时的平滑度.如果您的网络速度较慢的话,建议不要载入','明暗界限')){
status='图片装入中';
var imageIndex=new Array();
var n=0;
for(i=0;i<this.RClength;i++){ 
  if(this.TRRC[0][i].indexOf("image")!=-1) imageIndex[n++]=i;
}  
 
for (i=1;i<=this.lastRC;i++){
  for(var II in imageIndex){
   var preImage=new Image();
   preImage.src=this.TRRC[i][II];
   status+='.'
  }
 }
}
status='';
return true;

}

function item2index(item)
{
val=-1
for(i=0;i<this.RClength;i++)
 if(this.TRRC[0][i]==item) val=i;

return val;

}

function Isright(rc,item,oper,exp)
{

id=this.item2index(item);

ends=false;
if(eval("this.TRRC[rc][id]"+oper+"exp")) ends=true;

return ends;

}

function seek(exp1,item1)
{

var getexp=exp1.split("@");

this.QRC=new Array();

var n=0;
var showitems=new Array();

if(item1=='all') for(i=0;i<this.TRRC[0].length;i++) showitems[i]=this.TRRC[0][i];
else{
  for(i=1;i<arguments.length;i++)
  showitems[n++]=arguments[i];
}

this.QRC[0]=new Array();
for(m=0;m<showitems.length;m++)
 {
  
  this.QRC[0][m]=showitems[m];
 }

for(m=0;m<showitems.length;m++)
 {
  showitems[m]=this.item2index(showitems[m]);
 }

temp=1;

if(getexp[0]=='all'){
 
 for(k=1;k<=this.lastRC;k++)
 {
  
  this.QRC[temp++]=new Array();
  for(i=0;i<showitems.length;i++)
  {
  this.QRC[temp-1][i]=this.TRRC[k][showitems[i]];
  }
 }

 }
else
 {
 for(k=1;k<=this.lastRC;k++)
 {
  if(this.Isright(k,getexp[0],getexp[1],getexp[2]))
  {
  this.QRC[temp++]=new Array();
  for(i=0;i<showitems.length;i++)
  {
  this.QRC[temp-1][i]=this.TRRC[k][showitems[i]];
  }
  }
 }
 

}

return this.QRC;

}

时间: 2024-09-02 14:22:46

js客户端数据库的对象与函数的相关文章

JS克隆,属性,数组,对象,函数实例分析_javascript技巧

本文实例讲述了JS克隆,属性,数组,对象,函数.分享给大家供大家参考,具体如下: <script type="text/javascript"> /* 克隆原型得到对象 */ function clone(object) { function F() {} F.prototype = object; return new F; } var Person = { name: 'default name', getName: function() { return this.n

浅谈JS正则表达式的RegExp对象和括号的使用_javascript技巧

RegExp对象的创建: 常规的正则表达式的创建可用直接量,即斜杠 "/" 括起来的字符.但在要求参数变化的环境下,RegExp()构造函数是更好的选择: var reg1 = /'\w+'/g; var reg2 = new RegExp('\'\\w+\'','g'); 对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠" / "括起来了:而是字符串中必须要对引号" ' "和转

js开发中常用日期时间函数

js开发中常用日期时间函数 字符串转成日期类型,date.prototype.isleapyear 判断闰年 date.prototype.format 日期格式化 date.prototype.dateadd 日期计算 date.prototype.datediff 比较日期差 date.prototype.tostring 日期转字符串 date.prototype.toarray 日期分割为数组 date.prototype.datepart 取日期的部分信息 date.prototype

Python通过websocket与js客户端通信示例分析_python

具体的 websocket 介绍可见 http://zh.wikipedia.org/wiki/WebSocket  这里,介绍如何使用 Python 与前端 js 进行通信. websocket 使用 HTTP 协议完成握手之后,不通过 HTTP 直接进行 websocket 通信. 于是,使用 websocket 大致两个步骤:使用 HTTP 握手,通信. js 处理 websocket 要使用 ws 模块: Python 处理则使用 socket 模块建立 TCP 连接即可,比一般的 so

JavaScript中的对象、函数和继承

1. Javascript中的对象.JavaScript可以说是一个基于对象的编程语言,为什么说是基于对象而不是面向对象,因为JavaScript自身只实现了封装,而没有实现继承和多态.既然他是基于对象的,那么我们就来说说js中的对象. 1. Javascript中的对象 JavaScript可以说是一个基于对象的编程语言,为什么说是基于对象而不是面向对象,因为JavaScript自身只实现了封装,而没有实现继承和多态.既然他是基于对象的,那么我们就来说说js中的对象.有人说js中所有的都是对象

Oracle数据库数据对象分析(上)

oracle|对象|数据|数据库 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径. 表和视图 Oracle中表是数据存储的基本结构.ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大.视图是一个或多个表中数据的逻辑表达式.本文我们将讨论怎样创建和管理简单的表和视图. 管理表 表可以看作有行和列的电子数据表,表是关

Oracle数据库数据对象分析(中)

oracle|对象|数据|数据库 完整性约束 完整性约束用于增强数据的完整性,Oracle提供了5种完整性约束: Check NOT NULL Unique Primary Foreign key 完整性约束是一种规则,不占用任何数据库空间.完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用.用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中. 禁用约束,使用ALTER语句 ALTER TABLE table_name DI

Oracle数据库数据对象分析 (下)

oracle|对象|数据|数据库 过程和函数 过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值.过程有零个或多个参数,没有返回值.函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式.过程是作为一个独立执行语句调用的: pay_involume(invoice_nbr,30,due_date); 函数以合法的表达式的方式调用: order_volumn:=open_orders(SYSDATE,30);

前端-写js要不要面对对象?

问题描述 写js要不要面对对象? 今天老大说不要写成面对对象,以后如果别的js用到了这里面的某个方法,不好调用, 就写成最low的那种写法?大家觉得有道理吗? 新手,不知道遵循哪种规范? 解决方案 理论上是要的,但是根据项目需求的特殊性.可以考虑不用,你可以细问一下为什么不用,如果你也觉得合理就用.不合理就表明你的看法. 解决方案二: js面对对象编程 解决方案三: 要,面向对象更容易调用且能够大大减少方法 变量冲突 有空可以研究一下闭包 解决方案四: 如果是为了代码的复用,面向对象的写法可能更