SQL 101: Tools of the Trade - The ACS Run SQL Scripts, Part 2

  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

As promised, here are a few more tricks and tips about ACS’ Run SQL Scripts, including the availability of a new version with some nice features!

A couple of TechTips ago, I explained how to install ACS and remarked that the process was not very user-friendly. Among other things, you need to figure out which JavaScript file to use in order to start the right installation process and, when the said process ends, you have to create your own desktop shortcuts.

It seems these (and a few more) complaints were heard by IBM, because ACS’ latest version (, released at the end of January 2017, creates the desktop shortcuts if you tell it to (however, you still need to figure out which JavaScript file to use). Anyway, here’s the complete list of updates, courtesy of ACS’ web page:

  • Enhancements to Printer Output filter:
    • Multiple output queues
    • User-specified data
  • Enhancements to Data Transfer:
    • Added support for DOS Random
  • EHLLAPI Bridge: 5250 applications requiring EHLLAPI may now download the ACS EHLLAPI Bridge from the Updates website.
  • Additional support to restrict functions using Application Administration
  • Several fixes

I’m guessing that the creation of the desktop shortcuts is included in that catch-all “Several fixes” category.

Now that that’s out of the way, I’d like to start by addressing a reader’s question: How can you prompt an SQL statement in ACS’ Run SQL Scripts like you do with F4 in STRSQL?

In short, the answer is “You can’t.” But there are alternatives….

“SQL Assist” Is MIA; the Pseudo-Alternative Is “Insert from Examples”

If you know IBM i Access’ Run SQL Scripts, you may know that there’s a neat feature called SQL Assist, available via F4, just like in STRSQL, or the SQL Assist/Prompt CL… option in the Edit menu. But before you fire up ACS’ Run SQL Scripts and go looking for that option, let me stop (and disappoint you) right there: the menu option doesn’t exist. It’s one of the things that didn’t migrate (at least not yet) to the ACS version. I’ve been told that IBM is working on it, but there’s no release date on the horizon.

I’m pretty sure you opened ACS’ Run SQL Scripts anyway, so go to the Edit menu. Instead of SQL Assist, you’ll find something else that helps, even though it doesn’t solve the problem: the Insert from Examples… option. Even though this is not a new feature, it was greatly improved on the migration to ACS. It now includes a categorized view of the examples, as shown in Figure 1, and the sheer amount of example code is staggering.

 C# for RPGers: Making Stuff Happen, Part 1 - Introducing Flow Control in C# - Figure 1

Figure 1: The Insert from Examples window from ACS’ Run SQL Scripts

Figure 1 shows the list of the DML category, but there are many, many more examples, neatly organized in nine categories, which include nearly everything you can think of, from getting information about PTFs to executing CL commands, changing tables’ authorities, and creating procedures. In order to use it, simply select an example from the list and click the Insert button that sits on the bottom right corner of the window. Then replace the placeholder names with the appropriate ones. It’s not SQL Assist, but it’s very helpful.

Discovering the Syntax Checker

Another feature that is also not new, but has been improved, is the Syntax Checker. You can access it using the respective option in the Run menu or via the Ctrl+Shift+X key combination.

The functionality does what the name implies, scanning your code and looking for errors. It detects not only the “classic” syntax errors, such as misspelled keywords, but also other more subtle things, like unknown or misspelled column names, missing parameters in functions, and so on.

The result of the check is not brilliant because of the cryptic nature of SQL error messages, but the fact that the syntax checker highlights where the first error occurred is especially useful when you’re dealing with large or long-running scripts. The checking process is usually very fast, and it doesn’t need to actually execute the code in order to check it.

These two features used together will help you circumvent the absence of the SQL Assist, at least until IBM manages to add that feature to ACS’ Run SQL Scripts.

Do You Toggle?

I’d like to finish this TechTip with a small tip: Do you know the Toggle comments option? I use it a lot. It’s another option that does what the name implies: It adds or removes the dash (--) to or from the line where the cursor is located, thus turning that code line into a comment line or vice versa. This is very useful where you’re writing long, multiline statements and want to try different things, such as different conditions in the WHERE clause, for instance. In the previous TechTip, I’ve shown how to configure and use the SQL formatter. If you set up your formatter to break to a new line every time it finds an AND or OR keyword, disabling that line is simply a matter of placing the cursor anywhere on it and pressing Ctrl+7 (this may vary with keyboard layouts, because the key shortcut is actually Ctrl+Slash) or selecting the Toggle comments option from the Edit menu.

More to Come

There’s much more to be said about ACS’ Run SQL Scripts, namely about the Visual Explain functionality, but I’ll leave that to a future TechTip. Next time around I’ll be introducing another interesting tool of the trade: the SQuirreL SQL Client. Until then, please use the comments section to share your own tips, tricks, and more!