Systemtables

Damanindahaus

New Member
hi mates,

i have a little problem. i use progress db and the db tool is data dictionary. my problem is as follows:

if i make a select on a table when a special column is affected, this compiler message returns: "**FILL-IN column1 paßt nicht in den FRAME im PROGRAM . (4028)" (original german). translated it must be like ".... column1 doesn't fit in the frame of the application...".

there are some problems i have right now, where i need the ability to go through system tables. i know that in oracle u can go through all_tables and in ms sql server u go through sys_tables, but i haven't found any comments yet about progress' system tables. are there any or not? if yes, what are the names of these tables ( column and tablef ).

can anyone plz help me? i would really appreciate some comments :)

regards
Daman:confused:
 

Damanindahaus

New Member
hi mates,

i think this next thread belongs to the upper one. i don't know if this is a common progress function, but i don't really like it.

this statement returns some rows:
SELECT columnname FROM tablename
WHERE columnname LIKE '%a%'

but this doesn't:
SELECT columnname FROM tablename

is this a normal progress function? i hope not. are there any comments maybe from sb who already had the same probs? plz help me :)

regards
Daman
 

Damanindahaus

New Member
hi bros,

i found another real gorgeous thing using the procedure editor. i used these statements:

select distinct columnname from tablename --> there are results
select columnname from tablename --> there are NO results???

i thought the distinct thing lowers the results ;)

what is wrong with this? should i update something?

regards
Daman
 

RealHeavyDude

Well-Known Member
Never, never, never mistake the Progress procedure editor with an SQL editor. There is some sort of basic SQL89 syntax available in the procedure editor that is understood by the 4GL compiler and executed by the 4GL client - but that has nothing to do with the SQL engine of the database. AFAIK, it's there since Progress V6 and has never been removed from the 4GL compiler.

To execute "real" SQL and utilize the capabilities of the SQL92 engine of the Progress/OpenEdge database you must use some SQL tool like the SQL Explorer which comes, depending on your version at least in a character version, with the Progress installation. You may even use M$ Access - but NOT the Progress procedure editor.


Heavy Regards, RealHeavyDude.
 

RealHeavyDude

Well-Known Member
The Progress procedure editor per default uses a sort of "character type" standard output frame that has 80 columns width and some 20+ rows. Naturally columns that are wider will not display with this restrictions. You can specify the width option ( I recommend the stream-io option too ) to make the default frame wider, but I think it does not go any farther then 255 columns. Alternately you can specify the format option to narrow the field width so that it will fit in the frame.

Heavy Regards, RealHeavyDude.
 

Damanindahaus

New Member
hi mates,

i found out, that i cannot install an sql explorer. the reason is, the customer's server is running remote and we don't get any admin rights on it. aren't there maybe any sql tools automatically installed but the procedure editor? i really wanna have normal results when i select something. has anyone any suggestions?

regards
Daman
 

RealHeavyDude

Well-Known Member
You never mentioned the Progress/OpenEdge version you are using and the OS of the server and clients we are talking of.

This is essential information as to what Progress utilities are installed and ready to use for you.

On the other hand, why do you think you need to install the "SQL tool" on the server as such a tool should be able to connect to the database remotely?

Heavy Regards, RealHeavyDude.
 

Damanindahaus

New Member
sorry bro, u r right. all info i could get where these:
- os: Windows Server 2003
- i don't know the version of the openedge but i found this:
PROGRESS Dictionary
Version 9.1D
POSSE Version 2.0
Copyright (c) 1984-2010 Progress Software Corp.
All rights reserved

i hope these infos help

regards
Daman
 

RealHeavyDude

Well-Known Member
BTW, with version 10 Progress re-branded it to OpenEdge, therefore it's not called Progress V10 - instead it's called OpenEdge 10 ...

To say it with Tom's words, Progress 9.1d is ancient, obsolete and unsupported ...

But, you are lucky, Progress V9 contains a GUI version of the SQL Explorer. You should have an SQL explorer icon in the Progress program group ...

Heavy Regards, RealHeavyDude.
 

TomBascom

Curmudgeon
9.1D... ancient, obsolete and unsupported. Usually there is an application that was purchased. Telling us what that application is might also be useful information.


Progress is not SQL. The longer you keep trying to work with it as if it is SQL the more frustrated you will become. The is a SQL-92 engine which is handy for reporting tools but applications don't usually use that interface -- if the app is written in the 4GL it is using the 4GL engine. Those SQL-89 statements that are embedded in the 4GL are either "marketing check-offs" or they were intended to drive real SQL programmers nuts. It's hard to say which ;)

System tables (the "meta schema") have names that begin with "_". To get a list of those tables from the procedure editor you can use code like this:

Code:
for each _file no-lock where _file._file-name begins "_":
  display _file.
end.

(Of course that's a very basic view.)

("Table" = "file", "column" = "field".)

Or you could go into the data dictionary and run the reports that you will find there.
 
Top