<CFQUERYPARAM VALUE="#listgetat(index,1,chr(9))#">,
<CFQUERYPARAM VALUE="#listgetat(index,2,chr(9))#">,
<CFQUERYPARAM VALUE="#listgetat(index,3,chr(9))#">,
<CFQUERYPARAM VALUE="#listgetat(index,4,chr(9))#">
I presume this section is throwing errors when a row does
contain data
in all the "cells". There are many ways to handle this,
www.udflib.org
has UDF built to handle this.
The first one that pooped in my head was an automatic version
of your
manual solution. After you assign each line to the index var,
programmaticly add something between empty tab characters.
<cfset index = rereplace(index,chr(9)& chr(9),chr(9)
& "|" & chr(9),"ALL")>
You will then probably want to do something so that you don't
insert
pipe | characters into your database.