|
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"> </td></tr>
<tr><td class="left11"> </td><td class="left11B">Export Results Destination:</td><td class="left11"> </td></tr> <tr><td class="left11"> </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#">
|
