1
votes

What are the topics that, you think, would come under basics of Progress 4GL? Please let me know.

2
As mentioned in my answer, I would suggest adding more details and making this question more specific. You could edit your question with what you may already know or what your previous development background is, or you could even answer your own question with things you've already learned for the sake of others seeking the same answers. - zr00

2 Answers

7
votes

Aside from things that are basic programming in any language, and which you can pick up by browsing through the online documentation -- http://communities.progress.com/pcom/docs/DOC-107735 and http://documentation.progress.com/output/OpenEdge111/pdfs/dvref/dvref.pdf, the concepts that make Progress 4GL most unique are:

  • The Progress DB is NOT SQL. Don't try to act like it is.
  • Transactions are implicitly and automatically started.
  • Buffer (record), Lock and Transaction scope are different but they interact with each other.

Also -- Progress is almost always being used because it is the language that an application was built with. That application probably has a framework of some sort. Don't fight the framework. Learn to work with it.

1
votes

I think this question is currently too vague for Stackoverflow; I'd suggest editing this question and asking more pointed questions rather than casting such a broad net. However, I'll answer with some items I would have liked to know when I first started.

Alongside Tom's answer, I would suggest you review the syntax. There are some quirks which can trip up someone who has been developing in other, more popular languages.

Along the topic of syntax, the datatypes are named differently than most languages. CHARACTER means string. LOGICAL means bool. ? (not in quotes) behaves similarly to NULL in most languages. See the comment to my answer for some differences.

Unlike PL/SQL, which has PL statements which interact with SQL, Progress's statements and queries are intertwined - there's no concept of just a "standalone ad hoc query", unless one writes a quick procedure which contains display statements.

When defining tables, you can define the display Format; however, this will not constrain someone from writing a procedure which "breaks" that format. For example, a ten-character field could contain thousands of characters, with no exceptions thrown. If displayed with the default format, the viewer will see "??????????", and a message. The default display format can be overridden in whatever program is written.