Bug: Template uses "\r\nGO" to detect batches for /postsql
colbybhearn
Posts: 6
I just spent a couple hours getting the /postsql switch to work on an .exe created with Packager. It worked fine for one script but not another, so I went digging. I found that the code template has a method RunSQLFile(string,string) that reads an sql file, chops it into batches using "GO" statements and calls the ExecuteSQLCommand(string) method.
I removed all the GO statements from my query, but no real change in output or functionality. I did some debugging on RunSQLFile and discovered it was still finding a "GO" somehow! Turns out the script had a GOTO statement on a newline, which matches "\r\nGO" perfectly. Thus, it was detecting a batch that didn't exist.
Workaround:
The workaround is fairly simple. I can just prevent my GOTO from matching "\r\nGO" by inserting white-space or by putting the GOTO at the end of the previous line.
Suggestion:
In my own sql script processing library, I use "\r\nGO\r\n", but I don't know if that's always appropriate. Also, specifically stating that GO is used to breakup the script into batches would be helpful to have documented somewhere - maybe on the info tab of the resulting .exe or maybe in the help embedded in sqlpackager.exe available from the command line.
I hope this helps make a great tool even better.
-Colby
I removed all the GO statements from my query, but no real change in output or functionality. I did some debugging on RunSQLFile and discovered it was still finding a "GO" somehow! Turns out the script had a GOTO statement on a newline, which matches "\r\nGO" perfectly. Thus, it was detecting a batch that didn't exist.
Workaround:
The workaround is fairly simple. I can just prevent my GOTO from matching "\r\nGO" by inserting white-space or by putting the GOTO at the end of the previous line.
Suggestion:
In my own sql script processing library, I use "\r\nGO\r\n", but I don't know if that's always appropriate. Also, specifically stating that GO is used to breakup the script into batches would be helpful to have documented somewhere - maybe on the info tab of the resulting .exe or maybe in the help embedded in sqlpackager.exe available from the command line.
I hope this helps make a great tool even better.
-Colby
Comments
ftp://support.red-gate.com/patches/sql_ ... .4.1.2.exe
If you already have 6.4.1, please let me know.
Thanks for checking on this.
Yup, my version of SqlPackager is 6.4.0.8
Glad it's already taken care of!
-Colby