Can't dump data using pro2my version 2 or 3 on centos with progress 9.1D

Hello to everyone!

Can anybody help me to run ptmd.p correctly? It doesn't dump the data nor create the .SQL files. It just outputs the status message "Processing ". My guess is that it does And how do i run a procedure in Linux command line without progress looking for the r-code? It just won't run without the rcode. I'm using mbpro and pro to execute the .p files... Help me please. Thanks.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
tamhas's picture

If it is requiring r-code,

If it is requiring r-code, that suggests that you have a run-time only license. You need to get the .p compiled into a .r first, if that is the case.


Thank you for your response

Thank you for your response. You're right, I compiled some of the files like ptmd.p, ptmsch.p and ptmsec.p in the GUI environment without problems and some of it work perfectly. But some other procedures that they are calling won't compile and are giving errors. Like for example ptmd2.p is giving a "for each" error. The code is like this:

for each {1} ...

So I can't compile that and it's needed to dump the data. Also there are some procedures that are created during run-time that are used, so how am i going to compile that? I was wondering why it works in a GUI environment and not with a LINUX command line environment. I really need this to work coz I'll be putting it in a cron job to dump the data overnight. Is there anyway for progress to bypass checking if the r-code is present? My programming skills is a bit rusty and I can't remember how to deal with arguments ({}). Please help me.

Many thanks.


tamhas's picture

A structure like "for each

A structure like "for each {1}" means something that is intended for compile-on-the-fly usage of the form

run abc.p tablename.

The tablename gets incorporated in place of the {1} when abc.p is compiled. To do that, it must by run by a license with compile capability.

If you need to run this in an environment with run-time only license, you either need to replace this with a table name explicitly stated, which will then compile, but which will require you to have one per table and a selection mechanism in the calling program to choose the right program or you will need to rewrite the whole thing using dynamic queries and pass in the table name as a parameter.


Oh ok, so my only choice is

Oh ok, so my only choice is to get a license that can compile or rewrite the procedure. I'll probably rewrite the procedure, thanks a bunch tamhas.


tamhas's picture

Even with a rewrite,

Even with a rewrite, someplace you are going to need a 4GL or better license to compile the code.


jurjen's picture

compile-license for data dumping?

Do you really need a compile license for data dumping? I am not a DBA but I thought that a regular run-time license was sufficient for database maintenance tasks like: import df and load/dump data. I seem to remember there was a special command-line parameter for the purpose of running sourcecode as long as it does not cause a db transaction, but I can't remember which parameter. Something with a z and/or an x?


tamhas's picture

I seem to recall it too,

I seem to recall it too, perhaps -rx? Anyway, that parameter just provides access to the previously compiled dictionary routines, not to compiling code that is custom written.

I could be wrong, since I never run anywhere without a 4GL license, but my memory is run-time = no compilations period and query = compile programs that don't update the database.