我有一些文本文件必须插入到我的 SQL 表中。我有一个单独的表来存储我的文本文件名。我必须从该表中获取名称,然后使用fileOpen()
从特定文件夹中获取文件。完成该步骤后,我无法确定执行后续步骤的最佳方法是什么。所以我必须使用fileReadLine()
来获取每个文本文件行的上下文。另外我不应该阅读第一行,因为它只包含列名。其次,一旦我到达文件末尾,我必须检查。最后,我必须循环并将 INSERT 插入表中。我想知道是否有任何新的方法可以做到这一点?我当前的代码有两个cfloops
,看起来效率很低。这是我当前的代码:
<!--- Grab stuff from File Table. --->
<cfquery datasource="test" name="myQuery1">
SELECT *
FROM FilesTxt
</cfquery>
<cfloop query="myQuery1">
<!--- Read File --->
<cfset dataFile = fileOpen(here is my path&"\"&#FileName#, "read" ) />
<cfset line = fileReadLine( dataFile ) />
<!--- Loop to see if hit the end of file, if not, read next line --->
<cfloop condition="!fileIsEOF( dataFile )">
<cfset line = fileReadLine( dataFile ) />
<cfif trim(line) NEQ "">
<cfset line = #Replace(line,"'","","ALL")#>
<cfset line = #Replace(line,'"',"","ALL")#>
<!--- Build array of junk in the file --->
<cfset sList = ListToArray(line, chr(9),'yes')>
<cftry>
<cfquery datasource="test" name="Insert">
//Here is my Insert statement
</cfquery>
</cftry>
</cfif>
</cfloop>
</cfloop>
我正在考虑做一个单独的循环,它将创建包含所有应该插入的元素的数组,然后运行另一个循环来进行插入。我不确定在这种情况下最好的方法是什么。如果有人知道任何其他方式,请告诉我。谢谢