Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

ColdFusion 2018 handling of cfsqltype

Explorer ,
Apr 30, 2019 Apr 30, 2019

We are upgrading several mature sites to CF 2018.  One thing that is biting us quite a bit is the way CF 2018 handles cfsqltype compared to earlier versions.  Typos or incorrect cfsqltypes used to be skipped and treated as varchars.  On CF 2018, they error out.  This is fine however, being mature sites, there is a lot of code and cfqueryparams to be tested for typos. 

I know it's probably a long shot but would anyone know of an existing piece of code that parses cf code for cfsqltypes in a cfqueryparam?

Thanks,

Jeff

1.4K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Participant , Apr 30, 2019 Apr 30, 2019

Hi,

you can search through your code using regular expression if you use a good editor. VSCode and eclipse allow to search throught he project at once. The following looks for the cfsqltype-attribute that does not contain a correct value:

cfsqltype="cf_sql_(?!integer|numeric|varchar|float|timestamp|date|longvarchar|blob|bigint|tinyint|char|decimal|time|bit|smallint|clob)

Translate
Community Expert ,
Apr 30, 2019 Apr 30, 2019

You could use ColdFusion's built-in tool, Code Analyzer. It is in the ColdFusion Administrator, on the Debugging & Logging page.

Browse to the directory whose ColdFusion code you wish to analyze. Then click on Run Analyzer.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 30, 2019 Apr 30, 2019

Thank you for that suggestion.  We tried that this morning but unfortunately cfqueryparam is not included in the tags that can be analyzed.  Since it results in an error with CF 2018, rather than the default value of varchar in earlier releases, I had hoped it would be included.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Apr 30, 2019 Apr 30, 2019

Hi,

you can search through your code using regular expression if you use a good editor. VSCode and eclipse allow to search throught he project at once. The following looks for the cfsqltype-attribute that does not contain a correct value:

cfsqltype="cf_sql_(?!integer|numeric|varchar|float|timestamp|date|longvarchar|blob|bigint|tinyint|char|decimal|time|bit|smallint|clob)

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 30, 2019 Apr 30, 2019

Thank you Bardnet

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
May 01, 2019 May 01, 2019

I use VSCode too, but when performing searches like this, I like to export/save the results and sometimes search across multiple hosts/drives (so I'm not restricted to a single configured project.)  I use FileLocator Pro (Windows) to perform the same regex search as recommended by Bardnet​. You can configure FileLocator Pro to open scripts in and editor of your choosing.  There's also a free "Lite" version of the program available.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
May 01, 2019 May 01, 2019
LATEST

I use FileLocator, too. It's a great tool to search over a whole drive and even over network shares. They recently united the Free version and the paid version. The Pro Version is free for private use. Works great.

VSCode, as I recommended yesterday, needs a setting to use the complex regexp that I wrote.

{

    "search.usePCRE2": true

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources