Skip to content

Instantly share code, notes, and snippets.

@JamoCA
Last active September 9, 2020 18:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JamoCA/3bb02cdbdeaffd47e2be4fd2f9f86a59 to your computer and use it in GitHub Desktop.
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()
<!--- 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