[U2] FW: Multivalue Question
Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that contains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] FW: Multivalue Question
The system can move 25K in a blink, so the simple assignment below shouldn't be an issue. -Original Message- From: Al DeWitt adew...@stylmark.com To: u2-users u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 9:29 am Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue ield that contains 5500 +/- values. Each value will be 5-characters ong. I'm concerned that this will issues with the following statement: X = ECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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
Re: [U2] FW: Multivalue Question
You could run into issues eventually with BY.EXP UniQuery access to the field. Run the ECL LIMIT command and look for: U_MAXBYEXPVAL: Number of values BY.EXP can handle = 20480. This is the limit on 7.2.12. It might be smaller on 7.1.20. Performance inserting, updating individual values could be slow. Wally Terhune Technical Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA t: +1 720 475 8055 **e: wterh...@rocketsoftware.com **w: rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Al DeWitt Sent: Thursday, June 07, 2012 10:35 AM To: U2 Users List Subject: Re: [U2] FW: Multivalue Question So the 5500 values in one field is not stretching any limits? Al DeWitt -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Thursday, June 07, 2012 11:33 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] FW: Multivalue Question The system can move 25K in a blink, so the simple assignment below shouldn't be an issue. -Original Message- From: Al DeWitt adew...@stylmark.com To: u2-users u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 9:29 am Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue ield that contains 5500 +/- values. Each value will be 5-characters ong. I'm concerned that this will issues with the following statement: X = ECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] FW: Multivalue Question
X = RECORD31 isn't your issue. This is your issue: CNT = DCOUNT(MVDATA, @VM) FOR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... NEXT PTR Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? 2. How do you need to retrieve it? 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 Al DeWitt Sent: Thursday, June 07, 2012 9:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that contains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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] FW: Multivalue Question
Or since UniData does keep AM pointers, you could do this - then the @SVM become @VM -- and if there is sub-valued data, in some ways this is EASIER than tracking what item 'REMOVE' is handling. SEARCHITEM = RAISE(RECORD31) CNT = DCOUNT(SEARCHITEM,@AM) FOR PTR = 1 TO CNT ELEMENT = SEARCHITEMPTR NEXT PTR -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, June 07, 2012 11:45 AM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: CNT = DCOUNT(MVDATA, @VM) FOR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... NEXT PTR Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? 2. How do you need to retrieve it? 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 Al DeWitt Sent: Thursday, June 07, 2012 9:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that contains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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] FW: Multivalue Question
20480 == 0x5000 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: June-07-12 9:45 AM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: CNT = DCOUNT(MVDATA, @VM) FOR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... NEXT PTR Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? 2. How do you need to retrieve it? 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 Al DeWitt Sent: Thursday, June 07, 2012 9:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that contains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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] FW: Multivalue Question
But why is it significant that it is the same as a simple Octal? 20480 is also 1280 bytes, but I can't see why 1280 is especially significant versus 1200 or 1300 or any other number -Original Message- From: Robert Houben robert.hou...@fwic.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 9:51 am Subject: Re: [U2] FW: Multivalue Question 20480 == 0x5000 -Original Message- rom: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] n Behalf Of David A. Green ent: June-07-12 9:45 AM o: 'U2 Users List' ubject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: NT = DCOUNT(MVDATA, @VM) OR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... EXT PTR Use instead: ORE.FLAG = (MVDATA # ) OOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... EPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? . How do you need to retrieve it? David A. Green 480) 813-1725 AG Consulting -Original Message- rom: u2-users-boun...@listserver.u2ug.org mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Al DeWitt ent: Thursday, June 07, 2012 9:30 AM o: u2-users@listserver.u2ug.org ubject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that ontains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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 __ 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
Re: [U2] FW: Multivalue Question
No idea why, but it is a round number when you view it as hex. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: June-07-12 10:01 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] FW: Multivalue Question But why is it significant that it is the same as a simple Octal? 20480 is also 1280 bytes, but I can't see why 1280 is especially significant versus 1200 or 1300 or any other number -Original Message- From: Robert Houben robert.hou...@fwic.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 9:51 am Subject: Re: [U2] FW: Multivalue Question 20480 == 0x5000 -Original Message- rom: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] n Behalf Of David A. Green ent: June-07-12 9:45 AM o: 'U2 Users List' ubject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: NT = DCOUNT(MVDATA, @VM) OR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... EXT PTR Use instead: ORE.FLAG = (MVDATA # ) OOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... EPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? . How do you need to retrieve it? David A. Green 480) 813-1725 AG Consulting -Original Message- rom: u2-users-boun...@listserver.u2ug.org mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Al DeWitt ent: Thursday, June 07, 2012 9:30 AM o: u2-users@listserver.u2ug.org ubject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that ontains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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 __ 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] FW: Multivalue Question
You will need to add MORE.FLAG = (MVDATA# ) again to just before the REPEAT, for the WHILE To function properly, otherwise, it's just using the flag set prior To starting the LOOP George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, June 07, 2012 12:45 PM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] FW: Multivalue Question
It's only round because 2048 is a 2^n value. Any of the 2^n value as the base x 10^n will be round in hex. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben Sent: Thursday, June 07, 2012 1:04 PM To: U2 Users List Subject: Re: [U2] FW: Multivalue Question No idea why, but it is a round number when you view it as hex. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] FW: Multivalue Question
George, The REMOVE will set the MORE.FLAG to 0 when it reaches the last value. 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 George Gallen Sent: Thursday, June 07, 2012 10:04 AM To: U2 Users List Subject: Re: [U2] FW: Multivalue Question You will need to add MORE.FLAG = (MVDATA# ) again to just before the REPEAT, for the WHILE To function properly, otherwise, it's just using the flag set prior To starting the LOOP George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, June 07, 2012 12:45 PM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT ___ 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] FW: Multivalue Question
Within the loop the REMOVE *function* sets the MORE.FLAG variable to 0 if you are at the end of the string -Original Message- From: George Gallen ggal...@wyanokegroup.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 10:04 am Subject: Re: [U2] FW: Multivalue Question You will need to add MORE.FLAG = (MVDATA# ) again to just before the REPEAT, for the WHILE To function properly, otherwise, it's just using the flag set prior To starting the LOOP George -Original Message- rom: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] n Behalf Of David A. Green ent: Thursday, June 07, 2012 12:45 PM o: 'U2 Users List' ubject: Re: [U2] FW: Multivalue Question Use instead: ORE.FLAG = (MVDATA # ) OOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... EPEAT ___ 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
Re: [U2] FW: Multivalue Question
Ooh.. OK. I was thinking it was actually checking (MVDATA#) - MORE.FLAG on each iteration Rather than putting the status of the REMOVE into MORE.FLAG and not having anything to do with MVDATA# anymore. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, June 07, 2012 1:08 PM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question George, The REMOVE will set the MORE.FLAG to 0 when it reaches the last value. David A. Green (480) 813-1725 DAG Consulting ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] FW: Multivalue Question
No, I take that back. Not true. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, June 07, 2012 1:08 PM To: U2 Users List Subject: Re: [U2] FW: Multivalue Question It's only round because 2048 is a 2^n value. Any of the 2^n value as the base x 10^n will be round in hex. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben Sent: Thursday, June 07, 2012 1:04 PM To: U2 Users List Subject: Re: [U2] FW: Multivalue Question No idea why, but it is a round number when you view it as hex. ___ 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] FW: Multivalue Question
UniData does not keep AM pointers. You might be thinking about UniVerse's hinting mechanism. Regards, Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David Wolverton Sent: Thursday, June 07, 2012 10:50 AM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question Or since UniData does keep AM pointers, you could do this - then the @SVM become @VM -- and if there is sub-valued data, in some ways this is EASIER than tracking what item 'REMOVE' is handling. SEARCHITEM = RAISE(RECORD31) CNT = DCOUNT(SEARCHITEM,@AM) FOR PTR = 1 TO CNT ELEMENT = SEARCHITEMPTR NEXT PTR -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, June 07, 2012 11:45 AM To: 'U2 Users List' Subject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: CNT = DCOUNT(MVDATA, @VM) FOR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... NEXT PTR Use instead: MORE.FLAG = (MVDATA # ) LOOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... REPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? 2. How do you need to retrieve it? 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 Al DeWitt Sent: Thursday, June 07, 2012 9:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that contains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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] FW: Multivalue Question
Does Unidata allow the following type of construct SEARCHITEM = RAISE(RECORD31) SELECTV SEARCHITEM TO MYSEARCHLIST DONE = FALSE; CNT = 0 LOOP READNEXT ITEM FROM MYSEARCHLIST ELSE DONE = TRUE that's how I do this in Universe, not sure if you can do this in Unidata -Original Message- From: Daniel McGrath dmcgr...@rocketsoftware.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thu, Jun 7, 2012 10:26 am Subject: Re: [U2] FW: Multivalue Question UniData does not keep AM pointers. You might be thinking about UniVerse's inting mechanism. Regards, an -Original Message- rom: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] n Behalf Of David Wolverton ent: Thursday, June 07, 2012 10:50 AM o: 'U2 Users List' ubject: Re: [U2] FW: Multivalue Question Or since UniData does keep AM pointers, you could do this - then the @SVM become VM -- and if there is sub-valued data, in some ways this is EASIER than racking what item 'REMOVE' is handling. SEARCHITEM = RAISE(RECORD31) NT = DCOUNT(SEARCHITEM,@AM) OR PTR = 1 TO CNT ELEMENT = SEARCHITEMPTR EXT PTR -Original Message- rom: u2-users-boun...@listserver.u2ug.org mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green ent: Thursday, June 07, 2012 11:45 AM o: 'U2 Users List' ubject: Re: [U2] FW: Multivalue Question X = RECORD31 isn't your issue. This is your issue: NT = DCOUNT(MVDATA, @VM) OR PTR=1 TO CNT SNGDATA = MVDATA1, PTR ... EXT PTR Use instead: ORE.FLAG = (MVDATA # ) OOP WHILE MORE.FLAG DO SNGDATA = REMOVE(MVDATA, MORE.FLAG) ... EPEAT Of course other factors can help your decision on how to store your data. 1. Does it need to be sorted? . How do you need to retrieve it? David A. Green 480) 813-1725 AG Consulting -Original Message- rom: u2-users-boun...@listserver.u2ug.org mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Al DeWitt ent: Thursday, June 07, 2012 9:30 AM o: u2-users@listserver.u2ug.org ubject: [U2] FW: Multivalue Question Unidata 7.1.20 Pick Flavor I am going to end up with a situation where I will have a multivalue field that ontains 5500 +/- values. Each value will be 5-characters long. I'm concerned that this will issues with the following statement: X = RECORD31 I've tried searching the manuals and can't find a good answer. Appreciate your input. Albert DeWitt, CPIM ___ 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 __ 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
Re: [U2] Why did this compile??
A Pickism, not a Prime-ism. Prime demanded that you say FMT( TRIM( LINE3, ~ ) if that's what you meant. VLIST the program it will be obvious how it compiled. cds On 6/7/2012 1:47 PM, David Wolverton wrote: Look at this line of code... TEST.STRING = TRIM(LINE1):~:TRIM(LINE3)~:TRIM(LINE4) See how it is missing the : between3)~ ?? Neither did I ... and the program compiled and ran without a complaint in UniData 7.2.12 -- but Obviously I was getting bogus results on the other side!! I'm trying to figure out why this was 'allowed' ... I'm ready this and thinking this should have tripped a compile message of SOME type! Just one of those 'how weird is this' things I thought I'd share since it cost me about an hour to find!! DW ___ 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] Why did this compile??
I believe that it saw the second tilde as a format string. On 6/7/2012 2:47 PM, David Wolverton wrote: Look at this line of code... TEST.STRING = TRIM(LINE1):~:TRIM(LINE3)~:TRIM(LINE4) See how it is missing the : between 3)~ ?? Neither did I ... and the program compiled and ran without a complaint in UniData 7.2.12 -- but Obviously I was getting bogus results on the other side!! I'm trying to figure out why this was 'allowed' ... I'm ready this and thinking this should have tripped a compile message of SOME type! Just one of those 'how weird is this' things I thought I'd share since it cost me about an hour to find!! DW ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Why did this compile??
Exactly correct... ~:TRIM(LINE4) would be used as an output formatting string. Just like TEST.STRING = 12345.678R2#10 would result in the string 12345.68 ... david ... David L. Wasylenko President, Pick Professionals, Inc w) 314 558 1482 d...@pickpro.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen Egerton Sent: Thursday, June 07, 2012 2:16 PM To: U2 Users List Subject: Re: [U2] Why did this compile?? I believe that it saw the second tilde as a format string. On 6/7/2012 2:47 PM, David Wolverton wrote: Look at this line of code... TEST.STRING = TRIM(LINE1):~:TRIM(LINE3)~:TRIM(LINE4) See how it is missing the : between 3)~ ?? Neither did I ... and the program compiled and ran without a complaint in UniData 7.2.12 -- but Obviously I was getting bogus results on the other side!! I'm trying to figure out why this was 'allowed' ... I'm ready this and thinking this should have tripped a compile message of SOME type! Just one of those 'how weird is this' things I thought I'd share since it cost me about an hour to find!! DW ___ 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] Why did this compile??
When I was working at Pick Systems I found that anything can be passed into format masks from BASIC, OCONV, or an F-correlative. If it doesn't blow up some code deep down in the parser then it's just ignored. I think the theory is that if someone knows enough to get down that far into the bowels of the system then they'll be able to diagnose errors resulting from faulty codes. It's sort of like not putting a Be careful of falling trees sign in a forest where lumberjacks work. The compiler doesn't know that ~ is an invalid mask, since that's a runtime feature. So VARanything will compile, which is unfortunate because it's probably safe to say that ALL of us have tripped on this exact same issue at some point, maybe every few months for some of us. I guess the only thing that amazes me is that none of the MVDBMS providers (to my knowledge) have ever added an optional runtime trap or log option when an invalid mask is detected at runtime - seems like they're all just missing a Case 1 or Case True fall-through condition. T From: David L. Wasylenko Exactly correct... ~:TRIM(LINE4) would be used as an output formatting string. Just like TEST.STRING = 12345.678R2#10 would result in the string 12345.68 From: Allen Egerton I believe that it saw the second tilde as a format string. David Wolverton wrote: TEST.STRING = TRIM(LINE1):~:TRIM(LINE3)~:TRIM(LINE4) See how it is missing the : between 3)~ ?? Neither did I ... and the program compiled and ran without a complaint ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users