Re: [U2] Rgarding ED editor

2014-04-17 Thread Martin Phillips
Hi Shanmukh,

Do you really mean ED?

The ED command in Unidata starts the underlying operating system editor. By 
default, this is vi on Linux and the MS-DOS editor on
Windows. So, to answer your question, we need to know which system your are on.

I have encountered many users who amend their VOC so that ED actually runs the 
AE editor which is part of Unidata itself.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Shanmukh Nandha
Sent: 17 April 2014 10:48
To: u2-users@listserver.u2ug.org
Subject: [U2] Rgarding ED editor

Hello Friends,


Can any one help with ED editor docs in Unibasic Programming language

Thank you,
Shanmukh
___
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


[U2] [Ad] Training and Consultancy Services

2013-10-02 Thread Martin Phillips
U2 Training and Consultancy Services

Best known as the developers of the OpenQM multivalue database, Ladybridge 
Systems also provides on-site training and consultancy
services to QM and U2 sites in the UK at highly competitive prices.

We were contracted by VMark, Ardent Software, Informix and IBM to deliver their 
standard U2 courses at their UK training centre.
Alongside this, we have our own course materials that have been used to deliver 
on-site courses to U2 clients of all sizes.

Our courses follow a modular design and elements can be combined to form 
bespoke courses that meet your specific requirements.
Training in additional topics can also be arranged.
The most popular two course packages are summarised below. Visit 
www.ladybridge.org/training.htm for more details of these and other
courses.

UniVerse/Unidata Introduction (3 or 4 day versions) 
• The multivalue data model
• The command environment
• The file system. File types and sizing
• The editor
• The VOC file
• Dictionaries: D, A and S-type records
• Dictionaries: I-type records
• Query processing
• Alternate key indices
• The VOC file: Paragraph development
• Menus (four day format only)
• Database design exercise (four day format only)

UniVerse/Unidata Programming (5 days) 
• The multivalue data model
• Language use and structure
• Variables, statements and functions
• Terminal handling
• Conditional execution and looping
• File handling
• Data conversion and formatting
• Data manipulation: string functions
• Data manipulation: dynamic arrays
• Matrix file i/o
• Select lists
• External subroutines
• Command execution
• Alternate key indices
• User written functions
• I-type execution
• Printing
• Sequential files
• The debugger

Please email train...@ladybridge.com to discuss training options or to book a 
course. For consultancy quotations, please email
sa...@ladybridge.com.

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


Re: [U2] Select from one file with save-list from another file

2013-08-28 Thread Martin Phillips
Hi,

Long ago, I wrote an OUTERJOIN() function that could be called from an I-type 
using the SUBR(). This became a built-in function in
QM but I think that the source code I have tracked down and shown below for the 
UniVerse version is about right.

subroutine ojoin(result, file.name, index.name, indexed.value)
   common /ojoin/fname, fvar

   result= ''

   if fname # file.name then
  open file.name to fvar else
 display 'Cannot open ' : file.name
 return
  end
   end

   selectindex index.name, indexed.value from fvar to 10
   if status() then
  display 'Index ' : index.name : ' not present in ' : file.name
  return
   end

   readlist var from 10 else then result = lower(var)
   return
end


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno
Sent: 28 August 2013 13:18
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Select from one file with save-list from another file

Not sure where to toss this into this thread so I'll start at the
beginning. I wanted to see the solutions that would be offered. I
blogged on exactly this topic back in 2008. The solution I published
for D3 uses @environment variables to allow us to do inner queries
with a tiny bit of simple and reusable code, no dict items, no work
files, and no save-lists. Perhaps someone can describe the
UD/UV-specific equivalents so that we can accomplish this here using
similar methods? I'll be happy to add the U2 solution to the blog for
future reference.
http://Nebula-RnD.com/blog/tech/mv/2008/03/d3shell1.html



Tony Gravagno   
Nebula Research and Development 
TG@ remove.pleaseNebula-RnD.com 
http://Nebula-RnD.com/blog  
http://LinkedIn.com/in/TonyGravagno 
http://Twitter.com/TonyGravagno 
http://PickWiki.com 
http://groups.google.com/group/MVDBMS   
http://www.LinkedIn.com/groups/Pick-Users-Group-64935   
http://BitBucket.org/FOSS4MV/



 From: Hilk, Brandon 
 UniVerse 10.1, HP/UX, Pick.
 Is there a way I can build a save-list from a selection from one
file
 X.INFO (where the record ID is an 8 digit number) and use that list
to
 select from file Y.INFO (where that 8 digit number is not the record
ID
 but does exist as a foreign key elsewhere in the file). In SQL
this
 would be considered a join and would look something like this:
 
 select *
 from X.INFO, Y.INFO
 where X.INFO.packet.id=Y.INFO.packet.id
 and X.INFO.status='ccc';
 
 I can run this in TCL and have it return the results I want but
can't build
 a save-list from it because I don't know the UniVerse/SQL syntax to
do
 so.
 
 So to summarize, is there a way to use a save-list built from X.INFO
to
 make another save-list comprised of the record ID's from Y.INFO?


___
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


Re: [U2] Select from one file with save-list from another file

2013-08-28 Thread Martin Phillips
Hi again,

Spotted a bug - I knew this would turn out to be the wrong source code!!

When opening a new file, the filename should be copied to fname.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips
Sent: 28 August 2013 13:55
To: 'U2 Users List'
Subject: Re: [U2] Select from one file with save-list from another file

Hi,

Long ago, I wrote an OUTERJOIN() function that could be called from an I-type 
using the SUBR(). This became a built-in function in
QM but I think that the source code I have tracked down and shown below for the 
UniVerse version is about right.

subroutine ojoin(result, file.name, index.name, indexed.value)
   common /ojoin/fname, fvar

   result= ''

   if fname # file.name then
  open file.name to fvar else
 display 'Cannot open ' : file.name
 return
  end
   end

   selectindex index.name, indexed.value from fvar to 10
   if status() then
  display 'Index ' : index.name : ' not present in ' : file.name
  return
   end

   readlist var from 10 else then result = lower(var)
   return
end


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] Select from one file with save-list from another file

2013-08-28 Thread Martin Phillips
Hi Tony,

Not one of my greater postings. I tidied it up a bit but seem to left a stray 
ELSE in place.

3/10 could try harder!!


Martin

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno
Sent: 28 August 2013 15:04
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Select from one file with save-list from another file

This line caught my eye:
 readlist var from 10 else then result = lower(var)

else then ?

I get it, but ... yuck. :)

T

 From: Martin Phillips 
 Spotted a bug - I knew this would turn out to be the wrong source
 code!!...


___
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


Re: [U2] What is true

2013-08-01 Thread Martin Phillips
Not odd at all. The language defines the relational operators as performing a 
numeric comparison if both items being compared are
numbers or can be treated as numbers.

It is valid for a numeric string to include leading or trailing spaces.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ed Clark
Sent: 01 August 2013 14:41
To: U2 Users List
Subject: Re: [U2] What is true

Do people from Wales take well to being called British? Sadly, almost 
everything I know about Wales comes from watching Torchwood
and Gavin and Stacy

A curious feature of true and false on universe:

0001 x=char(32)
0002 if x=0 then crt 'is zero' else crt 'not zero'
0003 if x then crt 'true' else crt 'false'
0004 x:=0
0005 if x=0 then crt 'is zero' else crt 'not zero'
0006 if x then crt 'true' else crt 'false'

space is true, but space:zero is false.


On Aug 1, 2013, at 8:24 AM, Jim Swain jsw...@zafire.com wrote:

 This is not true as when A='HELLO'  IF (A) returns true.
 
 You use the parenthesis to set a Boolean variable, i.e  BRITISH = (COUNTRY = 
 'ENGLAND' OR COUNTRY = 'WALES')  etc   the var
BRITISH is set to 1 when the conditions inside the parenthesis are met, 
otherwise BRITISH is set to 0
 
 
 
 
 Jim Swain - Developer
 Telephone: +44 (0) 1295 701 810  | Fax: +44 (0) 1295 701 819
 
 www.zafire.com
 
 Consider the environment.  Think before you print.
 
 This is a commercial communication from Zafire Group.
 This communication is confidential and is intended only for the person to 
 whom it is addressed. If you are not that person you are
not permitted to make use of the information and you are requested to notify us 
immediately that you have received it and then
destroy the copy in your possession.  Zafire Group may monitor outgoing and 
incoming e-mails.  By replying to this e-mail you
consent to such monitoring.  This e-mail message and any attached files have 
been scanned for the presence of computer viruses.
However, you are advised that you open attachments at your own risk.
 
 Zafire Limited is a limited liability company registered in England and 
 Wales. Co. Reg. No. 3968255. Our registered address is
Zafire House, Manor Park, Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 754 0161 
55. Zafire Aviation Software Limited is a limited
liability company registered in England and Wales. Co. Reg. No. 05577742. Our 
registered address is Zafire House, Manor Park,
Banbury, Oxfordshire OX16 3TB. VAT Reg.No. 874 5890 70
 
 If you have any concerns regarding the content of this e-mail please contact 
 postmas...@zafire.com
 
 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org 
 [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore
 Sent: 01 August 2013 13:17
 To: U2 Users List
 Subject: Re: [U2] What is true
 
 Hi,
 To add a little more to the discussion.  I know in UniVerse this is true and 
 I suspect it is true in other flavors of Pick.
 
 If you wrap a variable in parenthesis it will be treated as a Boolean test.  
 For example:
 
 A=''
 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE'   will result in FALSE.
 A=0
 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE'   will result in FALSE.
 A='HELLO'
 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE'   will result in TRUE.
 A=1
 IF (A) THEN CRT 'TRUE' ELSE CRT 'FALSE'   will result in TRUE.
 
 I have found this useful in coding.
 
 Tom Whitmore
 RATEX Business Solutions
 
 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org 
 [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
 Sent: Thursday, August 01, 2013 4:40 AM
 To: 'U2 Users List'
 Subject: Re: [U2] What is true
 
 To clarify
 
 In multivalue, True is not False, where False is anything that is 'falsy'
 i.e. zero or empty.
 Obviously different than other languages, notably those where true is -1 (all 
 bits set on a signed integer).
 
 So:
 
 A = HELLO
 IF A THEN CRT A : WORLD
 
 Gives HELLO WORLD
 
 Regarding file variables, the best way to check for these being assigned on 
 UniVerse is to use FILEINFO().
 
 If FileInfo(SomeUnassignedVariable, 0) Then
   Crt This is an open file variable
 End Else
   Crt This isn't
 End
 
 Brian
 
 
 ___
 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
 ___
 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

Re: [U2] What is true

2013-08-01 Thread Martin Phillips
 on universe (not sure of unidata), you can use FILEINFO() to see if something 
 is a file variable:

 x=
 crt fileinfo(x,0)

 returns 0. Would return 1 for an open file.

This originated in Prime Information and is available on UniVerse, UniData, 
PI/open, QM, and probably a few others.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




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


Re: [U2] What is true

2013-08-01 Thread Martin Phillips
Hi again,

I have been on a site where they insisted that
   A = B = C
should be written as
   A = B EQ C
to emphasise that the second operator is a relational test.

Personally, I use
   A = (B = C)
even though the brackets serve no purpose. It just helps when reading the code.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] What is true

2013-07-31 Thread Martin Phillips
Hi,

 About the true/false thing, I always use 0 and 1 but I was chastised
 about that by a colleague recently, that it might not be completely
 cross-platform, and now I stutter on it every time I do that,
 wondering if I'm not really following a best practice 

I seem to recall this same topic being discussed a year or two back, perhaps in 
a different group.

In the multivalue world, the language definition says that anything that 
returns true/false returns 1 for true, 0 for false.
Anything that interprets a value as true/false treats zero and a null string as 
false, everything else as true. This definition
holds for all multivalue products but not necessarily in other languages. Any 
new multivalue product that breaks this definition is
probably doomed to failure because migration of existing applications would 
become a nightmare task.

In our type variant world where we have no such thing as a Boolean data type, 
it is very easy to write statements such as
   INVOICED = 1

Is INVOICED a Boolean variable, perhaps telling us in this case that an invoice 
has been raised? Or, is it a state flag with
multiple values for which this might be indicating a type of invoice that has 
been sent? There is no way for the reader to tell.

At risk of starting a whole new discussion on programming style (and I start 
form the viewpoint that there are many acceptable
styles, it is more important to be consistent), this is probably best resolved 
by use of tokens. I have for many years held an
interesting opinion that a program should never have any hard coded numeric 
values except perhaps zero, not that I adhere rigidly to
my own opinion. The above line becomes something like
   INVOICED = TRUE
or
   INVOICED = INV.PDF

Now, all is clear(er) to the reader.

Prime Information introduced @FALSE and @TRUE as symbolic constants (0 and 1 
respectively) to avoid the need for our own equated
tokens and several other multivalue products have followed this convention.

Of course, nothing is ever completely black and white. As multivalue Basic has 
developed, internal data types have gone beyond
simply numbers and strings. If I write
   IF FVAR THEN ...
where FVAR is a file variable, what do I expect this to do? The language 
definition does not tell us but most multivalue products
would give us a data type error of some sort because there is no rule for 
transforming a file variable to a Boolean value.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


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


Re: [U2] What is true

2013-07-31 Thread Martin Phillips
Hi,

The query processor defines WITH fieldname that has no relational operator as 
a test for non-null so this is not the same as a
true/false test. Again, as far as I know, this is the same across all 
multivalue products.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson
Sent: 31 July 2013 11:46
To: U2 Users List
Subject: Re: [U2] What is true

And then there's the query language:

Suppose INVOICED field is supposed to be true or false.  Stored as 1 or 
0, but maybe left null in some records (We've all been there.):

  SELECT CUSTOMER WITH INVOICED

If INVOICED is 0 or null, will said CUSTOMER record be selected or not?
UV selects if 0,  but excludes if null.
Do all MV platforms work that way?


On 7/31/2013 11:06 AM, Martin Phillips wrote:
 Hi,

 About the true/false thing, I always use 0 and 1 but I was chastised
 about that by a colleague recently, that it might not be completely
 cross-platform, and now I stutter on it every time I do that,
 wondering if I'm not really following a best practice
 I seem to recall this same topic being discussed a year or two back, perhaps 
 in a different group.

 In the multivalue world, the language definition says that anything that 
 returns true/false returns 1 for true, 0 for false.
 Anything that interprets a value as true/false treats zero and a null string 
 as false, everything else as true. This definition
 holds for all multivalue products but not necessarily in other languages. Any 
 new multivalue product that breaks this definition
is
 probably doomed to failure because migration of existing applications would 
 become a nightmare task.

 In our type variant world where we have no such thing as a Boolean data type, 
 it is very easy to write statements such as
 INVOICED = 1

 Is INVOICED a Boolean variable, perhaps telling us in this case that an 
 invoice has been raised? Or, is it a state flag with
 multiple values for which this might be indicating a type of invoice that has 
 been sent? There is no way for the reader to tell.

 At risk of starting a whole new discussion on programming style (and I start 
 form the viewpoint that there are many acceptable
 styles, it is more important to be consistent), this is probably best 
 resolved by use of tokens. I have for many years held an
 interesting opinion that a program should never have any hard coded numeric 
 values except perhaps zero, not that I adhere rigidly
to
 my own opinion. The above line becomes something like
 INVOICED = TRUE
 or
 INVOICED = INV.PDF

 Now, all is clear(er) to the reader.

 Prime Information introduced @FALSE and @TRUE as symbolic constants (0 and 1 
 respectively) to avoid the need for our own equated
 tokens and several other multivalue products have followed this convention.

 Of course, nothing is ever completely black and white. As multivalue Basic 
 has developed, internal data types have gone beyond
 simply numbers and strings. If I write
 IF FVAR THEN ...
 where FVAR is a file variable, what do I expect this to do? The language 
 definition does not tell us but most multivalue products
 would give us a data type error of some sort because there is no rule for 
 transforming a file variable to a Boolean value.


 Martin Phillips
 Ladybridge Systems Ltd
 17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
 +44 (0)1604-709200


___
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


[U2] [AD] Training Services

2013-07-22 Thread Martin Phillips
U2 Training Services

 

Best known as the developers of the OpenQM multivalue database, Ladybridge 
Systems also provides on-site training services to QM and
U2 sites in the UK.

 

We were contracted by VMark, Ardent Software, Informix and IBM to deliver their 
standard U2 courses at their UK training centre.
Alongside this, we have our own course materials that have been used to deliver 
on-site courses to U2 clients of all sizes.

Our courses follow a modular design and elements can be combined to form 
bespoke courses that meet your specific requirements.
Training in additional topics can also be arranged.

The most popular two course packages are summarised below. Visit 
www.ladybridge.org/training.htm for more details of these and other
courses.

 


UniVerse/Unidata Introduction (3 or 4 day versions)   (more 
http://www.ladybridge.org/cgi/lbscgi.exe?T0=ht1=u2introduction .)


*   The multivalue data model
*   The command environment
*   The file system. File types and sizing
*   The editor
*   The VOC file
*   Dictionaries: D, A and S-type records
*   Dictionaries: I-type records
*   Query processing
*   Alternate key indices
*   The VOC file: Paragraph development
*   Menus (four day format only)
*   Database design exercise (four day format only)

 


UniVerse/Unidata Programming (5 days)   (more 
http://www.ladybridge.org/cgi/lbscgi.exe?T0=ht1=u2programming .)


*   The multivalue data model
*   Language use and structure
*   Variables, statements and functions
*   Terminal handling
*   Conditional execution and looping
*   File handling
*   Data conversion and formatting
*   Data manipulation: string functions
*   Data manipulation: dynamic arrays
*   Matrix file i/o
*   Select lists
*   External subroutines
*   Command execution
*   Alternate key indices
*   User written functions
*   I-type execution
*   Printing
*   Sequential files
*   The debugger

 

Please email train...@ladybridge.com to discuss training options or to book a 
course.

 

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


Re: [U2] UniVerse LPTR

2013-07-08 Thread Martin Phillips
Hi Bill,

Take a look at SETPTR.DEFAULT


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 19:36
To: 'U2 Users List'
Subject: [U2] UniVerse LPTR

Where can I change the default printer?  We have an HP-Ux machine.

--Bill Brutzman

___
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


Re: [U2] UniVerse LPTR

2013-07-08 Thread Martin Phillips
Hi Bill,

It's in the UV account only. It sets the defaults by copying printer 0 settings 
into shared memory. To use it, do something like
   SETPTR 0,1,AT LASER
   SETPTR.DEFAULT

The problem with this is that it isn't saved between UV restarts so you may 
need to set up a paragraph that runs as the machine is
booted.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 19:47
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

SETPTR.DEFAULT not in VOC.

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips
Sent: Monday, July 8, 2013 2:45 PM
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

Hi Bill,

Take a look at SETPTR.DEFAULT


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 19:36
To: 'U2 Users List'
Subject: [U2] UniVerse LPTR

Where can I change the default printer?  We have an HP-Ux machine.

--Bill Brutzman

___
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

___
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


Re: [U2] UniVerse LPTR

2013-07-08 Thread Martin Phillips
Hi again Bill,

You can execute a paragraph when UV is started by arranging to execute
UV paragraph.name
from the operating system level in the UV account as you bring up the system.


Martin

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 21:19
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

Thanks to Martin, Phil, and Anthony.

The SETPTR and then SETPTR.DEFAULT is the way to go.

I am remembering the ugh when the server is reBoots... the settings
vanish.

Of course, this LPTR command appears in a legacy script.

Perhaps I can insert a little SETPTR 0...etc into the script so that we can
bypass the server reboot problem.

Comments would be appreciated.

--Bill

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips
Sent: Monday, July 8, 2013 2:57 PM
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

Hi Bill,

It's in the UV account only. It sets the defaults by copying printer 0
settings into shared memory. To use it, do something like
   SETPTR 0,1,AT LASER
   SETPTR.DEFAULT

The problem with this is that it isn't saved between UV restarts so you may
need to set up a paragraph that runs as the machine is booted.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 19:47
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

SETPTR.DEFAULT not in VOC.

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips
Sent: Monday, July 8, 2013 2:45 PM
To: 'U2 Users List'
Subject: Re: [U2] UniVerse LPTR

Hi Bill,

Take a look at SETPTR.DEFAULT


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: 08 July 2013 19:36
To: 'U2 Users List'
Subject: [U2] UniVerse LPTR

Where can I change the default printer?  We have an HP-Ux machine.

--Bill Brutzman

___
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

___
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

___
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


Re: [U2] Running total

2013-07-04 Thread Martin Phillips
 From Martin's response, I'm guessing not for QM, either.

In QM, the @1, @2, etc variables are simply local variables within the I-type 
expression. This gives us the useful advantage of
being able to nest compound I-type but does, as you suggest, prevent their use 
to retain values across uses of the I-type.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



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


Re: [U2] Running total

2013-07-02 Thread Martin Phillips
Hi,

 

As far as I know, the only way to do this in U2 is to use either a common 
variable or one of the @USERn variables in a subroutine to
accumulate the result. Handling multi-values is not hard (as below). Getting 
this to work for breakpoint lines is a bit more
awkward.

 

For example, using UniVerse's demonstration sales database (INITIALIZE.DEMO), I 
can create an I-type named ACCUM that reads

   I

   subr('ACCUMULATE', ITEM.TOTAL)

   MD2

   Cumulative

  8R

   M

   BOUGHT

 

and a program catalogued as ACCUMULATE

 

function accumulate(item)

   common /total/tot

 

   if @ni = 1 then tot = 0

 

   x = ''

   n = dcount(item, @vm)

   for i = 1 to n

  tot += item1,i

  x1,i = tot

   next i

 

   return (x)

end

 

I can then do

   LIST ORDERS PROD.NO SELL QTY ITEM.TOTAL ACCUM

 

@ID..  Product No  Sell.  Qty.  Item Total  Cumulative

 

10002 605 $40.00 1  $40.00   40.00

  501  $5.00 1   $5.00   45.00

  502  $5.00 1   $5.00   50.00

  504  $5.00 1   $5.00   55.00

10006 112  $6.00 3  $18.00   73.00

10004 704$115.00 1 $115.00  188.00

  301 $10.00 9  $90.00  278.00

10005 502  $5.00 9  $45.00  323.00

10003 202  $5.0010  $50.00  373.00

  204  $5.0010  $50.00  423.00

10001 112  $6.00 7  $42.00  465.00

  418 $27.00 4 $108.00  573.00

  704$115.00 1 $115.00  688.00

10007 301 $10.00 3  $30.00  718.00



 

Maybe Rocket can be persuaded to implement the CUMULATIVE field modifier 
keyword that we have in QM to make this trivial

 

 

Martin Phillips

Ladybridge Systems Ltd

17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England

+44 (0)1604-709200

 

 

 

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: 02 July 2013 01:36
To: u2-users@listserver.u2ug.org
Subject: [U2] Running total

 

Teach me again how to do a running total in a Access/Recall/English report.

I haven't done one in years, but I seem to recall that it's possible.

 

 

___

U2-Users mailing list

 mailto:U2-Users@listserver.u2ug.org U2-Users@listserver.u2ug.org

 http://listserver.u2ug.org/mailman/listinfo/u2-users 
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


Re: [U2] Running total

2013-07-02 Thread Martin Phillips
Hmmm.

Simpler than my approach but it fails with multivalues or with queries that 
have other I-types in them.


Martin

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson
Sent: 02 July 2013 13:07
To: U2 Users List
Subject: Re: [U2] Running total

LIST NEWACC BYTES EVAL BYTES+@2;@
VOC. Bytes.. BYTES+@2;@

ADDX  47 47
CHDIR 53100
ENDPAGE   54154
LNUM  64218


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


Re: [U2] History of Prime Information

2013-06-12 Thread Martin Phillips
 I can add that I think VMark rewrote Prime Information in C which really 
 boosted the performance.  I think they called it Prime Info or something 
like that.

I'm not sure about this. As far as I know, once VMark took ownership of Prime 
Information, they gently retired it.

Are you thinking of PI/open? If so, I was one of the technical managers for its 
development.

PI/open started life in Prime Australia where the intention was to write it 
using a macro assembler called K9. Shortly after they
got started, Prime Australia was closed and development moved to the UK. I took 
a look at K9 and decided that it was the wrong way
to go as it made assumptions about the underlying processor architecture that 
were not necessarily valid if we wanted portability
without massive rewriting efforts. I made a decision that the core of PI/open 
would be written in C. This was highly contentious. I
can recall a project meeting in which the VP of Engineering stated that my 
continued employment was dependent on this being
successful.

At the time, Prime's C compiler was not good and there was much doubt about 
whether it would produce good code. One of my team was
tasked with finding a good C compiler. He took the interesting approach of 
constructing a very devious program that used all manner
of C operations to construct and display the ubiquitous Hello World string. 
Comparison of the resulting object code from a variety
of compilers showed that some were not that good whereas one of them evaluated 
the entire process within the compiler and just
generated a print of the literal string.

A few performance critical bits of PI/open were still written in assembler but 
I put a rule in place that there must be a C
equivalent too.

It is interesting to note that just a few weeks before first release the 
marketing guys decided to change the platform on which it
would be launched. If we had gone the assembler route, this would have imposed 
a huge delay. With C, it took just a few changes to
recompile everything.

Phew! I still had a job.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



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


Re: [U2] Unidata Index question

2013-05-23 Thread Martin Phillips
Hi Jeff,

1) If I have an index built for a given field FOO, and perform a query 
with like such as FOO LIKE 'ABC...'  does it benefit from the 
index?  Or is it only queries with equality conditions that benefit from 
the index (eg: FOO EQ 'ABC' )?

An index can be used for a LIKE comparison with a literal element at the start 
but not if the ... is at the start.


2) If I have an index built with Empties=NO and then query with that 
indexed field =, how does it handle the query? Does it not use the 
index at all?

Because the condition would be met by a null field and you have disabled 
indexing of null items, the index will not be used.

Beware of queries like
   WITH FLD  4
when using NO.NULLS as again the condition is met by a null item, preventing 
use of an index, whereas
   WITH FLD  4
could use an index.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



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


Re: [U2] List..

2013-03-26 Thread Martin Phillips
Hi Sathva,

You can do this in various ways, the simplest is probably to add a conversion 
code of G*1 in the @ID dictionary item.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Sathya
Sent: 26 March 2013 14:32
To: u2-users@listserver.u2ug.org
Subject: [U2] List..

Hi all,..

I have a small issue in listing a file. When I use LIST FILENAME, the data 
comes like 
123456*001
123456*001. 

I would like to display the data as 
123456
123456

Can someone please help me in doing this?

TIA, 
Sathya V. 


___
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


Re: [U2] Date conversion..

2013-03-22 Thread Martin Phillips
Hi,

Try
   OCONV(DATE(),'DDMY[,A,Z4]')


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jonathan Leckie
Sent: 22 March 2013 10:15
To: 'U2 Users List'
Subject: Re: [U2] Date conversion..

I always use :

OCONV(DATE(),'DDMY,A,Z4')

In data that is going to a spreadsheet, it means Excel knows it is a date and 
stops Excel changing the format to American (we are
based in the U.K.).


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Sathya
Sent: 22 March 2013 7:30 am
To: u2-users@listserver.u2ug.org
Subject: [U2] Date conversion..

Hi experts..

I have one problem in creatin a spreadsheet report with date format. One of the 
column in the spreadsheet is a date and it is
displaying as numbers. Please help me in printing it as a date. 

BTW I'm using OCONV to write the value to the column. 

TIA,
Sathya V. 

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




Blairs Windows Limited is a company registered in Scotland.
Company No: SC393935. Registered office: 9 Baker Street,
Greenock, PA15 4TU. V.A.T. registration No: 108729111

___
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


Re: [U2] Replacements for Old SB?

2013-03-13 Thread Martin Phillips
Hi,

The Nucleus product from BinaryStar (www.binarystar.com/nucleus.html) can 
import SB projects. This is the recommended route for SB
users migrating to QM and is probably equally applicable for users migrating to 
other platforms supported by Nucleus.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] Advantage of indirect call in BASIC

2012-12-04 Thread Martin Phillips
Hi,

A direct call has to be looked up once in the catalogue system when it is first 
used. Subsequent calls will be fast because the link
has been created. However, if the call is itself in a subroutine and that 
subroutine exits, it starts clean again on next call and
hence may need to rebuild the link. I say may need to because there are 
various layers of caching that speed all this up.

An indirect call starts out with a string variable. The first call will do the 
catalogue search, link the program, and replace the
string with a variable that acts as a fast link to the subroutine. The link 
only needs to be rebuilt if the variable is overwritten
or discarded. This means that putting the indirection variable in a common 
block that is only initialised once will do the catalogue
search only once. Resetting the variable (local or common) before every call 
will require the search every time, though again
caching may help.

Long ago, I did some performance comparisons on UV when delivering an Internals 
course. I have lost the results but I seem to recall
that it was well worth using links in common for subroutines that are called 
enormous numbers of times.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green
Sent: 04 December 2012 14:01
To: 'U2 Users List'
Subject: Re: [U2] Advantage of indirect call in BASIC

Does anyone have any current benchmarks on this type of call?  Several years
ago when I tested it in UniData it was very slow call compared to using the
name.

David A. Green
(480) 813-1725
DAG Consulting

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Monday, December 03, 2012 5:39 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] Advantage of indirect call in BASIC

I've not encountered this is my career previously, but now I'm seeing a
system written almost entirely with the use of indirect calls in Universe
BASIC.

That is
SOURCE = *SOME.PROGRAM
...
CALL @SOURCE(INPUTS)

Is there some advantage to the use of indirect calls that a system would be
written entirely in this fashion?


___
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

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


Re: [U2] BFORMAT

2012-11-29 Thread Martin Phillips
Hi,

  There's some wacky stuff it's doing with memory in that ED program, I can't 
 figure out what they are trying to do
 Of course it was originally written in 1992 as a port of the PI/Open Editor

I remember this being implemented from my days in PI/open development. It was 
all about performance when editing very large items.

If the data was stored as a single dynamic array, processing is easy but 
becomes painfully slow with massive records. I recall
comparing ED with another editor that did not break the data up in this way. 
When the data was over 100,000 lines long (I cannot
remember what this huge item was), the performance difference was huge.

Although processors are now a lot faster than when this was written over 20 
years ago, the gains are still worth having.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] Variable Interpolation

2012-08-24 Thread Martin Phillips
Hi,

I am intrigued by this thread, mostly because I have not understood why I would 
want it.

If I can write
   CALL @SUB FOO(X,Y);Y=X+1;RETURN( 3, VAL )
as suggested, why don't I just write the code inline in my program. What have I 
missed?


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] Virtualizing a Universe server of 100+ users

2012-08-21 Thread Martin Phillips
Hi,

 I saw a UNIVERSE job site recently have networked UV systems WITHOUT 
 using UV/NET. They used the networking built into the OS (Windows or 
 UNIX). Sounds good, right?
 
 Not until you realize that there was no record locking because the OS 
 had no concept of a UNIVERSE record.


It's worse than that. There is no group level locking which protects the 
pointers that link the internal structure of groups. Without group locks, the 
chances of corrupting a file are very high. Not just losing records but losing 
the structural integrity of the file.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



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


Re: [U2] Virtualizing a Universe server of 100+ users

2012-08-21 Thread Martin Phillips
Hi again,

 Well for networked UV systems, you would only need group and record locking
 *if* the UV systems were trying to write to each others hashed files.

Almost but there is still the possibility of the remote system reading a 
group for which the local system has a group write lock and is changing 
pointers.

I have in the past spent many happy hours fixing UV files where a client had 
accessed the same file from two system using a Unix mounted drive to access the 
remote file.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




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


Re: [U2] (no subject)

2012-07-31 Thread Martin Phillips
Hi,

Many of the recent printers, especially low cost USB printers, come without 
text mode drivers and only operate in GDI mode. They
appear to be printing, report success back to Windows, but nothing actually 
emerges from the printer.

This is well documented on the web. For situations where the application cannot 
do GDI, there are a few products out there that act
as middleware to connect a text mode program to a GDI printer. For example, see 
www.dosprn.com though I have not used this so I have
no opinion on it.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert
Sent: 31 July 2012 09:21
To: U2 Users List
Subject: Re: [U2] (no subject)

I used this command and printed just fine from UNIVERSE:

SETPTR ,,AT SAMSUNGM,GDI,BRIEF,FONTNAME Courier New

Thank you,

Robert Norman

On 7/28/2012 4:02 AM, Brian Leach wrote:
 Sounds like the printer is getting the job but doesn't understand what to do
 with it
 ..depending on the printer type it may need to use GDI calls.

 Try using

 SETPTR ,,AT myprintername,GDI

 Note; the first time you do a GDI print it takes forever to load the driver
 but after that it should be okay.

 (UniVerse)

 Brian

 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org
 [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert
 Sent: 28 July 2012 07:11
 To: U2 Users List
 Subject: [U2] (no subject)

 I have a question in regards to my brand new installs of the Personal
 Editions (evaluation copies) of both UNIDATA and UNIVERSE.

 I just downloaded and installed these versions:

 UNIVERSE PE 11.1.9
 UNIDATA PE 7.3.0

 I am unable to print anything to the printer. The laser printer turns on and
 blinks for a while, then the print job disappears from Windows as though it
 printed, but nothing prints. This is the case for both UNIDATA and UNIVERSE.

 Any ideas?

 I am in the process of setting up these environments for my personal use (I
 usually use REVELATION for the things I need done) and I usually use the
 client's version of Universe at their job site.

 Robert Norman
 .
 ROBERT NORMAN AND ASSOCIATES
 Address: 23441 Golden Springs Dr., #289, Diamond Bar, CA 91765 Phone  :
 951/541-1668 Email  : i...@keyway.net
 Website: http://users.keyway.net/~ice/
 [Affordable UNIVERSE programming services for PICK/BASIC, DATA/BASIC,
 UniVerse Basic, UniBasic, R/BASIC, jBC]

 ___
 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



___
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


Re: [U2] Passing dimensioned arrays

2012-07-27 Thread Martin Phillips
Hi,

 The line is simply ignored as if it were not even there.
 If you make it bigger, then try to list past the end, the runtime blows up.
 If you make it smaller, you can still address the end cells normally.
 It's really as if the line isn't present.  Don't ask me why it works that 
 way, but hey.

As I said in my previous posting, this is how the designers of Prime 
Information documented that it would work. Depending on the
flavour of UniVerse you select, you either get Information style matrices with 
this behaviour or Pick style matrices that have
different rules.

Incidentally, because it is clear that some developers might actually want to 
be able to redimension matrices that were passed as
arguments, we spent about five minutes adding a REDIM statement to QM yesterday 
that treats argument variables just like any others.
I find it hard to believe that it would be difficult for UV to do the same if 
the demand is there.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



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


Re: [U2] Array Types

2012-07-27 Thread Martin Phillips
Hi Jeff,

The answer depends partly on whether you are using UniVerse or Unidata.

In general, a dimensioned matrix will be faster because you can index directly 
to the required item, however, you have to trade this
against the cost of doing MATREAD or some equivalent to populate it. Also 
inserting and deleting items is tough.

A dynamic array requires the system to search for the desired element which 
clearly could take a long time if you want something at
the far end. Inserting and deleting, however, is very quick.

The UniVerse/Unidata difference is that UniVerse maintains a hint pointer 
that points to the last field that you extracted. Thus,
if you walk linearly from one end to the other (in either direction) it can use 
the hint as a starting point and get the result very
quickly. If you hop around all over the place, the advantage of the hint is 
lessened but usually still good.

My understanding is that Unidata does not support field hints.

The best thing is to try experiments with realistic data sizes and access it in 
the same way your application would.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


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


Re: [U2] RESIZE - dynamic files

2012-07-05 Thread Martin Phillips
Hi,

The various suggestions about setting the minimum modulus to reduce overflow 
are all very well but effectively you are turning a
dynamic file into a static one, complete with all the continual maintenance 
work needed to keep the parameters in step with the
data.

In most cases, the only parameter that is worth tuning is the group size to try 
to pack things nicely. Even this is often fine left
alone though getting it to match the underlying o/s page size is helpful.

I missed the start of this thread but, unless you have a performance problem or 
are seriously short of space, my recommendation
would be to leave the dynamic files to look after themselves.

A file without overflow is not necessarily the best solution. Winding the split 
load down to 70% means that at least 30% of the file
is dead space. The implication of this is that the file is larger and will take 
more disk reads to process sequentially from one end
to the other.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Chris Austin
Sent: 05 July 2012 15:19
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] RESIZE - dynamic files


I was able to drop from 30% overflow to 12% by making 2 changes:

1) changed the split from 80% to 70% (that alone reduce 10% overflow)
2) changed the MINIMUM.MODULUS to 118,681 (calculated this way - [ (record 
data + id) * 1.1 * 1.42857 (70% split load)] / 4096 )

My disk size only went up 8%..

My file looks like this now:

File name ..   GENACCTRN_POSTED
Pathname ...   GENACCTRN_POSTED
File type ..   DYNAMIC
File style and revision    32BIT Revision 12
Hashing Algorithm ..   GENERAL
No. of groups (modulus)    118681 current ( minimum 118681, 140 empty,
14431 overflowed, 778 badly )
Number of records ..   1292377
Large record size ..   3267 bytes
Number of large records    180
Group size .   4096 bytes
Load factors ...   70% (split), 50% (merge) and 63% (actual)
Total size .   546869248 bytes
Total size of record data ..   287789178 bytes
Total size of record IDs ...   21539538 bytes
Unused space ...   237532340 bytes
Total space for records    546861056 bytes

Chris



 From: keith.john...@datacom.co.nz
 To: u2-users@listserver.u2ug.org
 Date: Wed, 4 Jul 2012 14:05:02 +1200
 Subject: Re: [U2] RESIZE - dynamic files
 
 Doug may have had a key bounce in his input
 
  Let's do the math:
 
  258687736 (Record Size)
  192283300 (Key Size)
  
 
 The key size is actually 19283300 in Chris' figures
 
 Regarding 68,063 being less than the current modulus of 82,850.  I think the 
 answer may lie in the splitting process.
 
 As I understand it, the first time a split occurs group 1 is split and its 
 contents are split between new group 1 and new group 2.
All the other groups effectively get 1 added to their number. The next split is 
group 3 (which was 2) into 3 and 4 and so forth. A
pointer is kept to say where the next split will take place and also to help 
sort out how to adjust the algorithm to identify which
group matches a given key.
 
 Based on this, if you started with 1000 groups, by the time you have split 
 the 500th time you will have 1500 groups.  The first
1000 will be relatively empty, the last 500 will probably be overflowed, but 
not terribly badly.  By the time you get to the 1000th
split, you will have 2000 groups and they will, one hopes, be quite reasonably 
spread with very little overflow.
 
 So I expect the average access times would drift up and down in a cycle.  The 
 cycle time would get longer as the file gets bigger
but the worst time would be roughly the the same each cycle.
 
 Given the power of two introduced into the algorithm by the before/after the 
 split thing, I wonder if there is such a need to
start off with a prime?
 
 Regards, Keith
 
 PS I'm getting a bit Tony^H^H^H^Hverbose nowadays.
 
 ___
 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

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


Re: [U2] RESIZE - dynamic files

2012-07-02 Thread Martin Phillips
Hi Chris,

The whole point of dynamic files is that you don't do RESIZE. The file will 
look after itself, automatically responding to
variations in the volume of data.

There are knobs to twiddle but in most cases they can safely be left at their 
defaults. A dynamic file will never perform as well
as a perfectly tuned static file but they are a heck of a lot better than 
typical static files that haven't been reconfigured for
ages.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200




-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Chris Austin
Sent: 02 July 2012 20:22
To: u2-users@listserver.u2ug.org
Subject: [U2] RESIZE - dynamic files


I was wondering if anyone had instructions on RESIZE with a dynamic file? For 
example I have a file called 'TEST_FILE'
with the following:

01 ANALYZE.FILE TEST_FILE
File name ..   TEST_FILE
Pathname ...   TEST_FILE
File type ..   DYNAMIC
File style and revision    32BIT Revision 12
Hashing Algorithm ..   GENERAL
No. of groups (modulus)    83261 current ( minimum 31 )
Large record size ..   3267 bytes
Group size .   4096 bytes
Load factors ...   80% (split), 50% (merge) and 80% (actual)
Total size .   450613248 bytes

How do you calculate what the modulus and separation should be? I can't use 
HASH.HELP on a type 30 file to see the recommended
settings
so I was wondering how best you figure out the file RESIZE.

Thanks,

Chris

  
___
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


Re: [U2] Regarding: use of I - Descriptor

2012-06-26 Thread Martin Phillips
Hi Satya,

Although we deliver training to U2 clients in the UK, I suspect that you are in 
the US which makes our services irrelevant for you.
The obvious place to go for U2 training is Rocket Software but I do not know 
what courses they offer in the US.

If you are looking for some general multivalue training materials, most of the 
Teach Yourself QM course available from the downloads
page of the openqm.com web site is applicable to U2 though there are some 
significant differences. There may be other self-study
training packages available. Perhaps other readers of this mailing list will 
provide some details.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of satya satya
Sent: 26 June 2012 17:44
To: U2 Users List
Subject: Re: [U2] Regarding: use of I - Descriptor

Hi Martin,

Could you please let me know, to where i have to approach for Training. or
can you please suggest the best link to gain more knowledge on it

Thank you,
Satya.



On Mon, Jun 25, 2012 at 4:36 PM, Dawn Wolthuis dw...@tincat-group.comwrote:

 In SQL Server, I think it is called UDF = user-defined function

 --dawn

 On Mon, Jun 25, 2012 at 3:20 PM, Wols Lists antli...@youngman.org.uk
 wrote:
  On 25/06/12 17:47, Oaks, Harold wrote:
  Hi Satya:
 
  An I-descriptor is the same as an I-type (or a V-type).
 
  It's like a little program in the DICT (dictionary) of a file.  It can
  do very complex things, but quite often is used for very simple things,
  but those simple things can be quite helpful.  Here is an example-
 
  I *believe* MS SQL-server has a similar facility called a calculated
  field. A colleague told me a story of how he discovered this then went
  on a SQL training course. When he tried to explain this to the
  instructor and the class, most of them just couldn't understand. But the
  few (including the instructor) who got it just couldn't get over how
  useful this facility could be.
 
  Cheers,
  Wol
  ___
  U2-Users mailing list
  U2-Users@listserver.u2ug.org
  http://listserver.u2ug.org/mailman/listinfo/u2-users



 --
 Dawn M. Wolthuis

 Take and give some delight today
  ___
 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

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


Re: [U2] Regarding: use of I - Descriptor

2012-06-25 Thread Martin Phillips
Hi Satya,

These are really basic questions. You would be best to take a training course.

An I-descriptor is a calculated value based on other dictionary items. Field 2 
holds an expression that can include most of the
things that you can do on the right hand side of an equals in an assignment 
statement in Basic. For example, you might have an
I-descriptor named PROFIT with an expression of
   SELL - COST

Once you have created the dictionary item, you can use it just like any real 
data field in a query processor command.

By far the most important part of I-descriptors is the ability to use the 
TRANS() function to get data from other tables.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of satya satya
Sent: 25 June 2012 17:10
To: U2 Users List
Subject: [U2] Regarding: use of I - Descriptor

Hi,

Could any one of you explain What is I - Descriptor and What is the use
of it.

Thank you,
Satya
___
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


Re: [U2] Regarding: Unidata dictionaries

2012-06-20 Thread Martin Phillips
Hi Satya,

In summary,
  D type records define data fields
  V type records define calculated items
  PH type records are phrases that
 a) provide short forms for other items
 b) define elements of an association
 c) define the default set of fields to be shown in a report
  X type records store miscellaneous items.

To describe these fully would take a lot of explanation. You can find details 
in the manuals. Better still, enrol for a training
course.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of satya satya
Sent: 20 June 2012 17:18
To: U2 Users List
Subject: [U2] Regarding: Unidata dictionaries

Hi,

Could you let,me know what is the difference between PH- type records,
D-type records,V-type records,X-type records

Thank you,
Satya
___
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


Re: [U2] matrix dimension

2012-05-24 Thread Martin Phillips
Hi,

Multiple dimensions in DIM implies that all elements in each dimension would 
exist, around 25000 in your example. Using dynamic arrays, even as part of a 
dimensioned array is much more flexible as unused elements may not need to 
exist. And UV allows seven dimensional dynamic arrays - more than enough for 
most users!!

Of course, indexing into a dimensioned array would be faster.

Your request is close to something we were asked for in QM, arrays of arrays. 
Although technically easy we have not done it as the user requesting it 
withdrew the request. The hardest part is how to fit it into the language 
syntax.

Martin Phillips

On 24 May 2012, at 12:46, Charles Stevenson stevenson.c...@gmail.com wrote:

 So LARGE.ARRAY is 2-dimensional  SMALL.ARRAY is 1 dimensional.
 
 The real value of INMAT is telling the SIZE of (each) dimension.
 
 Yes, I'm deliberately being picky.  I've found it very frustrating to be 
 hard-limited to 1- or 2-dimnsional arrays.
 What would be so wrong to allow:
 
  DIM BETTER.ARRAY( 23, 14, 10, 2, 3 )
 
 Seems like it would be an easy enough feature to add, completely backward 
 compatible.
 
 Why isn't dimension arbitrary?
 
 
 
 On 5/23/2012 3:01 PM, Wally Terhune wrote:
 Extracted from the UniBasic Commands Reference for INMAT()
 
 In the next example, the program segment dimensions two arrays and then 
 prints the
 dimensions using the PRINT statement and INMAT function:
 DIM LARGE.ARRAY(23,14)
 DIM SMALL.ARRAY(9)
 PRINT INMAT(LARGE.ARRAY)
 PRINT INMAT(SMALL.ARRAY)
 This results in the following:
 23}14
 9
 -Original Message-
 From: Jeffrey Butera
 ... is there a function to determine it's dimensions?...
 ..
 ___
 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


Re: [U2] matrix dimension

2012-05-23 Thread Martin Phillips
Hi Jeffrey,

Take a look at the INMAT() function.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera
Sent: 23 May 2012 20:59
To: U2 Users List
Subject: [U2] matrix dimension

I don't work with MATrices much in Unidata.

If I have my hands on a matrix setup from another program is there a 
function to determine it's dimensions?  My reading of DIM doesn't 
indicate it can do this and I don't see anything in the various MAT... 
commands that looks promising.


-- 
Jeffrey Butera
Manager of ERP Systems
Hampshire College
413-559-5556

___
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


Re: [U2] BETWEEN operator

2012-04-18 Thread Martin Phillips
Hi, 

 

Yes I would think, if such an operator were to be introduced to Pick BASIC, 
that Between should be exclusive which is how the
UniQuery Between (only for Unidata sorry Universe people) works today.  
Between 2 and 4 means only 3, not 2 and not 4.

 

I would disagree, and expect it to be an inclusive range. Perhaps the 
uncertainty of semantics is a good reason not to have this as
an operator.

 

Give me a number between 1 and 5. I think most people would expect this to be 
inclusive.

 

 

Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] BETWEEN operator

2012-04-18 Thread Martin Phillips
Hi,

UV's BETWEEN operator is in the query processor. The previous discussions 
appear to be looking for it as a Basic operator.

Martin Phillips

On 18 Apr 2012, at 18:15, Wjhonson wjhon...@aol.com wrote:

 
 Are you saying that Universe has a between operator somewhere?
 Where?  I don't see it.
 
 
 
 -Original Message-
 From: Brian Leach br...@brianleach.co.uk
 To: 'U2 Users List' u2-users@listserver.u2ug.org
 Sent: Wed, Apr 18, 2012 10:14 am
 Subject: Re: [U2] BETWEEN operator
 
 
 It's also inclusive in (UniVerse and every other) SQL.
 Of course, you could always write it as an external function for UniBasic,
 hen it can be however you want. 'long as you document it.. 
 Brian
 -Original Message-
 rom: u2-users-boun...@listserver.u2ug.org
 mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips
 ent: 18 April 2012 17:29
 o: 'U2 Users List'
 ubject: Re: [U2] BETWEEN operator
 Hi, 
 
 Yes I would think, if such an operator were to be introduced to Pick BASIC,
 hat Between should be exclusive which is how the UniQuery Between (only for
 nidata sorry Universe people) works today.  Between 2 and 4 means only 3,
 ot 2 and not 4.
 
 I would disagree, and expect it to be an inclusive range. Perhaps the
 ncertainty of semantics is a good reason not to have this as an operator.
 
 Give me a number between 1 and 5. I think most people would expect this to
 e inclusive.
 
 
 Martin Phillips
 adybridge Systems Ltd
 7b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
 44 (0)1604-709200
 ___
 2-Users mailing list
 2-us...@listserver.u2ug.org
 ttp://listserver.u2ug.org/mailman/listinfo/u2-users
 
 __
 2-Users mailing list
 2-us...@listserver.u2ug.org
 ttp://listserver.u2ug.org/mailman/listinfo/u2-users
 
 ___
 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


Re: [U2] COMMON Size MisMatch

2012-04-13 Thread Martin Phillips
Hi all,

As a possible suggestion for how this could be implemented, we have a couple of 
features in QM that together do the job.

1. The ON.LOGTO paragraph.
If present, this runs as part of a LOGTO command, before leaving the old 
account.

2. The DELETE.COMMON command.
This deletes the specified named common. Called from ON.LOGTO, the task becomes 
trivial.

Perhaps U2 could do the same?


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] Turn a device and inode into file name

2012-03-16 Thread Martin Phillips
Hi,

There is no trivial way to do this because a single inode may correspond to 
multiple file names if there are links.

A useful trick if you run ACCOUNT.FILE.STATS from time to time is to look at 
the data file that it generates. This includes the
inode numbers.

Of course, a better solution is to write a little program to build a file that 
relates file names to inode numbers. You can then do
queries against this. Or you could add a VOC entry that finds the inode number 
for each F-type entry and query against this.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: 16 March 2012 19:24
To: u2-users@listserver.u2ug.org
Subject: [U2] Turn a device and inode into file name


Anyone have an easy way to do this?
In the past I've run a batch routine to just query each and every Universe file 
for it's inode and device and build a table of these

Every week
Seems like a great amount of overkill to me.
You could also mod the CREATE-FILE command to sniff it and make an xref entry 
but 

Any suggestions?
This is NOT for the case where you know the file and want to find the inode and 
device It's for the case where you know the inode
and device (only) and want to find the file.
___
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


Re: [U2] Passing by Value

2012-01-27 Thread Martin Phillips

Hi all,


I asked the Rocket Software guys to have LOCAL variables... but nothing...


Someone from the UV development team once told me that the Basic compiler 
has the concept of local variables for internal subroutines but it has not 
been released. I don't know why. We did it for QM and it wasn't difficult.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] Passing by Value

2012-01-26 Thread Martin Phillips

Hi,

It is possible from the calling side, simply by enclosing the argument 
variable in parentheses, effectively making it an expression.


It is not possible from the subroutine except by copying the argument to a 
local variable.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

-Original Message- 
From: Kebbon Irwin

Sent: Thursday, January 26, 2012 2:39 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] Passing by Value


Unidata 7.1
I think this has come up before (side question: how do you search the 
archives?)...  I think it is possible to pass a parameter by value instead 
of by reference.  This, of course, means that any changes to the parameter 
in the called subroutine are localized and its original value in the calling 
routine is unchanged there.  Does anyone do this?  If so, how?Cheers,Kebbon

___
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


Re: [U2] Date comparison

2012-01-24 Thread Martin Phillips

Hi Barry,

Unless I am mis-understanding your example, you appear to be doing this 
comparison using external format dates which is doomed to failure.


They will be compared as simple character strings, left to right, until a 
difference is found. You need to do the comparison with an internal day 
number.




Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message- 
From: Barry Rogen

Sent: Tuesday, January 24, 2012 1:17 PM
To: U2 Users List (u2-users@listserver.u2ug.org)
Subject: [U2] Date comparison


We have been experiencing this quite a bit and am not sure why we are 
getting mis-comparisions.  Below is a simplified example of our issue


B$CHECK.855.SENT:  51:  IF ST.DATE #  THEN
B$CHECK.855.SENT:  52: IF ST.DATE  12-31-11 THEN
B$CHECK.855.SENT:  53:PRINT PL:Date is less than 
12-31-11...:


: ST.DATE/
STRING: T r L=8 `01-20-12'

We  have this issue with programs and with SELECT statements throughout. 
When you qualify a  date for this year to a date from 2011 it  screws up.



Barry Rogen
Senior Programmer/Analyst
PNY Technologies, Inc.
(973) 560-5327
bro...@pny.commailto:bro...@pny.com


   We are continually faced with great opportunities brilliantly 
disguised as insoluble problems.

John W Gardner

[http://thinkbeforeprinting.org/struct/signature-1.gif]




 
NOT INTENDED AS A SUBSTITUTE FOR A WRITING
NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR 
IN ANY ATTACHMENTS THERETO, SHALL CONSTITUTE A BINDING CONTRACT, OR ANY 
CONTRACTUAL OBLIGATION BY PNY, OR ANY INTENT TO ENTER INTO ANY BINDING 
OBLIGATIONS, NOTWITHSTANDING ANY ENACTMENT OF THE UNIFORM ELECTRONIC 
TRANSACTIONS ACT, THE FEDERAL E-SIGN ACT, OR ANY OTHER STATE OR FEDERAL LAW 
OF SIMILAR SUBSTANCE OR EFFECT. THIS EMAIL MESSAGE, ITS CONTENTS AND 
ATTACHMENTS ARE NOT INTENDED TO REPRESENT AN OFFER OR ACCEPTANCE OF AN OFFER 
TO ENTER INTO A CONTRACT. NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF 
WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO SHALL ALTER THIS 
DISCLAIMER.


This e-mail message from PNY Technologies, Inc. is for the sole use of the 
intended recipient(s) and may contain confidential and privileged 
information. Any unauthorized review, use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please contact the sender 
by reply e-mail and destroy all copies of the original message.







___
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


Re: [U2] Weird SELECT Behavior - GE on @ID

2011-12-30 Thread Martin Phillips

Hi John,

I may be wrong but I believe that the Pick style wildcards only work in 
string equality tests.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message- 
From: John Thompson

Sent: Friday, December 30, 2011 3:19 PM
To: U2 Users List
Subject: [U2] Weird SELECT Behavior - GE on @ID

I have seen this behavior on Universe 10.3.4 on AIX as well as Universe
11.1.4 on Linux.
These are PICK flavor accounts.

Consider a file with a key like so:

2011061
2011062

SELECT FILENAME = 201106]
SELECT FILENAME GE 201106]
SELECT FILENAME WITH @ID = 201106]
SELECT FILENAME WITH @ID GE 201106]
(The selection only returns the greater than and not the equal to)

You can do equals or greater than by themselves and it works.

Not sure if this is by design or a bug.  If a bug, how would I report it?

--
John Thompson
___
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


Re: [U2] Solid State Drives (SSD) and Universe

2011-12-19 Thread Martin Phillips

Hi,

Take a look at http://www.easyco.com/index.htm. The performance of these 
devices is amazing plus they are much lower cost than the usual SSD 
alternatives.


We have users running these who may be willing to give an unbiased opinion.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



-Original Message- 
From: John Thompson

Sent: Monday, December 19, 2011 1:45 PM
To: U2 Users List
Subject: Re: [U2] Solid State Drives (SSD) and Universe

I am currently attempting to as we speak, but, I don't have any hard
numbers for you.
I have some numbers from a benchmark tool, but, there are so many factors
involved, I can't really tell you whether U2 performance is 30 times
faster... Although I'm hoping this week I can get Universe installed and
run through some jobs to see.

The tool on RHEL 6 is telling me that on using the sync io engine, that
random reads are 30 times faster, and, random writes are 60 times faster,
which I find funny.  BUT, I'm no expert on which io engine Universe uses
(sync, libaio, posixaio, etc. etc.)

In my case, I don't work for that big of a company, but, IBM was offering a
40% rebate on some of their solid stuff in October, and our AIX support was
slated to end in April.  That being said though, if you are the guy that
has to research the hardware, I'll give you these pointers that I have
learned painfully...

If you are running on an x86 machine (intel-ish), keep in mind these points:

1) There are a couple of different types of solid state drives.
-SATA, SAS attached to an actual disk controller
(These are limited by the throughput on the disk controller, which they
will quickly eclipse)
-PCIe (PCI Express) that plug directly into the PCIe bus of the system
(These are not limited by a disk controller and communicate almost directly
with the CPU/RAM/bus)

The PCIe are not bootable however, but, they bypass the latency of a
traditional disk controller, and are even faster.
They do come with the added complication of proprietary drivers, so if you
don't get good support for this, things can get painful.

2) Be sure and buy enterpise SSD's.  For example, an Intel 320 SSD is
probably not an enterprise SSD.  The quality of the firmware/drivers and
flash memory is pretty key on these things, and the prices range from $200
all the way up to $4,000+ a piece.
Basically, just do your homework on what the predicted life of the drive
is.  Don't always pay attention to warranty or hours.  Its more about, How
much data in GB can I write to this thing before it wears out.
Also the cheap ones really fall short on random write performance which I
think is important in a U2 database.

3) Make sure its in your budget.  They are still at least double or triple
the price of spindle disks (for the enterprise grade stuff).  However, the
performance is more than double/triple, so, the cost justifies itself.

I think IBM has some SSD's offerings for their new POWER 7 AIX machines as
well.

Now for some more specific Vendor advice, as a result of some of my pain I
have experienced the last month or so.

If you go with one of the big boys for a RHEL (Linux) or Windows server,
here is some useful info.

IBM and HP (not sure about Dell) offers mainly two types of SSD's
The traditional SATA ones
http://www.redbooks.ibm.com/abstracts/tips0792.html

The PCIe Ones
http://www.redbooks.ibm.com/technotes/tips0729.pdf

*Be careful about how you hook up the traditional SATA ones.*
My so called Vendor was supposed to do all of this checking for me,
but, they dropped the ball big time.

IBM has a list of controllers that are compatible with certain machines.
http://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/xseries/controllers/matrix.html
So make sure that matches up.  I'm sure HP, has a similar posting somewhere.

THEN, make sure the controller can support SSD's.
SSD's behave way differently than regular disks, so, IF you want to use a
hardware RAID controller or something of the like, you must make sure it is
intelligent enough to handle the SSD's.

OR you can just hook it up to an HBA (Host bus adapter) with no actual
intelligence, and then let the OS handle how it deals with the SSD's (i.e.
software RAID, lvm, etc.)  If you know Linux lvm, RAID, or Windows disk
management, this might be the best approach for you.

*Be wary of the vendor you buy the PCIe SSD's from*
Like I said, IBM offered 40% off of these guys a month or two ago, but,
their support people don't know a #$%^$## thing about them.

The company that makes these things for HP, IBM, and I think Dell is called
Fusion IO:
They just went public on the stock market not too long ago.
http://www.fusionio.com/platforms/iodrive/

HOWEVER, they have a non compete agreement with IBM, that states that any
IBM branded card, they cannot support, EVEN though, they are the exact same
stinking thing.

So... if its in your budget to get these cards.  Just buy it direct

Re: [U2] The math just doesn't work.

2011-10-11 Thread Martin Phillips

Hi all,

If my memory over 20 years ago in PI/open development is reliable (probably 
not), I seem to recall that the string arithmetic functions were invented to 
handle either very large integer numbers or fractional numbers with a large 
number of decimal places. I think it was the high precision daily interest 
calculations required by banking systems that motivated the development.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Wjhonson wjhon...@aol.com

To: u2-users@listserver.u2ug.org
Sent: Monday, October 10, 2011 6:35 PM
Subject: Re: [U2] The math just doesn't work.




I thought that large integer addition is why the functions SADD, SCMP and 
SDIV were invented?

___
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


Re: [U2] The math just doesn't work.

2011-10-10 Thread Martin Phillips

Hi Brett,

I think my discussion on this topic still holds. Run your program with
  PRECISION 14
at the top and you can see the rounding errors creeping in. This is exactly 
why comparing floating point values is generally considered a bad idea.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Brett Callacher bre...@gpmdev.co.uk

To: u2-users@listserver.u2ug.org
Sent: Monday, October 10, 2011 9:16 AM
Subject: Re: [U2] The math just doesn't work.


I also thought: great explanation and nodded sagely when I read this. 
However, consider this code:




 NUL = ''

 CM = ','

 A = -409071.8775: CM: 475000: CM: -652413: CM: 652413: CM: -475000: 
CM: 409071.8775


*

*

 TEST.VMC = 1

 TEST.TOTAL = 0

*

 LOOP UNTIL FIELD(A, CM, TEST.VMC) = NUL DO

TEST.TOTAL += FIELD(A, CM, TEST.VMC)

TEST.VMC += 1

 REPEAT

*

 IF TEST.TOTAL = 0 THEN

PRINT 'OK'

 END ELSE

PRINT TEST.TOTAL, (TEST.TOTAL = 0), TEST.TOTAL - 0, 
(OCONV(TEST.TOTAL, 'MD0') = 0)


 END





Running this on our Universe system 11.1.1 produces:



0 0 0 1



So, in other words zero is the total result in TEST.TOTAL but this does 
not equate to zero.




Now I know I can get round this by rounding the answer but am not sure why 
I should have to.  Any ideas?




Thanks



Brett



Martin Phillips 
martinphill...@ladybridge.commailto:martinphill...@ladybridge.com 
wrote in message 
news:2636297EDC484501AD1A5AC277EE76A7@lbs8news:%3c2636297EDC484501AD1A5AC277EE76A7@lbs8...



Hi George,







As a general rule in programming, comparison of floating point values



for equality should be avoided. This is because, just as we cannot



write the number one third accurately in decimal notation, so the IEEE



floating point format used by computer systems cannot store numbers



accurately. The example that I use when teaching training courses is



14.2 which actually ends up as something close to 14.197.







UniVerse gets around this with a wonderful concept called wide zero



that says, when testing for equality of floating point numbers, they



must be within some specified value of being equal rather than



strictly equal. The default wide zero error tolerance, set in IEEE



format with the WIDEZERO configuration parameter, is 2.91 * 10^-11 (2^


035) which is good for most business applications but occasionally needs 
adjusting.







Unidata has a command, SET.WIDEZERO, to serve the same purpose but



defaults to 0.0 for backward comaptibility.











Martin Phillips



Ladybridge Systems Ltd



17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England



+44 (0)1604-709200











- Original Message -


From: George Hammerle 
zhamme...@hubert.commailto:zhamme...@hubert.com



To: u2-users@listserver.u2ug.orgmailto:u2-users@listserver.u2ug.org



Sent: Thursday, September 29, 2011 1:30 PM



Subject: [U2] The math just doesn't work.











 Can anybody please help?







 For some reason A + B does not equal C in the comparison below. Is



 there any trick to get the comparisons to work properly?







 Unidata 7.2 on Hp Unix 11+











 Top of TEST.COMP in RMH.MAIN, 13 lines, 263 characters.



 *--: P



 001: A = 3176.79



 002: B = 106.19



 003: C = 3282.98



 004: D = 920.11



 005: A = A + D



 006: C = C + D



 007: IF (A+B) # C THEN



 008:   CRT '(A+B) # C? YOU LIE'



 009:   CRT 'A = ':A:', B = ':B:', (A+B) = ':(A+B):', C = ':C



 010: END ELSE



 011:   CRT '(A+B) = C? YOU ROCK'



 012:   CRT 'A = ':A:', B = ':B:', (A+B) = ':(A+B):', C = ':C



 013: END



 Bottom.



 *--: FIBR



 Filed TEST.COMP in file RMH.MAIN unchanged.







 Compiling Unibasic: /db1/ud1/PGM/RMH.MAIN/TEST.COMP in mode 'u'.



 compilation finished







 (A+B) # C? YOU LIE



 A = 4096.9, B = 106.19, (A+B) = 4203.09, C = 4203.09



















George Hammerle



Programming Dude



Hubert Company LLC.



9555 Dry Fork Road



Harrison, Ohio 45030



513-367-8974


 
 zhammerle@hubertREMOVE_THIS.commailto:zhammerle@hubertREMOVE_THIS.com







___



U2-Users mailing list



U2-Users@listserver.u2ug.orgmailto:U2-Users@listserver.u2ug.org



http://listserver.u2ug.org/mailman/listinfo/u2-users






This message contains information that may be privileged or confidential 
and is the property of GPM Development Ltd. It is intended only for the 
person to whom it is addressed. If you are not the intended recipient ,you 
are not authorized to read, print, retain, copy, disseminate, distribute, 
or use this message or any part thereof. If you receive this message in 
error, please notify the sender immediately and delete all copies of this 
message.


This e-mail was sent to you by GPM

Re: [U2] The math just doesn't work.

2011-10-10 Thread Martin Phillips

Hi Brett,


The realisation for me here is that PRECISION has nothing to do
with the precision of the calculation, it only effects display.


Correct. All arithetic operations work at the precision of the underlying 
hardware. PRECISION applies when converting a floating point number to a 
character string.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

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


Re: [U2] The math just doesn't work.

2011-09-30 Thread Martin Phillips

Hi Mecki,


I actually wonder if this feature is flavour specific?
Pick didn't use floating point arithmetic and IIRC the default
precision used to be 4.


PRECISION affects the number of decimal places in the result when converting 
a floating point value to a character string. All internal arithmetic 
operations are performed at the precision of the underlying hardware. 
Applying precision at each arithmetic operation would introduce cumulative 
rounding errors.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] The math just doesn't work.

2011-09-29 Thread Martin Phillips

Hi George,

As a general rule in programming, comparison of floating point values for 
equality should be avoided. This is because, just as we cannot write the 
number one third accurately in decimal notation, so the IEEE floating point 
format used by computer systems cannot store numbers accurately. The example 
that I use when teaching training courses is 14.2 which actually ends up as 
something close to 14.197.


UniVerse gets around this with a wonderful concept called wide zero that 
says, when testing for equality of floating point numbers, they must be 
within some specified value of being equal rather than strictly equal. The 
default wide zero error tolerance, set in IEEE format with the WIDEZERO 
configuration parameter, is 2.91 * 10^-11 (2^ 035) which is good for most 
business applications but occasionally needs adjusting.


Unidata has a command, SET.WIDEZERO, to serve the same purpose but defaults 
to 0.0 for backward comaptibility.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


- Original Message - 
From: George Hammerle zhamme...@hubert.com

To: u2-users@listserver.u2ug.org
Sent: Thursday, September 29, 2011 1:30 PM
Subject: [U2] The math just doesn't work.



Can anybody please help?

For some reason A + B does not equal C in the comparison below. Is there 
any trick to get the comparisons to work properly?


Unidata 7.2 on Hp Unix 11+


Top of TEST.COMP in RMH.MAIN, 13 lines, 263 characters.
*--: P
001: A = 3176.79
002: B = 106.19
003: C = 3282.98
004: D = 920.11
005: A = A + D
006: C = C + D
007: IF (A+B) # C THEN
008:   CRT '(A+B) # C? YOU LIE'
009:   CRT 'A = ':A:', B = ':B:', (A+B) = ':(A+B):', C = ':C
010: END ELSE
011:   CRT '(A+B) = C? YOU ROCK'
012:   CRT 'A = ':A:', B = ':B:', (A+B) = ':(A+B):', C = ':C
013: END
Bottom.
*--: FIBR
Filed TEST.COMP in file RMH.MAIN unchanged.

Compiling Unibasic: /db1/ud1/PGM/RMH.MAIN/TEST.COMP in mode 'u'.
compilation finished

(A+B) # C? YOU LIE
A = 4096.9, B = 106.19, (A+B) = 4203.09, C = 4203.09




   George Hammerle
   Programming Dude
   Hubert Company LLC.
   9555 Dry Fork Road
   Harrison, Ohio 45030
   513-367-8974
   zhammerle@hubertREMOVE_THIS.com


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


Re: [U2] uppercase

2011-06-22 Thread Martin Phillips

Hi Jeff,

The difference is probably only one of performance. Using OCONV requires the 
conversion code to be decoded in order to work out what to do. Using 
UPCASE() can go straight off to do the real work without any additional 
decoding.


I suspect not, but there may be some difference of interpretation if you 
have NLS installed.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Jeff Butera jbut...@hampshire.edu

To: u2-users@listserver.u2ug.org
Sent: Wednesday, June 22, 2011 11:24 AM
Subject: [U2] uppercase


On unidata, can anyone shed light on the differences between UPCASE(...) 
and OCONV(...,'MCU')?


I know OCONVS(...,'MCU') will preserve @VM and other unidata delimiters, 
but for single valued data is their any difference in the above?



--
Jeff Butera, PhD
Manager of ERP Systems
Hampshire College
413-559-5556

___
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


Re: [U2] Universe : different time zone from AIX

2011-05-24 Thread Martin Phillips

Hi Marcos,

Simply changing the timezone at the o/s level is probably not good enough. 
For full multi-timezone support you need to store times internally in a zone 
independent manner and convert them to the appropriate external timezone for 
each user.


This is not a trivial task. It was also the motivation for the epoch dates 
development in QM a couple of years back but that doesn't help you much 
except to confirm that we know how tough it is.


UV does have a SYSTEM(99) function to return the time as an epoch value but, 
as far as I am aware, does not have the rest of the functions needed to make 
this work properly.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200


- Original Message - 
From: Israel, John R. johnisr...@daytonsuperior.com

To: 'U2 Users List' u2-users@listserver.u2ug.org
Sent: Tuesday, May 24, 2011 4:18 PM
Subject: Re: [U2] Universe : different time zone from AIX


Be warned that every program that compares dates and times will need to 
SERIOUSLY be reviewed.



John Israel
Senior Programmer/Analyst
Dayton Superior Corporation
1125 Byers Road
Miamisburg, OH 45342


-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben

Sent: Tuesday, May 24, 2011 11:04 AM
To: U2 Users List
Subject: Re: [U2] Universe : different time zone from AIX

It seems you can do so from this link:
http://www.unix.com/aix/77811-setting-connection-time-zone.html

YMMV...

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marcos Fogaca

Sent: Tuesday, May 24, 2011 8:00 AM
To: u2-users@listserver.u2ug.org
Subject: [U2] Universe : different time zone from AIX

Hi,

It is possible configure UV to a different time zone for each user, and a 
different time zone that is running AIX?

In Brazil we have 4 time zones, and that UV server is used for all users.

Regards,
Marcos Fogaça.
São Paulo / Brazil
___
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

___
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


Re: [U2] Multi char delimiter in DICT item

2011-05-20 Thread Martin Phillips

Hi David,

Bob is right.  Lets enhance the FIELD function to accept a string 
delimiter

and not just a single character.


A nice idea but it has to be a new function because FIELD() is defined as 
using only the first character of the supplied delimiter.


Because an enhancement such as this is unlikely to appear in time to resolve 
the original poster's problem, it should be possible to work around the 
issue by replacing all of the multi-character delimiters with some single 
character that would never appear in the data and then using FIELD() with 
this as the delimiter.


I cannot remember whether Unidata supports CHANGE() in I-types. For some 
strange reason UniVerse does not.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] [uv] file header sica region structure

2011-05-03 Thread Martin Phillips

Hi Manu,

As the UniVerse internals course notes state, describing the structure of 
the SICA would defeat its purpose.


LIST.SICA is the only tool provided to access this.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Manu Fernandes e...@infodata.lu

To: u2-users@listserver.u2ug.org
Sent: Tuesday, May 03, 2011 7:35 PM
Subject: [U2] [uv] file header sica region structure



Hi group,

I've some uvfiles where I set triggers (no SQL Schema defn).
I'll check the TRIGGER defn by BASIC !

FILEINFO, STATUS ? ?

I found no documentation about uvfile's SICA Region structure/access.

Is there someone with idea ?

(yes, I can execute a LIST.SICA and analyse the text-output but if 
possible I prefer use of a better interface than text)


Thanks.
Manu



___
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


Re: [U2] Is this worth rewriting?

2011-03-02 Thread Martin Phillips

Hi Dave,

In general, access to an element of a dimensioned array is fast so the 
frequent references to PARM(12) should not be a problem.


On the other hand, even with the benefits of field level hints, repeated 
references to the same field/value may be improved by extracting the data 
into a temporary variable.


Incidentally, and at the risk of starting a new war on style, this is a 
great example of why developers should use equate tokens with meaningful 
names rather than numbers for field references. As someone who has never 
seen this code before, I haven't got a clue what it does. Using names 
hopefully makes the code readable, it makes it easy to find all references 
to a particular item without having to dismiss all the other references to 
the same field in a different file, and it reduces errors from typos. Ignore 
me if you like. It's just a personal hate!!



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200



  CM=MONTH+LY.CNT

  FOR M=1 TO 12
IF PARMS(12)101,CM#'' OR PARMS(12)133,CM#'' OR
PARMS(12)134,CM#'' THEN
  CUM(M)=PARMS(12)101,CM+PARMS(12)133,CM+PARMS(12)134,CM
END

IF PARMS(7)100,CM#'' OR PARMS(7)101,CM#'' OR 
PARMS(7)102,CM#'' THEN

   IF PARMS(7)100,CM#'' THEN CUMO(M)=CUMO(M)+PARMS(7)100,CM
   ELSE
CUMO(M)=CUMO(M)+PARMS(12)101,CM
   END

  IF PARMS(7)101,CM#'' THEN CUMO(M)=CUMO(M)+PARMS(7)101,CM
  ELSE
  CUMO(M)=CUMO(M)+PARMS(12)133,CM
  END

  IF PARMS(7)102,CM#'' THEN CUMO(M)=CUMO(M)+PARMS(7)102,CM
  ELSE
  CUMO(M)=CUMO(M)+PARMS(12)134,CM
  END
  END

  CM=CM-1; IF CM=0 THEN CM=24

   NEXT M

   RETURN


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


Re: [U2] Is this worth rewriting?

2011-03-02 Thread Martin Phillips

Hi Dave,


The reason I ask specifically of the repeated references is, during one
of the sessions at U2UG-Denver, it was implied that each time you
reference a specific location in a table, the OS basically has to start
at the beginning of the table and 'find' its way to that location


Whilst REMOVE is the quickest way to walk through a dynamic array, field 
extraction in UV uses a hint mechanism to keep track of the last field 
accessed. For example, if you have a huge dynamic array and extract field 
640, yes, it will have to walk along from the start.


If you next go to access field 650, it starts from the known position of 
field 640 so it will be much faster.


This mechanism only works for fields, not values. Also, as far as I know, 
Unidata doesn't have this mechanism so it would need to start over each 
time.


Dimensioned arrays are totally different. You can access X(1000) just as 
quickly as X(1) because it is little more than a reference to an indexed 
table of pointers.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] [UV] PORT.STATUS questions.

2010-12-30 Thread Martin Phillips

Hi Don,

It may be easier simply to add a program to the LOGIN and ON.EXIT paragraphs 
to maintain a file with the specific details that you want available.



Also, PORT.STATUS from within Universe gives an error for options
like PID and FILEMAP but works ok from the AIX prompt, why?


These options are normally only present in the UV account VOC but there is 
no reason why they cannot be copied to other VOC files.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] Questions abount Resize on Universe

2010-09-07 Thread Martin Phillips

Hi Marcos,

With no options, it should be safe to stop the RESIZE as it copies the data 
to a new file which it renames to replace the original afterwards. This new 
file may be left behind (named resize) and can be deleted.


With the USING parameter, beware that the data is first copied to the 
temporary file (as above) and then copied back. It is safe to abort the 
first phase but aborting the second phase will leave you with a corrupt 
file.


With INPLACE, I suspect that the file will be unusable if you abort it.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England

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


Re: [U2] Is there a file limit size to OPENSEQ?

2010-09-03 Thread Martin Phillips

Hi George,

U2 does not support sequential files over 2Gb.

Martin Phillips

On 3 Sep 2010, at 17:17, George Gallen ggal...@wyanokegroup.com wrote:

I'm trying to do an OPENSEQ on a .csv file that is about 3.5G in  
size and it won't open

I shortened the file to about 5k and it opened fine.

I thought that was of the advantages of opening a sequential file,  
you were only reading

  line by line?



George Gallen
Senior Programmer/Analyst
Accounting/Data Division, EDI Administrator
ggal...@wyanokegroup.com
ph:856.848.9005 Ext 220
The Wyanoke Group
http://www.wyanokegroup.com



___
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


Re: [U2] Does Reality Flavor have globally cataloged subroutines?

2010-08-26 Thread Martin Phillips

George,

Modify the VOC entry for CATALOG so that field 6 contains 
INFORMATION.FORMAT. This will give you the full features of the CATALOG 
verb as in Ideal, Information and PI/open accounts.


You can call a globally catalogued subroutine from all account types. Just 
remember to include the prefix character.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] Does Reality Flavor have globally cataloged subroutines?

2010-08-26 Thread Martin Phillips

Hi George,


If I do that, then I lose the features of the Reality Account
correct? Or Do I change it, catalog the routine, then change
it back?


You could create an alternative named VOC entry that uses INFORMATION.FORMAT 
to save changing it back.


However, it may not really be an issue. The Reality mode version of CATALOG 
behaves the same as the Information style one with no extra options (what 
Ideal/Information and PI/open call normal mode). By selecting the 
INFORMATION format you gain LOCAL and global modes.



The problem is that those accounts were imported from a
Reality system, and I wanted to use some of the subroutines
that were written on another account imported from a Prime
system.


The mode of CATALOG has no effect on what you can call. It only determines 
how the cataloguing is done.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200 


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


Re: [U2] RetrieVe enhancements

2010-07-16 Thread Martin Phillips

Hi Kate,

Not strictly U2 but relevant to consideration of this proposal.

When we did right alignment of column headings in right aligned fields in 
QM, users moaned that they didn't like it. This is almost certainly just a 
matter of personal preference. We resolved this by adding a new embedded 'R' 
control code that could be added to the heading text just like 'L' for 
newline in multi-line headings. Perhaps this might be a more acceptable 
solution for RetrieVe.


I have always been surprised that UV does not support the C justification 
code. It's about time.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Kate Stanton k...@walstan.com

To: U2 Users List u2-users@listserver.u2ug.org
Sent: Friday, July 16, 2010 7:31 AM
Subject: [U2] RetrieVe enhancements



There are 2 changes I should like to see in RetrieVe:

1.add C (centre) as a justification code, as well as L, R and T
   We use C in our dictionary-driven data entries, forms, and integrated 
queries.

   It is annoying that it is not available in RetrieVe reports

2.Align column heading using the data's justification code
   Column headings are always left-justified, looks odd over wide 
right-justified data column.


Before I ask Rocket for these, it would be good to know if anyone else 
would want them.


???

Kate Stanton
Walstan Systems Ltd
4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand
Ph: +64 9 360 5310  Fax: +64 9 376 0750  Mobile: +64 21 400 486
Email: k...@walstan.com
___
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


Re: [U2] Locate Syntax Error Missed by Compiler

2010-07-16 Thread Martin Phillips

Hi Ron,

A quick VLIST of the generated code shows that the compiler has taken the 
DR as a format string and applied it to the content of ARRAY1 and then 
performed the LOCATE against that data.


Although not what you intended, this is actually consistent with the way in 
which SMA format expressions work. Personally, I hate them because of this 
sort of syntactically valid but semantically wrong error.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

- Original Message - 
From: Ron Hutchings ron_hutchi...@hotmail.com

To: u2-users@listserver.u2ug.org
Sent: Friday, July 16, 2010 8:28 PM
Subject: [U2] Locate Syntax Error Missed by Compiler




We are running 10.0.11, PICK flavor.

LOCATE STRING IN ARRAY1 DR SETTING POS ELSE POS = 1

This compiled and executed but gave results we were not expecting.  After 
some analysis and two sets of eyes, the aha moment that the BY was 
missing. LOCATE STRING IN ARRAY1,1 BY DR SETTING POS ELSE POS = 1


It took us a while to look there since the compiler accepted it.  When we 
found it we discussed that we really expected the syntax error to be 
identified by the compiler.  Are we expecting too much from the compiler?


_
Your E-mail and More On-the-Go. Get Windows Live Hotmail Free.
http://clk.atdmt.com/GBL/go/196390709/direct/01/
___
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


Re: [U2] fnuxi problem

2010-05-14 Thread Martin Phillips

Hi all,

Thanks for the various suggestions. Research has shown that fnuxi sometimes 
hangs on the DATA.30 files but conversion of the directory representing the 
dynamic file appears to work ok. Because of the directory hierachy used by 
this site, some of the suggestions simply don't work but it looks like we 
can do it in two passses; one for the dynamic file (process all directories) 
and one for dictionaries and indices (process files beginning D_ or I_).


It's messy but it looks hopeful. It's a great shame that fnuxi doesn't work 
better and even have a recursive option. It has cost about a day and a half 
of work to get something that looks like it might work.


Brian's suggestion of using uvbackup and uvrestore was considered as a last 
resort. With the vast number of files on this system, this is likely to be 
painful process.


Thanks again for the help.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


[U2] fnuxi problem

2010-05-13 Thread Martin Phillips

Hi all,

I am on a UniVerse client site trying to move an application with a vast 
number of dynamic files, some indexed, from UV 10.1.18 on a Sun Solaris box 
to UV 10.3.6 on a Red Hat Linux Intel box.


The data files were moved with tar and byte order conversion was done using
  find . -type f -exec fnuxi {} \;

This appeared to work but, on testing the application today, it now seems 
that it skipped quite a few files along the way. Given that fnuxi is 
supposed to ignore files that don't need conversion, I simply ran the 
process again. It hung after converting a number of files, looping at 100% 
cp.


In an attempt to make this restartable, I created a shell script with each 
file as a separate fnuxi command. Again, this works for a while and then 
hangs. At each hang, I note the failing file, remove everything down to that 
point from the script and try again. The hangs are so often that this has 
become unworkable (there are about 400,000 files in the list).


Repeating the fnuxi for a failing file sometimes fails again and sometimes 
works ok. I have also seen it fail with a segmentation fault.


Some of the hangs are on the data files, some are on indices. I have even 
used filepeek to walk through a failing file looking for ideas about why it 
hangs.


So, has anyone experienced the same problem and, far more importantly, has 
anyone got a fix or an alternative suggestion of how to move this system?


Thanks.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] fnuxi problem

2010-05-13 Thread Martin Phillips

Hi Dan,

Sadly, this doesn't help as it will try to process the DATA.30 files that 
cause the hang.


Thanks anyway.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200

- Original Message - 
From: Dan Goble dgo...@interlinebrands.com

To: U2 Users List u2-users@listserver.u2ug.org
Sent: Thursday, May 13, 2010 4:28 PM
Subject: Re: [U2] fnuxi problem



In the past when I had done fnuxi I always used the following syntax:

find . -name * -exec fnuxi {} \;


This takes and tries to fnuxi all files in the current directory and 
below.   If the file is not a U2 file it will not harm anything.


-Dan


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


Re: [U2] AUTO: Haydon Bishop is out of the office. (returning16/04/2010)

2010-04-19 Thread Martin Phillips
Isn't it a little odd that Haydon Bishop hasn't joined this conversation 
since he was due back in the office by 16 April?


Maybe he really doesn't exist. Or, perhaps, like me, he is stuck somewhere 
as a result of the Icelandic volcano.



Martin Phillips, Ladybridge Systems Ltd 


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


Re: [U2] UD: Phantoms

2010-04-02 Thread Martin Phillips

Hi Bill,

In UniData, does anyone know of a sure way to determine if a BASIC 
program is running as a phantom?


Take a look at the @USER.TYPE variable. This contains 1 for a phantom.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] UD: Phantoms

2010-04-02 Thread Martin Phillips

Hi Bill,

Apologies. I had mis-understood the question. It looks like you have 
sufficient responses for me to back out of this discussion.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200

- Original Message - 
From: Bill Haskett wphask...@advantos.net

To: U2 Users List u2-users@listserver.u2ug.org
Sent: Friday, April 02, 2010 5:03 PM
Subject: Re: [U2] UD: Phantoms



Martin:

@USER.TYPE only tells me if the current process (the one I'm logged in 
on) is a phantom.  It tells me nothing about other processes nor what 
programs are running on those other processes.  I think...   :-)


Bill


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


Re: [U2] Pick Pocket Guide

2010-03-31 Thread Martin Phillips




I'm not sure we're ever going to see college courses offered for Pick,
however I learned about hashing and linked frames in a college course.


There was a US college teaching with QM. I don't know if they still  
are. The ability to put the entire system on a USB stick is very  
attractive in this situation.


Martin Phillips, Ladybridge Systems
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Pick on Mac

2010-03-29 Thread Martin Phillips

Hi Will,


Are there are native implementations of a Pick system on Macs?


As Henry and Allen have both said, our OpenQM product runs on Macs. We have 
installations ranging from MacBook Pro laptops right through to Mac Servers.


Since your query is raised on the U2 list, it is fair to say that, of 
course, QM is not U2 however migration should be very easy if you want to go 
down this route. There is an evaluation version available.


Probably any further discussion should be via the OpenQM Google group rather 
than here.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] CPU Spikes to 100%

2010-03-25 Thread Martin Phillips

Hi Curt,

Try PORT.STATUS when the problem occurs. This will tell you where it  
is in the application.


Martin Phillips

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


Re: [U2] Embedded program for Windows

2010-02-22 Thread Martin Phillips

Hi Will,

I am still having trouble understanding the requreiment. If I read this 
correctly, you want to give away for free an application that manages what 
looks like a sales database. But where is the database?


Your original posting satted that the database must be part of the program. 
This implies that it cannot be updated. How do items entered ever get 
actioned?


You also state that it must be browser based and that the browser must talk 
to the embedded database invisibly to the customer. This seems to rule out 
setting up the IIS (or whatever) elements of the system to know about the 
application at all.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Universep paragraph in line prompting options

2010-02-10 Thread Martin Phillips

Hi Jeff,

I'm looking for a list of the in line prompting options for Universe 
paragraphs (this stuff). Specifically the one which causes the 
prompt to repeat until a null is entered. I can't find it in the 
documentation I have and for some reason I can't get logged in to 
Rocket's support area to get additional documentation.

It keeps telling me No U2TC contact record found linked with your U2 ID


R,prompt text

For example,

  LIST VOC R,ID


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] extraction conversion codes

2010-02-05 Thread Martin Phillips

Hi Gerry,

Out of curiosity, why are you against I-types?


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] File corrupt

2009-11-07 Thread Martin Phillips

Hi Kevin,


I just wish this fact was more advertised.  I would certainly have
been checking for this if I had known.


This issue came up a year or two back and I posted a comment that UV should 
be able to detect that it is heading into this situation before it corrupts 
the file. The response from one of the UV developers was that this is not 
possible. (Which makes it strange that we did it for QM even though our 
limit is 16Tb, not 2Gb).



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Microdata Conversion

2009-11-04 Thread Martin Phillips

Hi all,


I don't think anyone has mentioned QM yet, but I believe there
is strong support for PQN there as well.


Because this is a U2 list, I replied off-list directly to Mark. Now that you 
have raised the topic Tony, yes QM does have support for Procs (PQ, PQN and 
PQX style).


Unless the application does anything particularly out of the ordinary, the 
changes made to QM over the last year or so to ease migration from Pick 
style systems should make this move fairly painless. And, of course, QM has 
a far lower price tag than most of the other players.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] FCB being used in TRANS is not getting cleared.

2009-11-04 Thread Martin Phillips

Hi George,

This is almost certainly as a result of the TRANS cache inside the query 
processor. There is, I believe, an assumption that the data isn't changing 
during the query.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] [UV] Strange paragraph IF behaviour

2009-09-16 Thread Martin Phillips

Hi Stuart,


CT VOC ONE.OFF
0001 PA
0002 IF S2,Check = 'BLAH' THEN GO THE.END:
0003 DISPLAY NOT BLAH
0004 THE.END:
0005 DISPLAY THE END

It's producing the following results:

ONE.OFF
Check=BLAH
Illegal IF statement.
NOT BLAH
THE END

ONE.OFF
Check=jgfjhf
Illegal IF statement.
NOT BLAH
THE END


How odd. Your S2 control token appears to be being ignored as it is 
prompting which I would only expect with I2 or no token at all.


Just as an experiment, not that it should affect the prompt, put quotes 
around the inline prompt.  They really shouldn't be necessary but something 
isn't right.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] INFO BASIC BNF Spec

2009-08-05 Thread Martin Phillips

Hi Marco,


Can anyone please help me with the full BNF spec for the structure
of an INFO BASIC program?


I have never seen the language described in BNF. Perhaps one reason is that 
is is ambiguous in a few places. The most obvious example is

  A = BC + 1
where the   could be field expression delimiters or could be relational 
operators.


Out of interest, why are you looking for a BNF definition?


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Converting from mvBase to Universe

2009-07-23 Thread Martin Phillips

Hi Dave,


afaik, mvBase is the only mv database that supports more than
one telnet server port, and mvBase ties each telnet server port
to one or more (a pool) of mvBase user connections, so this could
be done on a one-to-one basis in mvBase.


QM can do it too with the PORTMAP configuration parameter.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] FW: Running total from UniData dict

2009-07-23 Thread Martin Phillips

Hi Kebbon,

I read this with great interest as I have an identical requirement. 
However,

I use Unidata and this technique does not seem to work, in either ECLTYPE.
 Does anybody have a UDT solution?

0001: I
0002: @1...@record8
0003: MD2
0004: RUNNING TOT
0005: 10R


I was quite surprised that this worked in UV.  It makes an assumption that 
the @1 variable persists beyond the life of the I-type. It also makes an 
assumption that the query includes no other I-types that would overwrite 
this value.


It has always struck me as odd that the query language doesn't have a 
keyword to do this much like totals, averages, etc. At risk of being told 
that I am shouting on the wrong list, QM does.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] FW: Running total from UniData dict

2009-07-23 Thread Martin Phillips

Hi Chuck,


I take it QM does not support this use of the @n buffers, then?
If I may change the subject slightly, how about nested compound 
I-descriptors?


We have the @n variables but they are local to the specific I-type 
expression and hence don't persist from one evaluation to the next. We 
resolved the running total problem by adding a CUMULATIVE keyword that works 
like TOTAL, etc including sub-totals at breakpoints and so on.


Yes, we support nested compound I-types to any reasonable depth. This is 
actually fairly easy once you make the @n variables local to the expression. 
Sort of related, we also fixed one of my real annoyances about U2 by 
allowing a TRANS() to retrieve something that is itself an I-type. And 
(perhaps further discussion should be on the OpenQM Google group).



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Universe Retrieve

2009-07-16 Thread Martin Phillips

Hi Henry,


You can see the object code that is produced using VLIST and
examine it for optimizations.


The particular optimsiation that Barry is looking for would not show in the 
object code. For a truly constant I-type expression, the query procesor 
could evaluate it just once and store the result instead of doing it on 
every use. Although not common,  such I-types do exist.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Universe Retrieve

2009-07-16 Thread Martin Phillips

Hi Henry,


I was under the impression that an EVAL calls the same compiler
that an I-type does, and that any expression optimization would be
done therein.


As far as I know, EVAL does indeed  call the same compiler. As I think you 
realise, the point is that an I-type expression such as

  1: I
  2: SPACE(3)
(which I have seen used to get differing column spacings) will compile to a 
pcode sequence that produces a string of three spaces. This does not tell us 
how the query processor will then go on to use it. A normal I-type 
expression, whether from the dictionary or from use of EVAL, would be 
executed for each occurrence of it in the report, typically once per record. 
In the case of my spacing expression above, the query processor would 
actually only need to evaluate the expression once and then drop it into the 
report as a constant item.


I think that this is what the original poster was asking about. I have no 
idea whether UV does this (QM does). Your experiment seems to tell us.



Here are some empirical results using UniVerse 10.2.7:


TIMEIT 50 COUNT VOC WITH F1 = 'V'

COUNT VOC WITH F1 = 'V'
Elapsed 1.3006


TIMEIT 50 COUNT VOC WITH F1 = EVAL 'V'

COUNT VOC WITH F1 = EVAL 'V'
Elapsed 5.135

This suggests that the query processor does not detect that the result of
the evaluation is a constant and optimize its execution.


No, I think that this is actually showing the opposite. The query was 
considerably faster where your test was a simple literal

  WITH F1 = 'V'
whereas the EVAL expression added a further four seconds to your query. If 
the query processor detected that

  EVAL 'V'
was a constant and optimised it I would expect both queries to take the same 
time. It does look as though it is evaluating the expression for every 
record.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] Universe Retrieve

2009-07-16 Thread Martin Phillips

Hi Henry,


I did say not, so we are saying the same thing.


Whoops! I missed one word. Guess which one!


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] General guidelines on indexing

2009-07-09 Thread Martin Phillips

Hi Adrian,


I just tried this example on Universe 10.2.6 - it took 0.0665
seconds basically instant, can't complain about that.


I am sure that something must have been wrong with your test. This probably 
isn't long enough to do even the empty loop with no string copy.


I have just repeated my test on a different system running UV 10.2.8 and the 
test took 38 minutes.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200



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


Re: [U2] General guidelines on indexing

2009-07-09 Thread Martin Phillips

Hi all,

I wish I hadn't started this!!

I did my tests on Windows. It looks like I need to try other platforms when 
time permits.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] General guidelines on indexing

2009-07-09 Thread Martin Phillips

Hi Marco,


The dynamic array test took 30 minutes.

I compiled the same program on jBASE 4.1 on the same laptop
and it completed in 0 seconds!


This will be because jBase effectively converts the program to C. Most C 
compilers are so good at optimisation that they will work out what the 
program does and compile it as simply setting the string in one step.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips

Hi all,


I don't agree. Disk access is inherently slower than RAM access.


I think that this discussion started for Unidata and then got UniVerse 
involved too but it might have been the other way around. Sadly, there is no 
internals training material for Unidata so we have to guess what goes on.


Different multivalue products approach string management in varying ways. In 
UniVerse, strings are stored as contiguous memory. If I write a statement 
such as

  X-1 = 'ABC'
this run machine has to work out how big the new string will be, allocate 
memory, copy the old value of X to the new area appending ABC to it, and 
then release the original memory used by X.


As you append successive fields, the string to be moved gets longer and 
longer. We tend to think of computers as being blindingly fast but copying a 
big string is still a slow process. If I have a string that starts empty and 
I add a million fields, each of 3 bytes plus the delimiter, I will end up 
copying a total of 1,999,998,000,000 bytes - hardly an insignificant task.


From my own experiments some time ago, I believe that Unidata also uses 
contiguous strings but I have no direct proof of this. The alternative 
(adopted by our QM product, by PI/open, Information and perhaps others) is 
to use chunked strings where a string is stored as a series of chunks. In 
this model, appending a field requires only addition of a new chunk or, for 
better performance, replacement of the final chunk.


Of course, the performance gain of chunked strings in this example may be 
offset by their decreased performance for things like substring extraction 
which is now more complex than a simple indexing operation.


By way of a simple expample, I just tried the following program...
  s = ''
  z = str('*', 1000)
  t1 = time()
  for i = 1 to 10
 s-1 = z
  next i
  t2 = time()
  crt t2 - t1

This took six seconds on QM but 32 minutes on UniVerse. I do not have a 
Unidata system available at the moment to try. To be fair, I am sure that I 
could construct an example that reversed the performance difference.


Writing to a sequential file is somewhat similar to the chunked string model 
as it buffers data until it has a good sized chunk and then writes it out, 
continuing with an empty buffer.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips

Hi again Ed,


SELECT file WITH PRINT.DATE GT 01/04/2008 AND WITH ADDR LIKE 'A'0X


This query can be resolved with an index. Also, the optimiser will shuffle 
the clauses to make best use of indices. Unidata had query optimisation 
before UniVerse but I believe that essentially the same algorithms were 
ported across for UV 10. I have played games trying to defeat the UV 
optimiser and I have to say the I am very impressed by it.




SELECT file WITH PRINT.DATE GT 01/04/2008 OR WITH ADDR LIKE 'A'0X


This cannot be resolved with an index because the second condition cannot be 
determined without reading all the records.



Also, my indexes look to be out of date, as the non-indexed and
indexed selects return different numbers.


That is worrying since the index system is supposed to guarantee consistency 
between the data file and the index. The only time that they should ever be 
able to get out of step is after a system failure or killing a process in 
the middle of a write.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips

Hi Symeon,


Ha Ha a dev from IBM letting secrets out to ladybridge  ;)


Yes, it was a bit much to hope!!!


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] DIR-type files

2009-07-02 Thread Martin Phillips

Hi Dan,


At ECL, if you type ED BP ../../etc/host
You get the /etc/host file in ED!


This works in Unidata because it simply forms the operating system level 
name by merging the file name and record id.


UniVerse has name translation rules for restricted characters and your 
example would end up as

  ?..?\..?\etc?\host
and, if using type 1 files rather than type 19, would then get further 
transformation into a two level directory structure.


Both methods have their advantages and disadvantages.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 


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


Re: [U2] LIST DICT.DICT

2009-05-18 Thread Martin Phillips

Hi,


While I am glad to find out about LIST DICT.DICT, it is not clear
to me what it is.


DICT.DICT is the dictionary that describes dictionaries (and hence itself 
too).


It is used whenever you do
 LIST DICT filename


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] Any limitation in UniVerse decimal places

2009-05-07 Thread Martin Phillips

Hi,


In short, problem can be described as it is caused by? the fact that
on certain condition represented by combination of large number of
invoices and over 9 digits totals Universe engine creates a small
fractional addition to total number.


Not quite right.

The problem here is that, just as there are numbers that cannot be 
represented accurately in decimal such as 1/3, there are numbers that cannot 
be represented accurately in the binary notiation used by the computer. As 
an easy example, the number 0.2 cannot be represented accurately and ends up 
as something like 0.20001 as a close approximation. Because IEEE 
floating point has a limited number of bits to store the matissa part of the 
value, the whole thing scales with bigger numbers. Essentially, a number 
cannot have lots of significant figures, wherever they may be in relation to 
the decimal point.


If you add up a large number of figures with these rounding errors they may 
accumulate to something significant. Even worse, if you decide to do decimal 
scaling with a simple multiply instead of an MD conversion code, the 
inaccuracies get scaled too.


This problem is not unique to UniVerse. It is a well known probelm of 
floating point numbers in computer systems. The usual fix in the multivalue 
world is to scale numbers (dollars to cents, for example) so that all our 
numbers are integers. UV also provides a set of character string arithmetic 
functions if you really want to get clever.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] Select Field Comparisons

2009-04-30 Thread Martin Phillips

Hi Ron,

This is the issue of non-reversible conversions.

When you do a query such as
  SELECT BILLS WITH DATE = 12 Jan 09
the query processor converts the 12 Jan 09 to its internal form and does all 
comparisons on this. Exactly the same happens for any other field with a 
conversion code - the comparisons use internal form data.


Your query:
  SELECT BILLS WITH QUARTER = 1
won't work because the value 1 cannot be converted to an internal date.

So, queries of this form only work with reversible conversions.

Using an I-type to do the conversion as part of the evaluated expression 
instead of as a conversion code in dictionary field 3 gets around this 
issue.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] UV 10.1.22; Dynamic File question

2009-04-23 Thread Martin Phillips

Hi Allen,


If I know in advance that I'm adding a large number of records
to a file, is there any way to force the file to grow in advance?


You could do this with the MINIMUM.MODULUS parameter but the whole point of 
dynamic files is that they do their own tuning. Although a dynamic file is 
unlikely to be as good as a perfectly tuned static file, it will be a lot 
better than a typical static file that has been left alone for a long while.


Another important point is that a split affects only one (or arguably two) 
groups unlike resizing a static file from modulo N to modulo N+1 which would 
affect every group.


My real point here is that it is usually best to let a dynamic file look 
after itself.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] [UV] Config parameter for the READU

2009-03-20 Thread Martin Phillips

Hi Jacques,


I recall reading here a while back that there is a parameter
in the (possibly in the uvconfig file) that determines how long
READU will wait for a lock when it is taken by someone else.


There is but it is horrendous because, when it times out, the program takes 
the ELSE clause so that it thinks it owns the lock. I have appended a copy 
of a posting from Charles Stephenson on this topic back in 2002 below.


If you are looking for a simple timeout that effectively gives a delayed 
entry to the LOCKED clause, there is no such feature though you can 
manufacture it from other components.


Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200

=

Cause: LOCK.WAIT param set to 0
   instead of default 3600 (seconds) during UV.LOGIN
Workaround: Set LOCK.WAIT to very large number.  E.g.:
 ASSIGN 86400 TO SYSTEM(1999)  (basic statement)
 SET.SQL LOCK.WAIT 86400   (tcl command)
Summary:
In Rev 8.3.3 UV introduced the LOCK.WAIT feature and set the default to 
3600 (seconds).  This parameter says that if a LOCKED clause is missing, 
after [LOCK.WAIT] seconds, then ignore the lock and proceed with the ELSE 
clause ! ? ! ? !


Until now, the workaround for this feature has been to turn off by setting 
the parameter to 0, typically via

   ASSIGN 0 TO SYSTEM(1999)
typically from a program executed from UV.LOGIN, the routine in uv/VOC that 
everyone hits when they enter the universe shell.

---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] DO/WHILE vs IF THEN

2009-02-27 Thread Martin Phillips

Hi George,


Is there any functional difference between

WHILE expression DOand IF NOT(expression) THEN EXIT
and
UNTIL expression DOand IF expression THEN EXIT


None at all.

Use of WHILE/UNTIL is sometimes easier to read. Conversely, some exit 
conditions can only be done using EXIT if they are, for example, in some 
deeper conditional construct.



First I thought that the DO/WHILE would activate as soon as
the condition occurred and drop out of a loop, but that is not
the case, the condition has to be active AND control has to be
back at the WHILE statement.


Correct. The test is carried out at the point where you write it. A single 
loop can contain many WHILE/UNIT conditions scattered through it but 
uncontrolled use of this can make programs difficult to read.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


  1   2   3   >