I've never used the RunSQL command, but I know you can only use Execute to run action queries. You also don't get warning messages when you use Execute command. For example, if you're running a delete query, the Execute method won't warn you that you're about to delete records.
The OpenQuery command can be used to open select queries or to run action queries, but it will give you warning messages (unless you choose to turn them off).