Morning Mike:
 
Netscape is notorious for hanging up on large recordsets in a table display.  Internet explorer is much more graceful in dealing with this problem.  The best way to display the records in the browser to create a paging method and let the user page through the results.  As you have said the use wants to see all the records on one page that makes this more difficult.  You may be better off writing the query results to a file using cffile and sending the file to the browser using the cfcontent tag or providing a link to the file for the user to download. 
 
This is a snippet from a process that I am using to create an export file on the file with user choices on the file type and options.  This is not the entire page but you should get the idea.  There are a number of ways to do the following but this is something I created and it seems to work well.
 
---------------------- start of cfm to create file ------------------
<cfquery name="getRows" datasource="db">
 select uid,fname,lname,title,substring(email,1,20) as email,
 haddress,haddress2,hcity,hprov,hpostal,hcountry,hphone,hfax,
 len(email) as emaillen,bname,baddress,baddress2,bcity,bprov,bcountry,bpostal,
 bphone,bfax,teachtype,teachother,infoupdate,summer,contact,lang,region,alumnae,
 status,email as emailfull
 from mod_mem_members
 where uid > 0
</cfquery>
 
 <!---setup query loop--->
<!--- create temporary file for export and rename with extension chosen--->
<cfset tmpfile=gettempfile("#request.sitedir#\wrkdbs","exp")>
<cfif form.filetype eq "s">
 <cfset fileext="txt">
<cfelse>
 <cfset fileext="csv">
</cfif>
<cfset newfile=replace("#tmpfile#","tmp",fileext)>
<cffile action="rename"
 source="#tmpfile#"
 destination="#newfile#">
<cfset outfile=newfile>
<!---header row--->
<cfset textoutput="uid,title,fname,lname,email,lang,status,region,teachtype,teachother,contact,busname,address,address2,city,prov,postal,country,phone,fax">
<cffile action="append" file="#outfile#" output="#textoutput#">
<!---get records and output to file--- used this with 3000 records in about 25 seconds>
 <cfloop query="getRows">
 <cfset textoutput="#uid#~#title#~#fname#~#lname#~#emailfull#~#curlang#~#status#~#region#~#teachtype#~#teachother#~#curcontact#~">
 <cfset textoutput=textoutput&"~#haddress#~#haddress2#~#hcity#~#hprov#~#hpostal#~#hcountry#~#hphone#~#hfax#">
<!---check if values are to be quoted--->
 <cfif form.quote eq "y">
  <cfset textoutput='"'&replace(textoutput,'~','","','all')&'"'>
 <cfelse>
  <cfset textoutput='"'&replace(textoutput,'~',',','all')&'"'>
 </cfif>
 <cffile action="append" file="#outfile#" output="#textoutput#">
 </cfloop>
<!--- give user a link to the file--->
<tr><td class="left11" colspan="3">&nbsp;</td></tr>
<tr><td class="left11">&nbsp;</td><td class="left11B">Export Results Destination:</td><td class="left11">&nbsp;</td></tr>
<tr><td class="left11">&nbsp;</td><td class="dlg-helptext">Export file is available for download <a href="blocks/dsp_mem_export_link.cfm/#listlast(newfile,"\")#">here</a></td><td class="left11"></td></tr>
 
---------------------- end of cfm to create file ------------------
 
 
<!---cfm file called from link in page after query is exported to a comma separated file - filename is sent in url
important to have no extra code than needed when doing a cfcontent--->
<cfset filenme=mid(cgi.path_info,find(".cfm/",cgi.path_info)+5,20)>
<cfheader name="Content-Disposition" value="filename=#filenme#">
<cfcontent type="application/ms-excel" file="drive:\filepath\#filenme#">
 
Gary Bonde
[EMAIL PROTECTED]
Web/DB Analyst
CECGeo Group
www.cecgeo.org
----- Original Message -----
From: Mike
Sent: Tuesday, April 23, 2002 8:48 AM
Subject: [CFTALKTor] Access Query to Excel Spread Sheet

Hi All,
 
I have problem with a query that I am doing in access with CF.  The query is returns a lot of records and causes the browser (netscape 4.78 and the network security won't upgrade!)  to go "not responding" for a while then it produces the query results.  The query comes out as one table, they want to see all the records in one page.  Any suggestions on how to make this run better so the users browser doesn't crash or give them the impression that it has crashed?
 
Does having the whole query result in one table slow things down?
 
Providing that the above is a problem that the results are just to big.  Can anyone tell me how convert my query results in to an Excel Spread and produce a link that the can download.
 
Thanks
 
Mike

Reply via email to