Application Compiler returning error 855

Posted by luiz on 20-Mar-2019 10:53

Good morning, I would like to see if someone can give me a direction. I'm trying to learn Progress 9.x by myself and created 2 small procedures:

test1.p - has the CONNECT statement to the database and a RUN statement calling the test2.p

test2.p - has only one line with a FIND FIRST calling one of the columns.

If I use the _progres.exe the code works without a problem and no error is being thrown. However, when I use the Application Compiler the test2.p is returning the 855 and 725 errors and test1.p is not.

Does someone have a suggestion to me?

Posted by bronco on 20-Mar-2019 11:05

When you compile the database is not connected. Start the compile session with the database connected (with parameters for example: -db sports2000 -s 1234).

All Replies

Posted by bronco on 20-Mar-2019 11:05

When you compile the database is not connected. Start the compile session with the database connected (with parameters for example: -db sports2000 -s 1234).

Posted by 2087 on 20-Mar-2019 11:06

If you mean that the error is reported by the Application Compiler then most likely you just are not connected to the database during the compile.

If you mean that the run the resulting test2.r that the Application Compller created then it is at that point you are not connected to a database (or you are connected but it as a different name).

Progress 9 was replaced Progress 10 more than 10 years ago - how is it you have Progress 9?

Posted by James Palmer on 20-Mar-2019 11:08

As has already been alluded to, Progress 9 is ancient, obsolete and unsupported. Learning it is a big waste of your time, quite frankly. And that becomes even more apparent when you can get a free version of a modern release for the purposes of learning here:

It's great you want to learn, but please do so on a current release.

Posted by bronco on 20-Mar-2019 11:20

btw, any particular why you start with 9.x? It's 20 years old. Maybe you can sign up for this:

Posted by Simon L. Prinsloo on 20-Mar-2019 11:25

James is correct, you should learn using the newest version, even if you really need to know v. 9.

You will still be able to use almost all procedural stuff you learn on the latest version, but the OO stuff and anything related to structural error handling is not available in v.9, so you can skip those parts for now. There may be a few new statements missing, but they will very few and far between. Also, a few handle based objects, like LOG-MANAGER and CLIENT-PRINCIPAL, did not exist in v. 9 and on some others like SESSION you will find that some properties are missing. Other than that, the latest stuff should get you fairly well up to speed if you really need to work with v.9.

On the other hand, if you do have a v.9 code base, you have a very good chance that you will be able to compile and run it on the latest versions without any major problem. The most difficult would be to get the db up through all the versions, unless you just dump and load it.

Posted by luiz on 20-Mar-2019 11:36

Thank you everyone for your replies and I understand the point of everyone. However, the company is still using the v.9 and I was learning it because I need to work with the limitations that I have with it and I don't have the decision power to update just to work. Said that, what I was missing is to connect to the database before using the Application Compiler. Once I use for example the Data Administration to connect the database and then opened the Application Compiler I was able to compile the code. Thank you again for your help!

Posted by Laura Stern on 20-Mar-2019 12:00

And, by the way, you don’t need to use the Application Compiler at all.  Code will compile on the fly when you run it.  When playing around and running small procedures, this is the best way to go, IMO.

Posted by 2087 on 20-Mar-2019 12:14

Then you are stuck on 9. Stick with 9 for development as that is the only way to be certain that what you create can be deployed.

If have you got a full set of documentation for 9 then "Programmers Handbook" is probably a good place to start. If you haven't you will need to find it - there is a lot of Progress even on that old version.

Posted by Tim Hutchens on 20-Mar-2019 12:26

OE Product Documentation link, including 9.1D and 9.1E can be found here:

The Programmer's Handbook is under 4gl > proghand > proghand.pdf.

Posted by ChUIMonster on 20-Mar-2019 13:14

You may not have the authority to unilaterally upgrade but you certainly have the opportunity to learn why that upgrade is important and to speak up in favor of it.

If the company is deliberately choosing to stay on v9 one the following factors are likely in play:

1) They don't know any better - you can help them to know better.

2) They have not been keeping maintenance current and would have to pay for up to date licenses - if they are that cheap what does that say about your prospects at this company?

v9 is not just ancient, obsolete and unsupported -- it is irresponsible to continue to operate a mission critical system on v9.  v9 was designed in the late 90's - the landscape was very, very different back then.  Is the company still running Windows 95 / 98 on all of its desktops?

If you, personally, want to have a future writing Progress code you need to be learning about new features and capabilities.  The current release, for instance, is OpenEdge 12.  If you were learning the Microsoft stack would you be focused on Visual Basic 4?

BTW -- FIND FIRST doesn't "call a column".  It fetches a row into a buffer (all of the columns of that record).  You can then reference the column in whatever code you write after that.

Also - in most cases FIRST is inappropriate.  I can understand it as a quick and dirty way to write test code (test2.p) but if you are under the impression that FIND must always have a FIRST that is wrong.  If you have the misfortune of working with a code base where someone long ago decided to always put FIRST after ever FIND you should at the very least be aware that it is not necessary, not helpful and is, in fact, misleading and the source of difficult to resolve bugs.  At best it is a bad example that should not be followed or adopted.  The WHERE clause in a FIND should almost always identify a UNIQUE record.  In which case FIRST does nothing except mislead the future maintenance programmer into thinking that there could potentially be a multi-record result set.

Posted by gus bjorklund on 20-Mar-2019 13:44

good news, luiz:

while it is true that v9 is quite old and no longer supported, pretty much everything you write in v9 ABL will work when you get a newer version.

sure, you wont be using all the latest features and the most fashionable techniques, but your code will work.

start with the v9 programming handbook. sadly, the latest version (v12) does not have this book anymore.

go for it.

Posted by ezequielmontoya on 25-Mar-2019 14:58

9, 10, 11, it's almost the same programming if you use client-server like us.

We jumped from 9.1 to 11.6 a few years ago. Probably same reasons: Progress/OpenEdge is really good but awfully expensive. And unsupported in my country (that wasn't the case 20 years ago).

I guess we will stick to 11.6 until we change ERP in a few years.

We still have a 9.1 installation; we use it when we need to update a .PRL report file (we have a lot).

This thread is closed