The exception is being thrown because the licence, under which this particular variant of the utility is distributed, is standalone, that is, it does not permit embedding in third-party applications; that's why it's free.
Watch out for SP_SERVEROPTION "collation_compatible". If it is not set to "true", a remote column referenced in the WHERE or ORDER BY clauses could result in the parent table being dragged back, in its entirity, to be processed locally.
MS SQL gives you two options, distributed (four part) queries, as has already been suggested, and OPENQUERY.
With a distributed query, the local server may be tempted to request a lot more data in order to do more processing locally, to generate the end result set, and the query might run slower than expected. With OPENQUERY, you stand a better chance of the remote server doing all the work for that part of the query.
Using a distibuted query is probably easier, in PROIV terms, as it can be accomplished by using the logical database name (from pro4.ini) in the physical file name. It's transparent, but that it obfuscates the fact that that logical file is actually a remote resource might not be a good thing, when it comes to later maintenance and the uninitiated. Side effects can involve SOSHOST_MUTEX waits under heavy load, while the local instance gathers statistics from the remote server to factor into the execution plan, or the wrong execution plan entirely, resulting in full table scans, and orders of magnitude more network traffic, if the account running the query can't access the histogram(s) http://msdn.microsof...y/ms175537.aspx
If the remote files are only being referenced in PROIV within full function SQL, or wholly native MS SQL objects, like stored procedures, have a look at OPENQUERY.
Something which could affect you is PostgreSQL's lack of (native) support for autonomous1 transactions.
Any rollback has positive, neutral and negative side effects. Consider an application which writes audit records as it works through transactions. If a rollback occurs, everything since the last commit is lost, including the audit records ... and they could contain the reason for that failure. If your application uses auditing, you might want to leave the audit tables as Pro-ISAM.