Hi Andrew

Because UniVerse dictionaries contain not only solid column definitions, but
also synonyms and virtual fields, you have to choose which of these will be
exposed for ODBC or similar relational protocols. A typical dictionary for a
mature system might have a thousand entries which makes navigating these in
something like MS query or the .NET data set designer very difficult!

So for this you need to do two things:

First, create a phrase named @SELECT. This is a dictionary entry in the
format:

Key: @SELECT
1: PH
2: list of fields SPACE delimited.

You can test this out by doing a SELECT * from file at TCL, which uses the
same phrase.

Then, you need to update the file information cache used by ODBC (prevents
it having to scan every dictionary on connect). For this, run the
HS.UPDATE.FILEINFO command after making your changes.

However, you might also want to step back and consider whether ODBC is
really your best choice. To use ODBC effectively you need to understand
about dynamic normalizing and the differences between the UniVerse data
model and the relational model expected by ODBC. Depending on what you wish
to do, ODBC may tie you up in knots and you may be better off looking at one
of the native protocols (the UniObjects family) or web services instead.

Also, I don't know why you chose to copy your VOC across. That will contain
pointers to all the files from the original system, which you don't have on
yours,  hence the large number of errors you are seeing. If you are brave,
you can try a CLEAN.ACCOUNT command, but take a backup first!

[AD]
You might want to consider my latest book, 'IBM UniVerse Client Developer'
(written when this was still an IBM product) which covers the various
protocols in depth. You can find details on my website,
www.brianleach.co.uk.
[/AD]

Regards

Brian 

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Andrew E.
Tegenkamp
Sent: 02 February 2010 4:17 PM
To: 'U2 Users List'
Subject: Re: [U2] Resize Question

Thank you very much! That has helped a lot and I can now see the data in the
UV command line :)

If possible, I am now hoping to be able to expose this imported data to ODBC
so I can work with it in PHP, etc. But I am again finding problems I cannot
find an answer for in the help docs or searching the list archive.

First, I created a PICK account using the U2UG guide mentioned. I then used
HS.ADMIN option 3 to "Activate access to files in an account" which went
well and showed it as an activated account.  

I copied over the TEMP and VOC (D_VOC, D_VOCLIB, VOC, VOCLIB, etc) files
from the live UniVerse server to my account as well as my test table ZIP
(ZIP and D_ZIP). I fnuxi'd and SET.INDEX'd them and could see the data on
the command line using SELECT COUNT(*) FROM ZIP and the like.

However, when I went to ODBC I could only see 3 tables. AE_DOC, HELP_FILE,
and HS_FILE_ACCESS (ODBC reported no rows in HS_FILE_ACCESS). I ran HS.ADMIN
option 3 again on the account and for most things it said:

        Could not open file FILENAME.  STATUS() = -2
          "FILENAME" was not written into File Information Cache.

For the file I copied over, ZIP, it said: 

        ZIP's dictionary has no @ phrase or @SELECT phrase.
          "ZIP" was written into File Information Cache but
          may not behave as desired.

This is a little confusing as I thought D_ZIP was the dictionary file and
SELECT works on the command line. After this, I checked ODBC and saw the 3
above and one more table called UVMD. I am not sure what this was so I got
it but it appears to be a system table of some sort.


Thanks again for any tips on how to properly setup/expose this file/table to
ODBC!
Andrew





-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
Sent: Monday, February 01, 2010 11:55 AM
To: 'U2 Users List'
Subject: Re: [U2] Resize Question

Okay, a few things here...

First the index issue. When UniVerse creates an index on a file, it puts the
absolute pathname to the index into the file header. You will need to remove
this using the SET.INDEX command thus:

SET.INDEX filename TO NULL

Next, the file size:

The D_ZIP is the dictionary file. If you haven't fnuxi'd this, the modulus
in the file header will be in the wrong byte order, so the reported modulus
(16777216) is garbage. You will need to fnuxi D_ZIP as well.

Incidentally - 

Download the free daily admin guide from the U2UG website (under the Learner
Pack) for more details: here is a top level view -

The modulus is one of the two components of sizing a file, and refers to the
number of groups (pages) in the file. As it says, in personal edition there
is a limit to this value. This number is independent of the actual data
stored since a) it is the space reserved, so part may be empty, and b) you
can make the size of each group (page) - also known as the separation -
larger to store the data, it just makes the file less performant (and
affects things like locking). To change the modulus and separation, look at
the RESIZE command (HELP RESIZE).

Brian





 

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Andrew E.
Tegenkamp
Sent: 01 February 2010 4:15 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] Resize Question

I'd like to preface this by saying I am a UniVerse newbie. 

Ideally, I am trying to import some data into a personal edition UniVerse
database but I am having some trouble. One example is a ZIP code lookup
called ZIP.

First, I copied the files in from a UNIX system to a Windows install of
Personal Edition. Not ideal but not sure if it's a deal-breaker as yet so
I'm moving on...

Then, I did fnuxi VOC and fnuxi ZIP. VOC was fine but on ZIP I got a warning
the secondary indices are defined in a unix location and if necessary, use
SET.INDEX to update file header to correct locations.  I am not sure how to
use SET.INDEX so I have not done anything with that.

Now I go to UniVerse and get "Your VOC is out of date. Update to current
release (Y/N)? If I select Yes, I get an error about &TEMP& being in my VOC
file but unable to create it. I believe this is because I do not have all
the data copied over from the live UniVerse server, so I select No and get
"Unable to open the operating system file "OC.O/LOGON.TESTER" where TESTER
is the account name logging on. That gives me a prompt so I can do
ANALYZE.FILE ZIP and I see the file type is 18, modulo is 4507 and
separation is 1. There are 44,098 records.

Then I try a "SELECT ST FROM ZIP" to get the states and I get an error
saying "File "D_ZIP" has modulo 16777216 which is > 10007. Please resize it
to modulo <= 10007 in order to use it in Personal Edition."

I have tried running RESIZE of various file types, modulo, and separation,
but I still get the error on D_ZIP every time. I have no idea how to get
D_ZIP down to <= 10007 or if it is even possible, or if the records being
44k+ means I cannot view it in personal edition or what exactly is going 
44k+ on
with this.

Can anyone help me past this or tell me why I can't get past it?

Thanks for any tips for a newbie,
Andrew

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.733 / Virus Database: 271.1.1/2660 - Release Date: 01/31/10
19:35:00

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.733 / Virus Database: 271.1.1/2662 - Release Date: 02/01/10
12:37:00

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to