Database Structure file

Posted by davemaclurg on 14-Jan-2014 09:02

I have version 10.1C04. I have created a database and I'm trying to add areas to its structure. I have set up a .st file with the following d “Data”:100,32;1 MyDb_100.d1 f 1024000 When I run prostruct add I get the message Invalid extent type M in extent length specification. Why am I getting this and, if my format is wrong, can you advise the correct one? Dave MacLurg

All Replies

Posted by Paul Koufalis on 14-Jan-2014 09:10

There could be a few reasons.  Try this: I replaced the file name by a dot.  This tells prostrct to create the extent in the current working directory and it will name it automatically.

d “Data”:100,32;1 . f 1024000

Note that I never use file names in my structure files for this exact reason.  I only put directory names and usually I just put "." unless I specifically want to create a file somewhere different.  

Also you don't say so specifically, but I assume this file is called something like "add.st" and you are running "prostrct add Mydb add.st".

If this does not work:

- Is this a new storage area called "Data" or are you trying to add files to an existing SA?  I ask because the file name is .d1 which implies a new SA.

- Is the DB called MyDb?  On UNIX this is case-sensitive

Paul

Posted by davemaclurg on 14-Jan-2014 11:49

I have tried this and I still get the same message and it identified "." as the invalid extent type. It is as if I'm missing an element of the area definition, but I have checked what I have against the Progress documentation.

I have also tried creating a new .st file and running a prostruct create but I get the same result.

Posted by Thomas Mercer-Hursh on 14-Jan-2014 11:52

Why don't you paste in the actual structure file?

Posted by Paul Koufalis on 14-Jan-2014 12:51

This has to be a parsing issue.  prostrct expects token 4 (space-delimited) to be "f" or "v" or nothing.  Did you cut-and-paste the line from MS Word?  

Try this:

cd /tmp

prodb toto sports2000

prostrct list toto

cp toto.st add_test.st

Now vi add_test.st, delete everthing except one line and edit each component (area name, area #, RPB, BPC, directory,"f", size).  Now try prostrct add MyDB add_test.st.

Posted by Richard Banville on 28-Jan-2014 07:28

If your database is indeed named MyDB (if not you get 6857 error) then try quoting the area name.

Posted by Ruanne Cluer on 17-Feb-2014 01:31

The message "Invalid extent type M in extent length specification", is most likely because you copied this st file from Windows.  It's interpreting the end of line ^M. If you open your .st file in (say) vi, you'll see the ^M at the end of each line to confirm this.  It can be removed by running: %s/(ctrl-v)(ctrl-m)//g

Posted by James Palmer on 18-Feb-2014 10:10

Yeah I can confirm that this is the likely cause as I had exactly the same problem when playing around with some bits last week, and C&Ping from M$.

Posted by Richard Banville on 18-Feb-2014 11:05

The ^M is not an issue for my .st files coming from NT to Unix (tested on Solaris64 in 10.2b08)

^M

d "Data":100,32;1 MyDb_100.d1 f 10240^M

^M

It is only when I remove the quotes around the area name "Data"  that I get the error:

Syntax error in structure file:

d Data:100,32;1 MyDb_100.d1 f 10240

Fixed Length flag incorrect. M (6830)

Error occurred on line 2. (6819)

prostrct add FAILED. (12867)

This thread is closed