What are the topics that, you think, would come under basics of Progress 4GL? Please let me know.
2 Answers
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.
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.