[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 574
  • Last Modified:

Page doesn't load all recordsets. Need a ONE TIME page refresh on load...

Experts, I'm back again... I have over 1300 lines of code and posting it is going to bore you half to death.  Here's the situation: I have a page that loads and not all the recordsets load the first time. I get an EOF or BOF error, "Sometimes".  Then you refresh the page and the error goes away.

Here's the error:
ADODB.Field error 800a0bcd

Either BOF or EOF is True, or the current record has been deleted.  Requested operation requires a current record.

/webproject/project-dashboard.asp, line 1330

The problem isn't EOF or BOF because when I refresh the page, there's no error.  It doesn't make sense. It happens only for some users and not others. I have totals that are coming in from the database and either I get the results from a previous project or all "0s" (Zeros).  Then I refresh the page and all the totals are there. Bizzar.

To me, it doesn't make any sense why on a refresh (reload) the page retrieves the data fine but on first load it doesn't.  I have the proper meta tags for PRAGMA No-Cache and the like so that's not the problem.

Trying a window.location.reload() firing this from the BODY ONLOAD event causes an infinite reloading loop. Not good.

So how do I cause a REFRESH ONLY ONCE when this page loads or am I looking at a bigger problem or something really simple?  If you really want the code, I'll paste it... but believe me, it's over 1300 lines.
0
pborregg
Asked:
pborregg
  • 2
  • 2
  • 2
3 Solutions
 
MaxOvrdrv2Commented:
well, first off, this shouldn't be happening... if your SQL and your ASP is correct, there shouldn't be a page refresh issue. Unless you're using access and there are a ton of users hitting the DB at the same time. Otherwise, should be fine. An easy way is with the querystring object:

after you load all of the records, do this:

if Request.QueryString("loaded")=0 OR IsNull(Request.QueryString("loaded")) then
    Response.Redirect("yourpagename.asp?loaded=1")
end if

that should refresh only once.

M
0
 
MaxOvrdrv2Commented:
and if you are willing, i could look at your code for you... just upload it in .txt format... rename your .asp page to .txt and upload, and i'll check it... i've got nothing to do for a while so i'm up for it.

M
0
 
fsze88Commented:
like this?

 
 
 
<script language="javascript">
function setCookie(c_name,value,expiredays){
  var exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
 
}
 
function getCookie(c_name){
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
 
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}
</script>
 
 
<script type="text/javascript">
var reloaded = getCookie('reloaded');
if (reloaded == '' || reloaded == 'false'){
  setCookie('reloaded','true',1);
  document.write("needs reload");
//  setTimeout('window.location.reload()',2000);
  window.location.reload();
}else{
  setCookie('reloaded','false',1);
  document.write("reloaded");
}
</script>

Open in new window

0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
pborreggAuthor Commented:
You're all geniuses...

I have to rebuild the code you wrote.... MaxOvrdrv2 for JScript but it works nonetheless.

if(Request.QueryString("pid")=="" || Request.QueryString("pid")==null)
{
   Response.Redirect("project-dashboard.asp?pid=Session('SV_PID')");
}

fsze88 your code works too... I had to add them both and they're working in tandum. Brilliant!!!!
0
 
pborreggAuthor Commented:
FSZE 88: can you explain your code above in Psuedo-Code so I can explain it to the NON-PROGRAMMERS please?

Thanks.

Peter
0
 
fsze88Commented:
Okey, sure!
It is reading cookie variables from each client. cookie means client browsers local variable, each browsers (ie, ff, safari, opera, chrome) having their own cookie variable.... e.g. you can store cookie at ie browser and read it as well, but it can't be read by another browser and so on of ff, safari, opera..
I have javascript function setCookie(c_name,value,expiredays) that store variable name, value, expireday. getCookie(c_name) return the value of variable of the name c_name....
at the beginning, there is no cookie on browsers so the first line
var reloaded = getCookie('reloaded');
it should be '',  set the variable named reloaded to be true and force it to be reload by window.location.reload();
after refreshed set the variable named reloaded to false and force it to be reload by window.location.reload(); in later on...
0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now