JAVASCRIPT完全自学手册,中源码的验证修订实例

源代码在线查看: 18-1 access数据库浏览器.hta

软件大小: 522 K
上传用户: zbcs1025
关键词: JAVASCRIPT 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				
				
				18-1  Access数据库浏览器
				
				* { font-size:12px; font-family:宋体, Arial; } /*规定了所有的字体样式*/
				body { overflow:auto; background-color:buttonface; border-style:none; }
				input { border-width:1px; height:17px; margin-right:2px; padding:0px; }
				
				
				//通用函数部分
				//函数IsNull判断给出的参数是否是null值或空字符串
				function IsNull(o){ if(o==null||o==""){return(true);}else{return(false);} }
				//函数HandError用于显示脚本执行中的错误信息
				function HandError(e,o){
					if(IsNull(o)){o="Global";}
					var ErrInfo=o+"-Error : "+e.description+"\n";
					ErrInfo+="\nDetail Info :"
					for(var ii in e)ErrInfo+="\n\t"+ii+" : "+e[ii];
					alert(ErrInfo);
				}
				//数据库操作部分函数
				//函数“OpenDatabase”用于打开指定路径的Access数据库
				function OpenDatabase(strDBPath){
				    //Access数据库的默认路径
					var DEFAULT_DATA_FILE="TestData.mdb";
				    //创建“Connection”控件对象
					var oConn=new ActiveXObject("ADODB.Connection");
				    //判断是否缺省路径参数
					if(IsNull(strDBPath)){strDBPath=DEFAULT_DATA_FILE;}
				    //定义与数据库的链接字符串
					var strProvider="Provider=Microsoft.Jet.OLEDB.4.0;"
					var strDBPath="Data Source=" +strDBPath+";"
					var strConn=strProvider+strDBPath
				    //试图打开一个对指定数据库的连接
					try{
						oConn.Open(strConn,"","");
						//返回连接对象
						return(oConn);
					}catch(e){HandError(e,"OpenDataBase");return(false);}
				}
				//获取数据库中的表的名称
				function GetTableName(oConn){
				    //生成一个新的记录集对象
					var oRSSchema=new ActiveXObject("ADODB.Recordset");
					//初始化返回值
					var ret="";
				    //判断如果未给出连接参数则返回
					if(IsNull(oConn)){return(false);}
				    	try{
				    	//获取数据库的信息摘要
				    	oRSSchema=oConn.openSchema(20);
				    	//将记录集指针指向其头部
				    	oRSSchema.movefirst();
				    	//循环读取摘要信息
				    	while(!oRSSchema.EOF){
				    	    //如果相应字段为“表格”
				    		if(oRSSchema("TABLE_TYPE")=="TABLE"){
				    		    //记录表格名称
				    			ret+=oRSSchema("TABLE_NAME")+"\n";
				    		}
				    		oRSSchema.movenext();
				    	}
				    	//关闭摘要的记录集
				    	oRSSchema.Close();
				    	return(ret);
					}catch(e){HandError(e,"GetTableName");return(false);}
				}
				//函数“GetRecordset”按照指定的SQL语句返回执行后的数据集对象
				function GetRecordset(strSQL,strDBPath,PageSize,PageNo){
				    //如果SQL语句为空则返回
					if(IsNull(strSQL)){return(false);}
					//初始化分页
					if(isNaN(PageSize)){PageSize=20;}
					if(isNaN(PageNo)){PageNo=1;}
				    //生成一个新的记录集对象
					var oRecordset=new ActiveXObject("ADODB.Recordset");
				    //打开指定路径的数据库
					var oConn=OpenDatabase(strDBPath);
					//如果打开失败的错误处理
					if(!oConn){alert("Can not open database file !");return(false);}
				    try{
				        //依照指定的SQL语句打开数据库
						oRecordset.open(strSQL,oConn,1);
						//执行分页
						oRecordset.PageSize=PageSize;
						oRecordset.AbsolutePage=PageNo;
						//返回执行后的结果记录集
						return(oRecordset);
					}catch(e){HandError(e,"GetRecordset");return(false);}
				}
				//数据库的HTML表现部分函数
				//函数“UpdateTableList”用于更新显示的数据库中的表名
				function UpdateTableList(){
					try{
					//根据输入的文件路径打开指定的数据库文件
					var oConn=OpenDatabase(txtDataFile.value);
					//如果打开失败则停止执行,报告错误并返回
					if(!oConn){alert("Can not open database file !");return(false);}
				    //获取数据库中的表名
					var ss=GetTableName(oConn);
					ss=ss.split("\n");
				    //清除下拉列表框的内容
					ClearSelect(txtTableName);
					//将获得的数据库表名添加到下拉列表框
					for(var ii=0;ii					//关闭到数据库的连接
					oConn.Close();
					//更新数据区的显示内容
					UpdateGrid();
					}catch(e){HandError(e,"UpdateTableList");return(false);}
				}
				
				//函数“UpdateGrid”用于显示指定的数据页
				function UpdateGrid(PageNo){
					try{
					//初始化分页变量,当前页“PageNo”变量缺省值为1
					var strTable="",PageSize=25,PageNo=isNaN(PageNo)?1:PageNo;
					//定义默认的SQL查询语句
					var strSQL="Select * From [";
					strSQL+=txtTableName.value+"]";
				    //如果输入了筛选条件,则将其写入SQL语句中
				    if(txtWhere.value!=""){strSQL+="WHERE "+txtWhere.value;}
				    //将完整的SQL语句显示为窗口标题
					top.document.title=strSQL;
					//获取符合条件的数据集对象
					var oRecordset=GetRecordset(strSQL,txtDataFile.value,PageSize,PageNo);
					//如果数据集为空则停止执行
					if(!oRecordset||oRecordset.EOF){ClearContent(DataGrid);return(false);}
				    //输出总记录数和总分页数
					txtTotleRecords.innerText=oRecordset.RecordCount;
					txtTotlePages.innerText=oRecordset.PageCount;
				    //清空数据输出区域
					ClearContent(DataGrid);
				    //输出表头
					var Row=0;
					var NewRow=DataGrid.insertRow(Row);
					for(var Col=0;Col						NewCell=NewRow.insertCell(Col);
						//输出单元格内容为该记录的域名
						NewCell.innerText=oRecordset.Fields(Col).Name;
					}
					Row++;
				    //循环记录集,按分页大小输出指定数量的记录
					while(!oRecordset.EOF&&Row						NewRow=DataGrid.insertRow(Row);
						for(var Col=0;Col							NewCell=NewRow.insertCell(Col);
							NewCell.innerText=IsNull(oRecordset.Fields(Col))?" ":oRecordset.Fields(Col);
						}
						Row++;
						oRecordset.MoveNext();
					}
					//关闭记录集
					oRecordset.Close();
				
					}catch(e){HandError(e,"UpdateGrid");return(false);}
				}
				//在当前表中跳转到指定分页
				function GoToPage(n){
					n=isNaN(n)?1:n;
					n=parseInt(n);
					if(n						n=1;
					}
					if(n>parseInt(txtTotlePages.innerText)){
						n=parseInt(txtTotlePages.innerText);
					}
					txtPageNo.value=n;
					UpdateGrid(n);
				}
				
				//HTML的DOM操作
				//向下拉列表框中插入指定的条目
				function AddToSelect(oSelect,Name,Value,intIndex){
					if(IsNull(Name)){return(false);}
					var oOption=new Option(Name,Value);
					intIndex=IsNull(intIndex)?oSelect.options.length:intIndex;
					oSelect.options[intIndex]=oOption;
				}
				//清空下拉列表框
				function ClearSelect(oSelect){
					while(oSelect.options.length>0){
						oSelect.removeChild(oSelect.options[0]);
					}
				}
				//清空HTML元素内的所有子元素
				function ClearContent(obj1){
					try{
					for(var ii=0;ii						obj1.removeChild(obj1.children[ii]);
					}
					}catch(e){HandError(e,"ClearContent");return(false);}
				}
				
				
				
				源文件位置: 
				
				
				Table Name :    
				    Where 
				
				
				
				
				
				
				
				
				
				
				
				Totle Pages : 0   /   Totle Recordes : 0
				
				
							

相关资源