标题:如何定时读数据库,不通过刷新网页
只看楼主
yaoyaochen
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-27
 问题点数:0 回复次数:6 
如何定时读数据库,不通过刷新网页

有一个ocx得控件放在这个页面,如果直接刷新得话就会使得这个ocx控件重新load一次,而我希望得是在页面停留期间定时得读数据库,然后把读到得值赋给控件.各位大侠有什么方法可以实现这种情况?

我想到在script里用window.settimeout可以进行定时,但是怎么样才能实现在定时程序里面读数据库呢,尝试了:

sub goupdate() id2=window.setTimeout("gocheck()",2000) end sub

call goupdate

sub gocheck() <% call ReadData() //这个函数是对数据库操作,读取数据库内容 %>

.......

end sub

运行的时候发现读到的只有第一次的数据,每一次都是那个数据,是不是asp的执行在客户端只能执行一次啊?该怎么样解决啊?

搜索更多相关主题的帖子: 数据库 网页 
2004-12-27 12:14
寒星
Rank: 1
等 级:新手上路
帖 子:455
专家分:0
注 册:2004-6-7
得分:0 
定时执行某一个函数,你把读取数据库的代码放在某个函数里,但是你怎么把读来的值放入控件里?

http://www. 版主位置空缺
2004-12-27 12:28
寒星
Rank: 1
等 级:新手上路
帖 子:455
专家分:0
注 册:2004-6-7
得分:0 

有个例子,自己研究一下

.源程序

1.jsCallASP.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>不刷新页面,动态读取数据库</title> <script language="javascript" src="function.js"></script> <script language="javascript"> function getTables(obj){ var server=txtServer.value; var database=txtDatabase.value; var jsSrc="getTables.asp?obj=selTable&server=" + server + "&database=" + database + "&rnd=" + Math.random(); if(server==""||database=="") {alert('请填写完整!');return;} obj.value='读取中...'; obj.disabled=true; reloadJs(js,jsSrc); }

function getRecords(obj){ var server=txtServer.value; var database=txtDatabase.value; var table=selTable.value; var jsSrc="getRecords.asp?obj=DisData&server=" + server + "&database=" + database + "&table=" + table + "&rnd=" + Math.random(); if(server==""||database==""||table=="") {alert('请填写完整!');return;} obj.value='读取中...'; obj.disabled=true; reloadJs(js,jsSrc); } </script> </head>

<body> <p>不刷新页面,动态读取数据库</p> <script language="javascript" id="js" src=""></script> <table width="421" border="0"> <tr> <td width="146">Sql Server服务器: </td> <td width="265"><input name="txtServer" type="text" id="txtServer" value="localhost" readonly></td> </tr> <tr> <td>数据库:</td> <td><input name="txtDatabase" type="text" id="txtDatabase" value="Northwind" readonly> </td> </tr> <tr> <td>表:</td> <td><select name="selTable" id="selTable"> </select> <input name="cmdRefresh" type="button" id="cmdRefresh" value="刷 新" onClick="JavaScript:getTables(this)"> </td> </tr> <tr> <td>前100条数据:</td> <td><input name="cmdRead" type="button" id="cmdRead" value="读 取" onClick="JavaScript:getRecords(this)"></td> </tr> <tr> <td colspan="2"> <div id="DisData"></div> </td> </tr> </table> </body> </html>

2.getTables.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% Dim CnStr,SQL,Rs,ServerName,DatabaseName,Obj ServerName=Request.QueryString("server") DatabaseName=Request.QueryString("database") Obj=Request.QueryString("obj") Set Rs=Server.CreateObject("ADODB.Recordset") CnStr="Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & ";uid=sa;pwd=sa" SQL="select name from sysobjects where type='u' and status>0" Rs.Open SQL,CnStr,1,1 If Not Rs.Eof then Response.Write("ClearSelect(" & Obj & ");" & vbcrlf) While not Rs.eof text=Rs("name") value=Rs("name") Response.Write("FillSelect(" & Obj & ",'" & text & "','" & value & "');" & vbcrlf) Rs.MoveNext Wend End If Rs.Close Set Rs=Nothing %> cmdRefresh.value="刷 新"; cmdRefresh.disabled=false;

3.getRecords.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% On Error Resume Next Dim CnStr,SQL,Rs,ServerName,DatabaseName,Obj ServerName=Request.QueryString("server") DatabaseName=Request.QueryString("database") Table=Request.QueryString("Table") Obj=Request.QueryString("obj") Set Rs=Server.CreateObject("ADODB.Recordset") CnStr="Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & ";uid=sa;pwd=sa" SQL="select top 100 * from [" & table & "]" Rs.Open SQL,CnStr,1,1

If Not Rs.Eof then Response.Write("SetHTML(" & Obj & ",'');" & vbcrlf) outHTML="<table border=1><tr>" for i=0 to Rs.Fields.count-1 outHTML=outHTML & "<th>" & Rs.Fields(i).Name & "</th>" next outHTML=outHTML & "</tr>" While not Rs.eof outHTML=outHTML & "<tr>" For i=0 to Rs.Fields.count-1 FieldType=Rs.Fields(i).Type FieldValue=Rs.Fields(i).Value Select Case FieldType Case 128 outHTML=outHTML & "<td>[Binary]</td>" Case 205 outHTML=outHTML & "<td>[LongVarBinary]</td>" Case Else outHTML=outHTML & "<td>" & FieldValue & "</td>" End Select Next outHTML=outHTML & "</tr>" Rs.MoveNext Wend outHTML=outHTML & "</table>" outHTML=Replace(outHTML,vbcrlf,"<br>") outHTML=Replace(outHTML,"""","\""") Response.Write("var HTML=""" & outHTML & """;" & vbcrlf) Response.Write("SetHTML(" & Obj & ",HTML);" & vbcrlf) Else Response.Write("SetHTML(" & Obj & ",'没有记录!');" & vbcrlf) End If Rs.Close Set Rs=Nothing %> cmdRead.value="读 取"; cmdRead.disabled=false;

4.Function.js

var _onjsload=null; function reloadJs(obj,jsfile) { _onjsload= function(){window.status=jsfile + " is loaded.";} obj.src=jsfile; }

function jsLoadReady() { if(_onjsload!=null) { _onjsload(); _onjsload=null; } }

function FillSelect(obj,text,value){ var oOption = document.createElement("OPTION"); oOption.text=text; oOption.value=value; obj.add(oOption); }

function ClearSelect(obj){ for(var i=obj.length;i>=0;i--){ obj.remove(i); } }

function SetHTML(obj,value) { obj.innerHTML=value; }


http://www. 版主位置空缺
2004-12-27 12:46
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 
晕,帖我的代码呀。。

天津网站建设 http://www./
2004-12-27 13:06
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 

天津网站建设 http://www./
2004-12-27 13:11
yaoyaochen
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-27
得分:0 
楼主,你的程序好难啊,我是初学者,不是很看得懂
2004-12-27 13:17
lianyifeng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-12-15
得分:0 
我也看不懂啊,而且又没有说明
2004-12-29 11:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10120-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049657 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved