Last active
September 9, 2020 18:51
-
-
Save JamoCA/3bb02cdbdeaffd47e2be4fd2f9f86a59 to your computer and use it in GitHub Desktop.
Test to deteremine if Query Column is changed using columnlist, getMetaData().getColumnLabels() and getColumnNames()
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!--- 20200909 Test to deteremine if Query Column is changed using columnlist, getMetaData().getColumnLabels() and getColumnNames(). | |
getMetaData().getColumnLabels() doesn't appear to acknowledge the name change. | |
Source: https://gist.github.com/JamoCA/3bb02cdbdeaffd47e2be4fd2f9f86a59 | |
TryCF: https://www.trycf.com/gist/3bb02cdbdeaffd47e2be4fd2f9f86a59 | |
NOTE: Test this on your own CF server as TryCF may cache older GIST or not dump getMetaData() correctly. | |
SAFE METHOD: https://gist.github.com/JamoCA/18f000e0721ebcad4f219638486e2c56 | |
---> | |
<cfscript> | |
/* https://gist.github.com/bennadel/9751913 */ | |
query function QueryChangeColumnName(required query Query, required string ColumnName, required string NewColumnName){ | |
var LOCAL = {}; | |
LOCAL.Columns = ARGUMENTS.Query.GetColumnNames(); | |
LOCAL.ColumnList = ArrayToList(LOCAL.Columns); | |
LOCAL.ColumnIndex = ListFindNoCase(LOCAL.ColumnList, ARGUMENTS.ColumnName); | |
if (LOCAL.ColumnIndex){ | |
LOCAL.Columns = ListToArray(LOCAL.ColumnList); | |
LOCAL.Columns[ LOCAL.ColumnIndex ] = ARGUMENTS.NewColumnName; | |
ARGUMENTS.Query.SetColumnNames(LOCAL.Columns); | |
} | |
return ARGUMENTS.Query; | |
} | |
</cfscript> | |
<cfset qryData = QueryNew("Col1,Col2", "varchar,varchar")> | |
<cfset queryAddRow(qryData, {"Col1"="A","Col2"="A"})> | |
<cfset queryAddRow(qryData, {"Col1"="B","Col2"="B"})> | |
<cfset queryAddRow(qryData, {"Col1"="C","Col2"="C"})> | |
<cfloop from="1" to="2" index="thisStep"> | |
<cfif thisStep is 2> | |
<h2>Changing Col2 to Col2Modified</h2> | |
<cfset qryData = QueryChangeColumnName(qryData, "Col2", "Col2Modified")> | |
</cfif> | |
<fieldset><legend>qryData.ColumnList</legend> | |
<cfdump var="#qryData.ColumnList#"> | |
</fieldset> | |
<fieldset><legend>qryData.getMetaData().getColumnLabels()</legend> | |
<cfdump var="#qryData.getMetaData().getColumnLabels()#"> | |
</fieldset> | |
<fieldset><legend>qryData.getColumnNames()</legend> | |
<cfdump var="#qryData.getColumnNames()#"><br> | |
</fieldset> | |
<fieldset><legend>qryData Dump</legend> | |
<cfdump var="#qryData#"> | |
</fieldset> | |
</cfloop> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment