Re: [U2] Rgarding ED editor
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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..
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..
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?
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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
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
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
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
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?
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?
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.
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
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?
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?
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?
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
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
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
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
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
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)
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
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
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
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
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%
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/