SQL and 4GL need to talk

Muz

New Member
Hi everyone,

This is not a new problem as far as I have read, I am a newbie to Progress. Am not really working with progress but I am working with another programmer who does the progress side of our project and I am doing the SQL interfacing with her side.

The problem we've found is her 4GL DB triggers won't run when I UPDATE/INSERT into a particular table of hers.

As far as I know we're using MERANT 3.60 32-BIT Progress SQL92 v9.1D drivers.

Is there absolutely no way to get her programs/triggers to run from something I do? Even with a work-around? Or could I RUN her code somehow through a command instead of using the "trigger part"??

I have heard that we need to duplicate her 4GL triggers in SQL triggers but that can turn into a nightmare because her current programs are linked and one calls the other which calls the other etc etc....So in essence that solution means just re-write the entire DB workings in SQL which is not an option!!!

So any ideas would be extremely appreciated! Thanks in advance!
 
There is no way to do this directly.

Triggers (from either side) are considered bad architectural ju-ju anyway.

The generally accepted architectural solution to problems of this nature is to use an SOA approach whereby the 4GL code provides business services that you call via Web Services (SAOAP) or an ESB (such as Sonic). You are, however, running Progress 9.1D; which was retired 4 or 5 years ago. There might be some limited and clunky SOAP support (I vaguely recall an experimental toolkit for such) but that would be about it. Obviously you should upgrade (among other things you'll get much better ODBC support) to at least 9.1E04 (the very last release of v9 which is also 4 or 5 years old). Or better yet bite the bullet and upgrade to OpenEdge 10 -- you would get lots and lots of great benefits from that.

Assuming that isn't happening in the near term you're in the land of "roll your own". You could probably do something reasonable with a socket-based service if you system isn't too complex and your needs aren't terribly demanding. And if you have the skills to write such code (but if you had those it would likely already be done...)
 
As Tom said, triggers are db-dependent.
You will have to recreate all of them, if you dont want to change your source code.

Or.. maybe you can find a way to rewrite them inside single scripts ?
Can you execute sql scripts ? I have seen it done in SqlPlus for Oracle using batch files to call it and sending a sql statement, i dont know if you can manage to do the same..
You will have anyway to modify your progress code to call them, in this case..
 
Back
Top