Re: [U2] unidata index
I do not believe so. I believe an index is only used during the SELECT statement and then only when the indexed field is the only field in the select criteria. So, if practical, use the indexed field in the first selection of the file, then all records will be in sorted order of the indexed field. Then narrow that list down by other, non-indexed fields. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Davis Sent: Thursday, March 13, 2014 2:19 PM To: U2 Users List Subject: Re: [U2] unidata index Don't know - I wouldn't index a field for that reason alone. And it probably wouldn't help if you had other fields you were sorting by, or other fields you were selecting, in the same select statement. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Thursday, March 13, 2014 2:15 PM To: U2 Users List Subject: [U2] unidata index Stupid index question: does indexing a field help performance when sorting BY that field but it's not otherwise involved in the query? -- Jeffrey Butera, PhD Associate Director for Applications and Web Services Information Technology Hampshire College 413-559-5556 http://www.hampshire.edu http://www.facebook.com/hampshirecollegeit ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users Dave Davis Team Lead, Research Development P: 614-875-4910 x108 F: 614-875-4088 E: dda...@harriscomputer.com [http://www.harriscomputer.com/images/signatures/HarrisSchools.jpg] [http://www.harriscomputer.com/images/signatures/DivisionofHarris.gif]http://www.harriscomputer.com/ 6110 Enterprise Parkway Grove City, OH 43123 www.harris-schoolsolutions.comhttp://www.harris-schoolsolutions.com This message is intended exclusively for the individual or entity to which it is addressed. This communication may contain information that is proprietary, privileged or confidential or otherwise legally exempt from disclosure. If you are not the named addressee, you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If you have received this message in error, please notify the sender immediately by e-mail and delete all copies of the 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] Reporting Tools
Two things. First I tend to agree with the number of columns. Perhaps the report is trying to do more than just a couple of things. Consider evaluating the various uses of this report and producing more, smaller reports that provide only what the needs are. Second, I'm a programmer so I just program all of my reports. Columns and rows are really just one big long string with a variety of delimiters. If you are producing reports at TCL then a programmer could make that very easy. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Lettau Sent: Friday, February 28, 2014 9:29 AM To: U2 Users List Subject: Re: [U2] Reporting Tools In the past I've made dictionary names that are very short to save characters. But my real reason for responding is I can't help but wonder what you need 200+ columns for? My first instinct when hearing this is that a report is not what you need. How many rows are in this report? Please note that my email address has changed. Beginning immediately my new address is jeff.let...@soundunited.com . Use this new address for all communications. Jeffrey Lettau | ERP Systems Manager | O 410.358.3600 | D 410.764.5242 | 5601 Metro Drive | Baltimore MD 21215 | www.soundunited.com Polk Audio - WWW.POLKAUDIO.COM Definitive Technologies - WWW.DEFINITIVETECH.COM BOOM Movement - WWW.BOOMMOVEMENT.COM -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of jeffrey Butera Sent: Friday, February 28, 2014 9:22 AM To: U2 Users List Subject: [U2] Reporting Tools I'm looking for feedback from those in any industry about your report needs with U2 and what tools you use to solve them. In short, Entrinsik has serious inroads in the academic community and Informer is a reasonably good and inexpensive tool for most reports. However, we are running into issues with some users like to write large reports. Large, by out standards, are reports with 200+ columns in the output. Are others writing reports with this many output fields? If so, are you ever running up against limits in the sentence size (U_SENTLEN)? Our limit is about 9700 chars and we have some reports hitting this limit. I'm having a hard time explaining to some VP types that the database can't handle this size report... Any feedback is welcome. -- Jeffrey Butera, PhD Associate Director for Application and Web Services Information Technology Hampshire College 413-559-5556 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users Disclaimer: This email may contain confidential and/or privileged information. It is intended only for the person or persons to whom it is addressed. Any unauthorized review, use, or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email or telephone and destroy all copies of the original message. Please consider the environment before printing this email. ___ 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] Accuterm the Web version
Please elaborate. What exactly does Pete say. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bruce Decker Sent: Monday, December 23, 2013 12:58 PM To: U2 Users List Subject: Re: [U2] Accuterm the Web version If Pete says it, I believe it. -BD On 12/23/2013 10:52 AM, Wjhonson wrote: We are using the Accuterm application to telnet into Universe 11 I've toyed with the idea of using the Accuterm browser version, does anyone here use that ? I just wonder what are the advantages or disadvantages of that. I know what Pete says, I want to hear from a customer though. ___ 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] UniData Dynamic File Splitting Question
Agreed, the first step is to create the file so there are as many DAT files as necessary and only one or two OVER files. Once you've done that, copied all of the records over to the new file and it remains with only one or two OVER files, THEN do some analytics to establish the SPLIT/MERGE and the hash type (KEYONLY vs KEYDATA) Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Baakkonen, Rodney A (Rod) 46K Sent: Friday, July 12, 2013 12:56 PM To: U2 Users List Subject: Re: [U2] UniData Dynamic File Splitting Question We have some very large dynamic files. Some are over 100 gigabytes in size. Too me it is weird that you have one dat portion and 45 overflow portions of the file. My 100 gig file has 43 Dat portions and 1 overflow, which is what I try to maintain. I want as few overflow portions of the file as I can get. What does GROUP.STAT say about this file? When you do the guide, it shows how many records fall into 1-512 512-1028 1028-2056 etc. I try and adjust my block size for the file to get close to 80-90% of the records in the file to fit into the block size. I usually don't use memresize to rebuild my dynamic files. I create a new file with the configuration I want. We have developed a process called PHANTOM.COPY. It requires a list of the id's that exist in the current file. Then if I tell PHANTOM.COPY to run using 10 phantoms, it breaks the list up into 10 pieces and does simultaneous copies. So it is not much slower than memresize. The reasoning for this is that memresize creates one overflow portion for every dat portion. And I don't want my 100 gig file to have 43 dats and 43 overflow portions. I want 43 dats and one overflow if I can do it. And PHANTOM.COPY allows me to get that setup. This allows me to figure out what files need resizing too. If I have more than a couple overflow portions, it is time to rebuild the file again. Are you using KEYONLY or KEYDATA for your dynamic files. We have had problems with KEYDATA when we have a keys that have #''s for separators in the key. So for these files, I use KEYONLY. We use all kinds of dynamic files and most are quite large. We are on 7.1 though. So maybe 7.2 has issues. - Rod -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Cinda Goff Sent: Friday, July 12, 2013 11:35 AM To: u2-users@listserver.u2ug.org Subject: [U2] UniData Dynamic File Splitting Question I work with the North Carolina Community College System which supports the 58 NC colleges. We have an unusual dynamic file issue at a couple of the colleges and am hoping someone could provide some insight/direction. OS - Solaris 10 UniData version 7.2.5 (have upgraded a couple of times in the past from 6.1 and 7.1) Colleges have been running Ellucian's Colleague software since 2001 The problems do not seem to be occurring in all dynamic files but where there are issues, there are more than 100 files affected. From timestamps in some of the files, we can see that this has been going on for several years but we are unaware of the issue until the files have split into so many parts that the application can no longer open enough files to read/write the files. Database tools do not show these files as undersized or in overflow2. Guide will show you the many parts if you know what to look for but it is not obvious that the file is fragmented. When we found the issue at the first college we opened a call with Ellucian and was told to resize the files.We had a call to Rocket opened and unfortunately didn't get much further. The Rocket support analyst looked at udtdiags for us and did not find anything out of the ordinary. Rocket identified a couple of potential dynamic file issues at our UniData version and suggested that we upgraded to UniData 7.3. One of the identified issues seemed to apply but it did not explain all issues. We are looking at the UniData upgrade but we likely will still need to address the current file issues. We started resizing files and the files were compressed as expected but soon began splitting again. To 'fix' the files now, we are manually recreating the files, copying data to new files, renaming everything and rebuilding any indices. Long and tedious process but the file seem to behave better, at least so far. Below is a listing of one of the main application files and all its parts. Many of the files have many more parts that the listing below. The splitting occurs with dat, over and idx with files some files having many of one part while other have many of all. If anyone has any insight into how/why the files split this way and suggestion on how
Re: [U2] UniData Dynamic File Splitting Question
Frankly, this doesn't look like a very big file at all, and I'm amazed you're getting any 'performance' out of it at all with all those OVER files. Crazy! Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Susan Lynch Sent: Friday, July 12, 2013 12:53 PM To: U2 Users List Subject: Re: [U2] UniData Dynamic File Splitting Question Cinda, my apologies for mis-spelling your name in my previous response . Susan Lynch -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Cinda Goff Sent: Friday, July 12, 2013 12:48 PM To: U2 Users List Subject: Re: [U2] UniData Dynamic File Splitting Question We could with some of them but a good number of them need to remain dynamic because they are in total over the 2gb limit. -- Cinda Goff N.C. Community College System Database Administrator 919 807-7060 vRoom Link: https://sas.elluminate.com/m.jnlp?password=M.BDCC127B096D131E11EAC16A0F947 3sid=2008362 E-mail correspondence to and from this address may be subject to the North Carolina Public Records Law and shall be disclosed to third parties when required by the statutes. (NCGS.Ch.132) -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Friday, July 12, 2013 12:46 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniData Dynamic File Splitting Question Instead of trying to keep recreating these dynamically every night, why not switch to a non-dynamic form ? -Original Message- From: Cinda Goff go...@nccommunitycolleges.edu To: u2-users u2-users@listserver.u2ug.org Sent: Fri, Jul 12, 2013 9:36 am Subject: [U2] UniData Dynamic File Splitting Question I work with the North Carolina Community College System which supports the 58 NC colleges. We have an unusual dynamic file issue at a couple of the colleges and am hoping someone could provide some insight/direction. OS - Solaris 10 UniData version 7.2.5 (have upgraded a couple of times in the past from 6.1 and 7.1) Colleges have been running Ellucian's Colleague software since 2001 The problems do not seem to be occurring in all dynamic files but where there are issues, there are more than 100 files affected. From timestamps in some of the files, we can see that this has been going on for several years but we are unaware of the issue until the files have split into so many parts that the application can no longer open enough files to read/write the files. Database tools do not show these files as undersized or in overflow2. Guide will show you the many parts if you know what to look for but it is not obvious that the file is fragmented. When we found the issue at the first college we opened a call with Ellucian and was told to resize the files.We had a call to Rocket opened and unfortunately didn't get much further. The Rocket support analyst looked at udtdiags for us and did not find anything out of the ordinary. Rocket identified a couple of potential dynamic file issues at our UniData version and suggested that we upgraded to UniData 7.3. One of the identified issues seemed to apply but it did not explain all issues. We are looking at the UniData upgrade but we likely will still need to address the current file issues. We started resizing files and the files were compressed as expected but soon began splitting again. To 'fix' the files now, we are manually recreating the files, copying data to new files, renaming everything and rebuilding any indices. Long and tedious process but the file seem to behave better, at least so far. Below is a listing of one of the main application files and all its parts. Many of the files have many more parts that the listing below. The splitting occurs with dat, over and idx with files some files having many of one part while other have many of all. If anyone has any insight into how/why the files split this way and suggestion on how to correct and prevent it in the future, I would very much like to hear your ideas. Thanks for your input and suggestions. Cinda Goff sun2:/datatel/coll18/production/apphome/DATA/DATA_P/PERSON165-$ ls -al total 533958 drwxrwx--- 2 datatel users 1536 Jun 26 12:42 . drwxrwx--- 269 datatel users 13824 Feb 18 10:24 .. -rw-rw 1 datatel users6292480 Jul 1 12:57 dat001 -rw-rw 1 datatel users152743936 Jul 1 12:56 idx001 -rw-rw-rw- 1 gmoore users 4096 Aug 12 2011 idx002 -rw-rw-rw- 1 gmoore users 4096 Aug 12 2011 idx003 -rw-rw-rw- 1 ijackson users 4096 Aug 12 2011 idx004 -rw-rw-rw- 1 gmoore users 4096
Re: [U2] : Evaluating DCOUNT
Hey Allen, The REMOVE so fast How fast is it?! Match Game throwback that I suspect the time it takes to interpret the difference between a VM and AM is negligible. I could be wrong. And as far as using dimensioned arrays, agreed. They do seem to improve speed ... but still not in comparison to the REMOVE virtual bow to the REMOVE god. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen Egerton Sent: Monday, February 11, 2013 9:02 AM To: U2 Users List Subject: Re: [U2] : Evaluating DCOUNT David, You're correct that the remove is faster, and it is because it maintains an internal pointer to the next item, as opposed to positioning to it for each reference. And I'm pretty sure that you can make it run even faster with: LINE.KEYS = RAISE(HEADER.REC200) As a matter of preference, I would set D1 to 999 or some other numeric value rather than a null, only because Universe/Unidata is typeless, and I would be afraid that the null, (), might be treated as a zero; but that's just personal fear and preference not based on a horror story. On 2/11/2013 8:30 AM, Dave Laansma wrote: I would HOPE that it evaluates it each time since the size of array could change within the loop. Personally if the size of array is relatively small, DCOUNT is alright. However I've found REMOVE to be EXTREMELY faster and therefore use it whenever possible, even on small arrays. For example, we have two files, a 'header' and 'detail' file. The keys to the 'detail' file are stored in attribute 200 of the header file. So I'll pull the keys out of the header record, such: LINE.KEYS = HEADER.REC200 D1 = LOOP UNTIL D1 = 0 REMOVE LINE.KEY FROM LINE.KEYS SETTING D1 loop statements REPEAT As opposed to: FOR V1 = 1 TO DCOUNT(HEADER.REC200,@VM) LINE.KEY = HEADER.REC200,V1 loop statements NEXT V1 Based on historical dialogs on this subject on this forum, I have seen an improvement in overall performance. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Monday, February 11, 2013 7:55 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] : Evaluating DCOUNT On 02/11/2013 12:14 AM, Peter Cheney wrote: Hi Everyone, Does a DCOUNT get evaluated again for each iteration of a loop? Or is UniVerse these days intelligent enough to keep track of what's going on? e.g. for i = 1 to dcount(array,@fm) *commands here next i versus totalattributes = dcount(array,@fm) for i = 1 to totalattributes *commands here next i Apart from readability and perhaps easier debugging is there an actual internal difference? I know it was an issue on older pick releases but I cannot remember if it ever affected UV? Not sure about universe, but unidata defintely checks the DCOUNT for each iteration. This produces 4 (not 2): CT=0 X=45:@VM:58 FOR I=1 TO DCOUNT(X,@VM) CT+=1 IF I=2 THEN X1,-1 = 99 END NEXT I CRT CT ___ 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] : Evaluating DCOUNT
Interesting ... certainly worth := trying! Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tom Whitmore Sent: Tuesday, February 12, 2013 1:43 PM To: U2 Users List Subject: Re: [U2] : Evaluating DCOUNT Hi, When you have more than about 1,000 values in a field, changing the value mark to a field mark, is significant. I had a program that needed to work through two fields with over 20,000 values. Initially, I left the strings as value delimited, used a for/next loop and assigned the results to a new field delimited string using -1. The program took about 15 minutes to perform the tasks needed. I then raised each string, used remove and concatenated @FM:item. It was done almost immediately, there was no perception of a delay getting to TCL. To put it in code snippet, the first took 15 minutes and the second took maybe a second. X=20K values Y=20K values Z='' MAX=DCOUNT(X,@VM) FOR C=1 TO MAX I1=X1,C I2=Y1,C ZC=I1*I2 NEXT C X=RAISE(20Kvalues) Y=RASE(20Kvalues) Z='' LOOP REMOVE I1 FROM X SETTING XPOS REMOVE I2 FROM Y SETING YPOS UNTIL I1='' AND I2='' AND XPOS=0 AND YPOS=0 IF (Z) THEN Z:=@AM:I1*I2 ELSE Z=I1*I2 REPEAT There are several things: 1) REMOVE is faster than extract, especially when you are working with values 2) Strings are treated different from dynamic arrays even though in theory you are doing the same thing (appending to the end of the string). 3) COUNT will scan the string, then the extract will scan the string when it is value delimited. Field marks are indexes so the first scan resolves the location where each field begins. Tom RATEX Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Tuesday, February 12, 2013 1:21 PM To: 'U2 Users List' Subject: Re: [U2] : Evaluating DCOUNT Hey Allen, The REMOVE so fast How fast is it?! Match Game throwback that I suspect the time it takes to interpret the difference between a VM and AM is negligible. I could be wrong. And as far as using dimensioned arrays, agreed. They do seem to improve speed ... but still not in comparison to the REMOVE virtual bow to the REMOVE god. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen Egerton Sent: Monday, February 11, 2013 9:02 AM To: U2 Users List Subject: Re: [U2] : Evaluating DCOUNT David, You're correct that the remove is faster, and it is because it maintains an internal pointer to the next item, as opposed to positioning to it for each reference. And I'm pretty sure that you can make it run even faster with: LINE.KEYS = RAISE(HEADER.REC200) As a matter of preference, I would set D1 to 999 or some other numeric value rather than a null, only because Universe/Unidata is typeless, and I would be afraid that the null, (), might be treated as a zero; but that's just personal fear and preference not based on a horror story. On 2/11/2013 8:30 AM, Dave Laansma wrote: I would HOPE that it evaluates it each time since the size of array could change within the loop. Personally if the size of array is relatively small, DCOUNT is alright. However I've found REMOVE to be EXTREMELY faster and therefore use it whenever possible, even on small arrays. For example, we have two files, a 'header' and 'detail' file. The keys to the 'detail' file are stored in attribute 200 of the header file. So I'll pull the keys out of the header record, such: LINE.KEYS = HEADER.REC200 D1 = LOOP UNTIL D1 = 0 REMOVE LINE.KEY FROM LINE.KEYS SETTING D1 loop statements REPEAT As opposed to: FOR V1 = 1 TO DCOUNT(HEADER.REC200,@VM) LINE.KEY = HEADER.REC200,V1 loop statements NEXT V1 Based on historical dialogs on this subject on this forum, I have seen an improvement in overall performance. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Monday, February 11, 2013 7:55 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] : Evaluating DCOUNT On 02/11/2013 12:14 AM, Peter Cheney wrote: Hi Everyone, Does a DCOUNT get evaluated again for each iteration of a loop? Or is UniVerse these days intelligent
Re: [U2] : Evaluating DCOUNT
I would HOPE that it evaluates it each time since the size of array could change within the loop. Personally if the size of array is relatively small, DCOUNT is alright. However I've found REMOVE to be EXTREMELY faster and therefore use it whenever possible, even on small arrays. For example, we have two files, a 'header' and 'detail' file. The keys to the 'detail' file are stored in attribute 200 of the header file. So I'll pull the keys out of the header record, such: LINE.KEYS = HEADER.REC200 D1 = LOOP UNTIL D1 = 0 REMOVE LINE.KEY FROM LINE.KEYS SETTING D1 loop statements REPEAT As opposed to: FOR V1 = 1 TO DCOUNT(HEADER.REC200,@VM) LINE.KEY = HEADER.REC200,V1 loop statements NEXT V1 Based on historical dialogs on this subject on this forum, I have seen an improvement in overall performance. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Monday, February 11, 2013 7:55 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] : Evaluating DCOUNT On 02/11/2013 12:14 AM, Peter Cheney wrote: Hi Everyone, Does a DCOUNT get evaluated again for each iteration of a loop? Or is UniVerse these days intelligent enough to keep track of what's going on? e.g. for i = 1 to dcount(array,@fm) *commands here next i versus totalattributes = dcount(array,@fm) for i = 1 to totalattributes *commands here next i Apart from readability and perhaps easier debugging is there an actual internal difference? I know it was an issue on older pick releases but I cannot remember if it ever affected UV? Not sure about universe, but unidata defintely checks the DCOUNT for each iteration. This produces 4 (not 2): CT=0 X=45:@VM:58 FOR I=1 TO DCOUNT(X,@VM) CT+=1 IF I=2 THEN X1,-1 = 99 END NEXT I CRT CT -- Jeffrey Butera, PhD Associate Director for Application and Web Services Information Technology 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] : Evaluating DCOUNT
Jeff, My understanding is part of our problem is the fact that my multivalues are at position 200 and each time it has to count how many multivalues there are, it has to skim through the first 200 attributes, multivalues and subvalues to get to 200 before it even starts counting. So it's not so much of an issue of how many multivalues there are in 200, it's everything in 1-199 as well. Which in turn suggests that, when designing files, it may be a good idea to cluster your multivalue attributes near the beginning of your records. But that's another discussion. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Monday, February 11, 2013 8:35 AM To: U2 Users List Cc: U2 Users List Subject: Re: [U2] : Evaluating DCOUNT David is correct (re: performance). Most of our app here have MV lists under 40-50 so it's not a huge issue. If you app has hundreds+ this could be a big challenge. Jeff Butera -- A tree falls the way it leans. Be careful which way you lean. The Lorax On Feb 11, 2013, at 8:30 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: I would HOPE that it evaluates it each time since the size of array could change within the loop. Personally if the size of array is relatively small, DCOUNT is alright. However I've found REMOVE to be EXTREMELY faster and therefore use it whenever possible, even on small arrays. For example, we have two files, a 'header' and 'detail' file. The keys to the 'detail' file are stored in attribute 200 of the header file. So I'll pull the keys out of the header record, such: LINE.KEYS = HEADER.REC200 D1 = LOOP UNTIL D1 = 0 REMOVE LINE.KEY FROM LINE.KEYS SETTING D1 loop statements REPEAT As opposed to: FOR V1 = 1 TO DCOUNT(HEADER.REC200,@VM) LINE.KEY = HEADER.REC200,V1 loop statements NEXT V1 Based on historical dialogs on this subject on this forum, I have seen an improvement in overall performance. Sincerely, David Laansma Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeffrey Butera Sent: Monday, February 11, 2013 7:55 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] : Evaluating DCOUNT On 02/11/2013 12:14 AM, Peter Cheney wrote: Hi Everyone, Does a DCOUNT get evaluated again for each iteration of a loop? Or is UniVerse these days intelligent enough to keep track of what's going on? e.g. for i = 1 to dcount(array,@fm) *commands here next i versus totalattributes = dcount(array,@fm) for i = 1 to totalattributes *commands here next i Apart from readability and perhaps easier debugging is there an actual internal difference? I know it was an issue on older pick releases but I cannot remember if it ever affected UV? Not sure about universe, but unidata defintely checks the DCOUNT for each iteration. This produces 4 (not 2): CT=0 X=45:@VM:58 FOR I=1 TO DCOUNT(X,@VM) CT+=1 IF I=2 THEN X1,-1 = 99 END NEXT I CRT CT -- Jeffrey Butera, PhD Associate Director for Application and Web Services Information Technology 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 ___ 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] Multiple UniData Indexes in same select
Excellent news. However, is there a way to utilize two indexes with the SELECTINDEX command in Unibasic? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wally Terhune Sent: Wednesday, November 07, 2012 11:47 AM To: U2 Users List Subject: Re: [U2] Multiple UniData Indexes in same select From the Using UniData manual: Alternate Indexes in UniQuery Statement Prior to UniData 5.2, only one index was used in the selection criteria of a UniQuery statement, even if the selection criteria contained more than one indexed attribute. UniQuery now uses all available indexes when processing a statement containing selection criteria.Note: You cannot use an alternate index with a LIKE clause when the comparative attribute is numeric. Wally Terhune Technical Support Engineer Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA t: +1 720 475 8055 **e: wterh...@rocketsoftware.com **w: u2.rocketsoftware.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer Sent: Wednesday, November 07, 2012 7:35 AM To: U2 Users List Subject: [U2] Multiple UniData Indexes in same select Good morning, I should know this, but as the gray gets thicker, some of the old knowledge seeps away. If you have indexes on multiple attributes on a file in UniData AND you include both of those indexed attributes in the same Select statement, how does UniData know which index to use? Does it use both? Neither? Thanks in advance, Doug This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimize the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. Any views and/or opinions expressed in this e-mail are of the author only and do not represent the views of Epicor Software Corporation or any other company within its group. This message has been scanned for malware by Websense. www.websense.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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Inverting/Pivoting a table
SPLICE ... now THAT'S a cool little tool! I'll have to do some testing with null attributes and values, but this just may work! Thank you Rex and Stuart! Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rex Gozar Sent: Tuesday, September 11, 2012 1:08 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table Not a function, but there are some subroutines that flip posted on PickWiki: http://www.pickwiki.com/cgi-bin/wiki.pl?Row2Col AND http://www.pickwiki.com/cgi-bin/wiki.pl?Row2Col_II rex ___ 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] Inverting/Pivoting a table
I get flat files that I'd like to 'flip' to accommodate the multi-value database. For example, given this table: 123456vmDAVID JONESvm1234 MAIN ST.vmANYWHEREvmMIvm12345am 654321vmJOHN SMITHvm4321 MAIN ST.vmANYWHEREvmMIvm12345 Is there a function that will change it to: 123456vm654321am DAVID JONESvmJOHN SMITHam 1234 MAIN ST.vm4321 MAIN ST.am ANYWHEREvmANYWHEREam MIvmMIam 12345vm12345 Right now I use these nested loops, which tend to take a while depending on the size of TABLE: NEW.TABLE = FOR A1 = 1 TO DCOUNT(TABLE,@AM) FOR V1 = 1 TO DCOUNT(TABLEA1,@VM) NEW.TABLEV1,A1 = TABLEA1,V1 NEXT V1 NEXT A1 TABLE = NEW.TABLE Sincerely, David Laansma ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Inverting/Pivoting a table
REFORMAT perhaps? I am find no reference to a Unibasic command/statement REFORMAT. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, September 10, 2012 2:20 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Inverting/Pivoting a table REFOMAT -Original Message- From: Wols Lists antli...@youngman.org.uk To: u2-users u2-users@listserver.u2ug.org Sent: Mon, Sep 10, 2012 11:07 am Subject: Re: [U2] Inverting/Pivoting a table On 10/09/12 14:39, Dave Laansma wrote: I get flat files that I'd like to 'flip' to accommodate the multi-value database. For example, given this table: I thought there was a command that would flip a FILE like that. I've never used it, but I recall a colleague making good use of it ... 123456vmDAVID JONESvm1234 MAIN ST.vmANYWHEREvmMIvm12345am 654321vmJOHN SMITHvm4321 MAIN ST.vmANYWHEREvmMIvm12345 Is there a function that will change it to: 123456vm654321am DAVID JONESvmJOHN SMITHam 1234 MAIN ST.vm4321 MAIN ST.am ANYWHEREvmANYWHEREam MIvmMIam 12345vm12345 Right now I use these nested loops, which tend to take a while depending on the size of TABLE: And here you're using dynamic arrays. If you're in PI syntax, do a DCOUNT to get the number of people, dimension some static arrays, and dump the data into that. It'll be MUCH faster. You can REMOVE the elements from the original dynamic array (fast), dump them into your static array(s) (fast), and MATBUILD your new array (fast). NEW.TABLE = FOR A1 = 1 TO DCOUNT(TABLE,@AM) FOR V1 = 1 TO DCOUNT(TABLEA1,@VM) NEW.TABLEV1,A1 = TABLEA1,V1 NEXT V1 NEXT A1 TABLE = NEW.TABLE Sincerely, David Laansma Cheers, Wol ___ 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] Inverting/Pivoting a table
REFORMAT appears to be a UniQuery command and appears to be used to copy records from one file to another. I'm looking for this type of functionality in a UniBasic program. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben Sent: Monday, September 10, 2012 3:41 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table REFORMAT is a TCL command. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: September-10-12 12:39 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table REFORMAT perhaps? I am find no reference to a Unibasic command/statement REFORMAT. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, September 10, 2012 2:20 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Inverting/Pivoting a table REFOMAT -Original Message- From: Wols Lists antli...@youngman.org.uk To: u2-users u2-users@listserver.u2ug.org Sent: Mon, Sep 10, 2012 11:07 am Subject: Re: [U2] Inverting/Pivoting a table On 10/09/12 14:39, Dave Laansma wrote: I get flat files that I'd like to 'flip' to accommodate the multi-value database. For example, given this table: I thought there was a command that would flip a FILE like that. I've never used it, but I recall a colleague making good use of it ... 123456vmDAVID JONESvm1234 MAIN ST.vmANYWHEREvmMIvm12345am 654321vmJOHN SMITHvm4321 MAIN ST.vmANYWHEREvmMIvm12345 Is there a function that will change it to: 123456vm654321am DAVID JONESvmJOHN SMITHam 1234 MAIN ST.vm4321 MAIN ST.am ANYWHEREvmANYWHEREam MIvmMIam 12345vm12345 Right now I use these nested loops, which tend to take a while depending on the size of TABLE: And here you're using dynamic arrays. If you're in PI syntax, do a DCOUNT to get the number of people, dimension some static arrays, and dump the data into that. It'll be MUCH faster. You can REMOVE the elements from the original dynamic array (fast), dump them into your static array(s) (fast), and MATBUILD your new array (fast). NEW.TABLE = FOR A1 = 1 TO DCOUNT(TABLE,@AM) FOR V1 = 1 TO DCOUNT(TABLEA1,@VM) NEW.TABLEV1,A1 = TABLEA1,V1 NEXT V1 NEXT A1 TABLE = NEW.TABLE Sincerely, David Laansma Cheers, Wol ___ 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] Inverting/Pivoting a table
Excerpt from page 1-161 of the UniQuery Commands Reference available at http://www.rocketsoftware.com/u2/products/unidata/resources/manuals/unid ata-7.3-documentation/uniquery-commands-reference/view REFORMAT Syntax REFORMAT filename attributes [selection_criteria] Description The UniQuery REFORMAT command copies record attributes you specify from one data file to another data file. The destination file must already exist. REFORMAT uses the first attribute named in the UniQuery statement as the record ID in the destination file. The remaining attributes in the UniQuery statement become record attributes in the destination file. UniQuery prompts for the name of the destination file after you enter the REFORMAT command. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, September 10, 2012 4:02 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Inverting/Pivoting a table EXECUTE REFORMAT it doesn't copy, it changes the format as well in other words, it pivots, as you asked -Original Message- From: Dave Laansma dlaan...@hubbardsupply.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Sep 10, 2012 12:59 pm Subject: Re: [U2] Inverting/Pivoting a table REFORMAT appears to be a UniQuery command and appears to be used to copy records from one file to another. I'm looking for this type of functionality in a UniBasic program. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben Sent: Monday, September 10, 2012 3:41 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table REFORMAT is a TCL command. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: September-10-12 12:39 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table REFORMAT perhaps? I am find no reference to a Unibasic command/statement REFORMAT. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, September 10, 2012 2:20 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Inverting/Pivoting a table REFOMAT -Original Message- From: Wols Lists antli...@youngman.org.uk To: u2-users u2-users@listserver.u2ug.org Sent: Mon, Sep 10, 2012 11:07 am Subject: Re: [U2] Inverting/Pivoting a table On 10/09/12 14:39, Dave Laansma wrote: I get flat files that I'd like to 'flip' to accommodate the multi-value database. For example, given this table: I thought there was a command that would flip a FILE like that. I've never used it, but I recall a colleague making good use of it ... 123456vmDAVID JONESvm1234 MAIN ST.vmANYWHEREvmMIvm12345am 654321vmJOHN SMITHvm4321 MAIN ST.vmANYWHEREvmMIvm12345 Is there a function that will change it to: 123456vm654321am DAVID JONESvmJOHN SMITHam 1234 MAIN ST.vm4321 MAIN ST.am ANYWHEREvmANYWHEREam MIvmMIam 12345vm12345 Right now I use these nested loops, which tend to take a while depending on the size of TABLE: And here you're using dynamic arrays. If you're in PI syntax, do a DCOUNT to get the number of people, dimension some static arrays, and dump the data into that. It'll be MUCH faster. You can REMOVE the elements from the original dynamic array (fast), dump them into your static array(s) (fast), and MATBUILD your new array (fast). NEW.TABLE = FOR A1 = 1 TO DCOUNT(TABLE,@AM) FOR V1 = 1 TO DCOUNT(TABLEA1,@VM) NEW.TABLEV1,A1 = TABLEA1,V1 NEXT V1 NEXT A1 TABLE = NEW.TABLE Sincerely, David Laansma Cheers, Wol ___ 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 ___ U2-Users mailing
Re: [U2] Inverting/Pivoting a table
:-) Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Monday, September 10, 2012 4:31 PM To: U2 Users List Subject: Re: [U2] Inverting/Pivoting a table Why is the Kink's song Lola suddenly playing in my mind! -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, September 10, 2012 4:21 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Inverting/Pivoting a table Columns become rows Rows become columns ___ 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] CSV to Array
Like Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dianne Ackerman Sent: Thursday, August 16, 2012 8:52 AM To: U2 Users List Subject: Re: [U2] CSV to Array I actually enjoy reading wjhonson's puzzle posts with code examples, etc. Maybe they can be flagged in the header so those of you who don't want to read them can just skip them. -Dianne On 8/15/2012 5:49 PM, Tony Gravagno wrote: Anyone getting paid to play guessing games? Dude, get to the point. If this were presented as I need help I think many people would jump to help. But presenting this as a Mensa challenge is just wasting people's time. T Wjhonson wrote: Rex Gozar uploaded this code, and someone (perhaps him) corrected it, but there's a redundancy here. I'm trying to fix it, in my own version, mostly perhaps I *hate* the CONTINUE, but the logic is a bit convoluted eh? Anyone spot the redundancy ? ___ ___ 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] OT: A little life humor
Sounds like a facebook post unto itself! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Monday, July 30, 2012 11:09 AM To: U2 Users Subject: [U2] OT: A little life humor Over the weekend, my son told us not buy any more cards or gifts for his girlfriend, because they have broken up. (not the humorous part). When we told him we were not surprised because we could see the writing on the wall, he seemed stunned And wanted to know whose wall we saw it on! (facebook reference). He still seem puzzled when we explained That it was just a figure of speech, and couldn't understand why we were laughing when we realized he Thought we saw it on facebook. ___ 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] trimming a list (a test of your ability)
This is the best solution, using REMOVE and building a new list instead of constantly 'shrinking' the original table. That being said, as NEW.LIST gets rather large, adding new elements to it can get 'time' consuming. Just like the REMOVE keeps track of the pointer as you spin through a table, I wish there was a comparable statement that kept track of the pointer as we added new elements -1 to tables. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marco Manyevere Sent: Thursday, July 12, 2012 4:14 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Is this what the OP is asking about or I'm missing something? The 2 code fragments look totally different. We dont know what's happening in GET.UTILITY.RECORD or the significance of UTILITY.NAME and LAST.NAME to totally eliminate them during the 'optimisation' I would rather do: NEW.LIST = '' LOOP REMOVE UTILITY.ID FROM KEY.LIST SETTING MORE WHILE MORE:UTILITY.ID GOSUB GET.UTILITY.RECORD IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN CONTINUE NEW.LIST-1 = UTILITY.ID REPEAT KEY.LIST = NEW.LIST NEW.LIST = '' ;* free the memory From: Kate Stanton k...@walstan.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thursday, 12 July 2012, 4:27 Subject: Re: [U2] trimming a list (a test of your ability) I am getting sucked in! NLST = ;* For new list MAXI = DCOUNT(KEY.LIST1,@vM) ;* Count items FOR INO =1 TO MAXI ;* Each key in list KEY.ID = KEY.LIST1,INO ;* A key ID LOCATE(KEY.ID,NLST,1;POS;'AL') ELSE ;* see if there INS KEY.ID BEFORE NLIST1,POS ;* Sort to list END NEXT INO ;* Check all keys On 12 July 2012 12:09, Wjhonson wjhon...@aol.com wrote: 1295 FOR DISPLAY.LOOP = 1 TO KEY.COUNT 1296 UTILITY.ID = KEY.LIST1,DISPLAY.LOOP 1297 GOSUB GET.UTILITY.RECORD 1298 IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN 1299 KEY.LIST = DELETE(KEY.LIST,1,DISPLAY.LOOP,0) 1300 DISPLAY.LOOP -= 1 1301 KEY.COUNT -= 1 1302 END 1303 NEXT DISPLAY.LOOP Comments? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Phone: + 64 9 360 5310 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] trimming a list (a test of your ability)
Is this technique significantly faster? It still has to search to the end of the table each time it appends this string, doesn't it? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Thursday, July 12, 2012 9:30 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Instead of -1, use string=string:char(254):additionalelement George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Thursday, July 12, 2012 9:20 AM To: Marco Manyevere; U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) This is the best solution, using REMOVE and building a new list instead of constantly 'shrinking' the original table. That being said, as NEW.LIST gets rather large, adding new elements to it can get 'time' consuming. Just like the REMOVE keeps track of the pointer as you spin through a table, I wish there was a comparable statement that kept track of the pointer as we added new elements -1 to tables. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marco Manyevere Sent: Thursday, July 12, 2012 4:14 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Is this what the OP is asking about or I'm missing something? The 2 code fragments look totally different. We dont know what's happening in GET.UTILITY.RECORD or the significance of UTILITY.NAME and LAST.NAME to totally eliminate them during the 'optimisation' I would rather do: NEW.LIST = '' LOOP REMOVE UTILITY.ID FROM KEY.LIST SETTING MORE WHILE MORE:UTILITY.ID GOSUB GET.UTILITY.RECORD IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN CONTINUE NEW.LIST-1 = UTILITY.ID REPEAT KEY.LIST = NEW.LIST NEW.LIST = '' ;* free the memory From: Kate Stanton k...@walstan.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thursday, 12 July 2012, 4:27 Subject: Re: [U2] trimming a list (a test of your ability) I am getting sucked in! NLST = ;* For new list MAXI = DCOUNT(KEY.LIST1,@vM) ;* Count items FOR INO =1 TO MAXI ;* Each key in list KEY.ID = KEY.LIST1,INO ;* A key ID LOCATE(KEY.ID,NLST,1;POS;'AL') ELSE ;* see if there INS KEY.ID BEFORE NLIST1,POS ;* Sort to list END NEXT INO ;* Check all keys On 12 July 2012 12:09, Wjhonson wjhon...@aol.com wrote: 1295 FOR DISPLAY.LOOP = 1 TO KEY.COUNT 1296 UTILITY.ID = KEY.LIST1,DISPLAY.LOOP 1297 GOSUB GET.UTILITY.RECORD 1298 IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN 1299 KEY.LIST = DELETE(KEY.LIST,1,DISPLAY.LOOP,0) 1300 DISPLAY.LOOP -= 1 1301 KEY.COUNT -= 1 1302 END 1303 NEXT DISPLAY.LOOP Comments? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Phone: + 64 9 360 5310 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 ___ 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] trimming a list (a test of your ability)
I'm puzzled by '... doesn't care ...' terminology. Of course it 'cares' about pointers, it still has to get to the end of the 'string' one way or another. So, the question then is, does concatenation := establish and append to a 'string' faster than -1? And if so, why doesn't the database use the same logic for -1 as it does for := since technically they're accomplishing the same thing? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Braid Sent: Thursday, July 12, 2012 9:41 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) String concatenation will probably work faster since it doesn't care about pointers IF NEW.LIST# THEN NEW.LIST := @AM (or @VM if you want in the original format) NEW.LIST := UTILITY.ID Martin -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: 12 July 2012 14:20 To: Marco Manyevere; U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) This is the best solution, using REMOVE and building a new list instead of constantly 'shrinking' the original table. That being said, as NEW.LIST gets rather large, adding new elements to it can get 'time' consuming. Just like the REMOVE keeps track of the pointer as you spin through a table, I wish there was a comparable statement that kept track of the pointer as we added new elements -1 to tables. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marco Manyevere Sent: Thursday, July 12, 2012 4:14 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Is this what the OP is asking about or I'm missing something? The 2 code fragments look totally different. We dont know what's happening in GET.UTILITY.RECORD or the significance of UTILITY.NAME and LAST.NAME to totally eliminate them during the 'optimisation' I would rather do: NEW.LIST = '' LOOP REMOVE UTILITY.ID FROM KEY.LIST SETTING MORE WHILE MORE:UTILITY.ID GOSUB GET.UTILITY.RECORD IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN CONTINUE NEW.LIST-1 = UTILITY.ID REPEAT KEY.LIST = NEW.LIST NEW.LIST = '' ;* free the memory From: Kate Stanton k...@walstan.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thursday, 12 July 2012, 4:27 Subject: Re: [U2] trimming a list (a test of your ability) I am getting sucked in! NLST =;* For new list MAXI = DCOUNT(KEY.LIST1,@vM) ;* Count items FOR INO =1 TO MAXI ;* Each key in list KEY.ID = KEY.LIST1,INO;* A key ID LOCATE(KEY.ID,NLST,1;POS;'AL') ELSE ;* see if there INS KEY.ID BEFORE NLIST1,POS ;* Sort to list END NEXT INO ;* Check all keys On 12 July 2012 12:09, Wjhonson wjhon...@aol.com wrote: 1295 FOR DISPLAY.LOOP = 1 TO KEY.COUNT 1296 UTILITY.ID = KEY.LIST1,DISPLAY.LOOP 1297 GOSUB GET.UTILITY.RECORD 1298 IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN 1299KEY.LIST = DELETE(KEY.LIST,1,DISPLAY.LOOP,0) 1300DISPLAY.LOOP -= 1 1301KEY.COUNT -= 1 1302 END 1303 NEXT DISPLAY.LOOP Comments? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Phone: + 64 9 360 5310 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users Click https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== to report this email as spam. Epicor Software (UK) is a limited company registered in England Wales. Registration Number: 2338274. Registered Office: 6th Floor, One London Wall, London EC2Y 5EB This e-mail
Re: [U2] trimming a list (a test of your ability)
HOLY SMOKES! X = X : string Is CRAZY slow! I had to break out. My results on Unidata/AIX, -1 was SLIGHTLY faster than := for 1,000,000 appendages to a null table. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Thursday, July 12, 2012 12:25 PM To: 'U2 Users List' Subject: Re: [U2] trimming a list (a test of your ability) Ah, but try it with := instead of Y = Y: 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 Daniel McGrath Sent: Thursday, July 12, 2012 8:56 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) ROUNDS = 1 LOOP X = '' ; Y = '' START.TIME = TIME() FOR I = 1 TO ROUNDS X-1 = I NEXT I END.TIME = TIME() CRT END.TIME-START.TIME : vs : START.TIME = TIME() FOR I = 1 TO ROUNDS Y = Y:CHAR(254):I NEXT I END.TIME = TIME() CRT END.TIME-START.TIME ROUNDS *= 2 REPEAT Results suggest that you should od -1, not the multiple concatenation. Dan McGrath Product Manager Rocket Software 4600 S. Ulster Street ..Suite 1100 ..Denver, CO 80237 . USA t: +1.720.475.8098 . m: +1.617.630.7392 . e:dmcgr...@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 George Gallen Sent: Thursday, July 12, 2012 7:30 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Instead of -1, use string=string:char(254):additionalelement George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Thursday, July 12, 2012 9:20 AM To: Marco Manyevere; U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) This is the best solution, using REMOVE and building a new list instead of constantly 'shrinking' the original table. That being said, as NEW.LIST gets rather large, adding new elements to it can get 'time' consuming. Just like the REMOVE keeps track of the pointer as you spin through a table, I wish there was a comparable statement that kept track of the pointer as we added new elements -1 to tables. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marco Manyevere Sent: Thursday, July 12, 2012 4:14 AM To: U2 Users List Subject: Re: [U2] trimming a list (a test of your ability) Is this what the OP is asking about or I'm missing something? The 2 code fragments look totally different. We dont know what's happening in GET.UTILITY.RECORD or the significance of UTILITY.NAME and LAST.NAME to totally eliminate them during the 'optimisation' I would rather do: NEW.LIST = '' LOOP REMOVE UTILITY.ID FROM KEY.LIST SETTING MORE WHILE MORE:UTILITY.ID GOSUB GET.UTILITY.RECORD IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN CONTINUE NEW.LIST-1 = UTILITY.ID REPEAT KEY.LIST = NEW.LIST NEW.LIST = '' ;* free the memory From: Kate Stanton k...@walstan.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Thursday, 12 July 2012, 4:27 Subject: Re: [U2] trimming a list (a test of your ability) I am getting sucked in! NLST = ;* For new list MAXI = DCOUNT(KEY.LIST1,@vM) ;* Count items FOR INO =1 TO MAXI ;* Each key in list KEY.ID = KEY.LIST1,INO ;* A key ID LOCATE(KEY.ID,NLST,1;POS;'AL') ELSE ;* see if there INS KEY.ID BEFORE NLIST1,POS ;* Sort to list END NEXT INO ;* Check all keys On 12 July 2012 12:09, Wjhonson wjhon...@aol.com wrote: 1295 FOR DISPLAY.LOOP = 1 TO KEY.COUNT 1296 UTILITY.ID = KEY.LIST1,DISPLAY.LOOP 1297 GOSUB GET.UTILITY.RECORD 1298 IF INDEX(UTILITY.NAME,LAST.NAME,1) = 0 THEN 1299 KEY.LIST = DELETE(KEY.LIST,1,DISPLAY.LOOP,0) 1300 DISPLAY.LOOP -= 1 1301 KEY.COUNT -= 1 1302 END 1303 NEXT DISPLAY.LOOP Comments? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay
Re: [U2] Really trying to understand dynamic file sizing
Doesn't 1% split load seem a little low? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Averch Sent: Thursday, June 28, 2012 8:56 PM To: U2 Users List Subject: Re: [U2] Really trying to understand dynamic file sizing On Thu, Jun 28, 2012 at 6:50 PM, Doug Averch dave...@gmail.com wrote: 126/4064 (Correction, too late to be working on this) 1 (Correction average Load before split) And that matches your numbers Regards, Doug www.u2logic.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] Really trying to understand dynamic file sizing
Greetings Doug, This is where my confusion is. The formula that I'm using to compute the split load does not change, regardless of the block size. And yet you're saying changing my block size to 2k will change it from 1% to 6%. So, here's my formula, based on the very informative FAQ from Rocket: SPLIT = INT(RECORDS PER BLOCK * IDSIZE * 100 / BLOCKSIZE) SPLIT = INT(1 * 21 * 100 / 2048) = 1 SPLIT = INT(2 * 21 * 100 / 4096) = 1 Given this formula, the split will never change, regardless of the block size because the RECORDS PER BLOCK will generally increase proportionally to the BLOCK SIZE. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Averch Sent: Friday, June 29, 2012 1:38 PM To: U2 Users List Subject: Re: [U2] Really trying to understand dynamic file sizing Hi Dave: You cannot get any lower than one percent. If you set your block size to 2K that will fix the split problem making about 6%. Your average record size is 1537 which means you will get about one record per block so split by key will be worthless and you will be into Level 2 and/or Level 1 overflow. I have found if you spend a lot of time on one file try to optimize it, then you had 100K worth of records to the file and your work is does not matter. What you want to do is get the file in best shape you can considering growth and usability, then look at this file or all your files in a week or month and see what has happened. Regards, Doug www.u2logic.com XLr8Resizer for fast resizing ___ 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] Really trying to understand dynamic file sizing
Thank you Wally. That's what I was looking for, a 'base' line. 1% or even 6% seemed low. Doesn't splitting basically happen when too many keys are hashed to the same group for KEYONLY hashed files? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wally Terhune Sent: Friday, June 29, 2012 3:06 PM To: U2 Users List Subject: Re: [U2] Really trying to understand dynamic file sizing I wouldn't go below 10%. You could end up with lots of splitting and very sparsely populated groups. Wally Terhune Technical Support Engineer 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 Doug Averch Sent: Friday, June 29, 2012 11:38 AM To: U2 Users List Subject: Re: [U2] Really trying to understand dynamic file sizing Hi Dave: You cannot get any lower than one percent. If you set your block size to 2K that will fix the split problem making about 6%. Your average record size is 1537 which means you will get about one record per block so split by key will be worthless and you will be into Level 2 and/or Level 1 overflow. I have found if you spend a lot of time on one file try to optimize it, then you had 100K worth of records to the file and your work is does not matter. What you want to do is get the file in best shape you can considering growth and usability, then look at this file or all your files in a week or month and see what has happened. Regards, Doug www.u2logic.com XLr8Resizer for fast resizing ___ 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] Really trying to understand dynamic file sizing
Hey Doug, Thanks for your confirmation of my understanding Wally's adeptness in Unidata. I always wait anxiously for his replies to these threads. I believe the *100 simply gets the percentage to a whole number so the INT() works. I am indeed going to go to the 8k block size to reduce the % of 'wasted' space to 2%. That just seems like a reasonable without going all the way to 16k blocks. I'm also going to increase the modulo by 20% from the number of records so it will have a little extra room to grow over the next few months. I'll probably configure the SPLIT for 10% and MERGE for 5% unless someone discourages me before noon tomorrow. That's when I'm pulling the trigger on this resize. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Averch Sent: Friday, June 29, 2012 4:17 PM To: U2 Users List Subject: Re: [U2] Really trying to understand dynamic file sizing Hi Dave and others: Having worked for Wally many years ago at Unidata, his knowledge is unparalleled about Unidata. So given that I've been doing this for a number of years, I'm not sure where the 100 number is coming. The other numbers I have reams of paper, CD's, and thumb drives backing up all of the other numbers. I have tested many a file with different blocks sizes with the same data either adding or subtracting records. I found the split and merge to not happen when I would expect it to. If you put more keys into a smaller modulo the percentage will change because you are using KEYONLY. Your record size is quite large so that is why going to a 2K block size will make things worse. I would recommend going to a 8K block size leaving the current modulo since you a near 100% overflow. You can try it on a temporary file and either tell me I'm wrong or I'm right. Regards, Doug www.u2logic.com/tools.html ___ 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] Really trying to understand dynamic file sizing
I've only got a handful of dynamic files but of course they're huge and have a big impact on our daily and monthly processing. I'd REALLY like to understand the tuning mechanisms for these files, specifically SPLIT/MERGE. The formulas that I got on previous responses just don't seem to make sense on one particular file. So here's a FILE.STAT and ANALYZE.FILE of a file that I believe is in need of resizing and/or reconfiguring. I believe that if I can get some input on this file, I'll be able to apply that knowledge to my other files. First, I understand quite clearly that the modulo of 235889 is about half of what it should be, at least for a block size of 4096. Second, unless I'm doing something wrong, I computed my SPLIT LOAD to be 1, which just doesn't seem right. I'd like to resize this file this weekend and I know that if I do one thing incorrectly it could make my performance even worse. Any input would be greatly appreciated. File name(Dynamic File) = OH Number of groups in file (modulo) = 235889 Dynamic hashing, hash type= 0 Split/Merge type = KEYONLY Block size= 4096 File has 234167 groups in level one overflow. Number of records = 1387389 Total number of bytes = 2132217978 Average number of records per group = 5.9 Standard deviation from average = 1.6 Average number of bytes per group = 9039.1 Standard deviation from average = 9949.2 Average number of bytes in a record = 1536.9 Average number of bytes in record ID = 12.4 Standard deviation from average = 4009.7 Minimum number of bytes in a record = 659 Maximum number of bytes in a record = 2205579 Minimum number of fields in a record = 237 Maximum number of fields in a record = 414 Average number of fields per record = 328.3 Standard deviation from average = 32.0 Dynamic File name = OH Number of groups in file (modulo) = 235889 Minimum groups of file= 235889 Hash type = 0, blocksize = 4096 Split load = 10, Merge load = 5 Split/Merge type = KEYONLY Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Learning about file sizing
or lower split load percent than was calculated. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Tuesday, June 05, 2012 12:33 PM To: U2-Users@listserver.u2ug.org Subject: [U2] Learning about file sizing Can anyone point me to a good document that will give me guidelines for 'proper' file sizing of dynamic files in particular? And when to use KEYONLY vs KEYDATA? Thanks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- CONFIDENTIALITY NOTICE: If you have received this email in error, please immediately notify the sender by e-mail at the address shown. This email transmission may contain confidential information. This information is intended only for the use of the individual(s) or entity to whom it is intended even if addressed incorrectly. Please delete it from your files if you are not the intended recipient. Thank you for your compliance. Copyright (c) 2012 Cigna == ___ 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] Can of worms FILE.STATUS
Mecki, What block size and why? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Mecki Foerthmann Sent: Wednesday, June 20, 2012 12:45 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Can of worms FILE.STATUS Nothing really - less than 10% overflow is not too bad. I would have chosen a smaller block size though. On 20/06/2012 17:20, Dave Laansma wrote: I have my thoughts already in place but I'd like to hear input on this. What is wrong with this file? File name(Dynamic File) = OHL Number of groups in file (modulo) = 740972 Dynamic hashing, hash type= 0 Split/Merge type = KEYONLY Block size= 4096 File has 455028 groups in level one overflow. Number of records = 4835502 Total number of bytes = 3100999567 Average number of records per group = 6.5 Standard deviation from average = 2.4 Average number of bytes per group = 4185.0 Standard deviation from average = 1856.2 Average number of bytes in a record = 641.3 Average number of bytes in record ID = 14.8 Standard deviation from average = 283.6 Minimum number of bytes in a record = 133 Maximum number of bytes in a record = 8622 Minimum number of fields in a record = 110 Maximum number of fields in a record = 334 Average number of fields per record = 218.3 Standard deviation from average = 47.9 File has 2 over files, 3 prime files Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.comhttp://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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 : Usage of the SEL.CMD
Just my two-cents, this would have been a much more appropriate FIRST response to Satya's humble request. He/she is clearly new and needs additional training and experience. Does anyone have any suggestions for Satya to obtain said training? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Paul Wilson Sent: Friday, June 08, 2012 10:51 AM To: satya satya Cc: U2 Users List Subject: Re: [U2] Regarding : Usage of the SEL.CMD http://www.rocketsoftware.com/u2/resources/technical-resources Here's the link to the manuals From: Paul Wilson sfr192...@yahoo.com To: satya satya satyapal...@gmail.com Cc: U2 Users List u2-users@listserver.u2ug.org Sent: Friday, June 8, 2012 10:49 AM Subject: Re: [U2] Regarding : Usage of the SEL.CMD Read the Fu..ing Manual You ask an obtuse question about code that you are working on - since noone else has seen the code - how do you expect a 'quality' and/or defined response. Also - the manuals are FREE and downloadable off Rocket's website - http://www.rocketsoftware.com/u2/resources/downloads From: satya satya satyapal...@gmail.com To: Paul Wilson sfr192...@yahoo.com Sent: Friday, June 8, 2012 10:43 AM Subject: Re: [U2] Regarding : Usage of the SEL.CMD Hi Paul Wilson, What is This RTFM i have never heard about it. Thank you, Satya On Fri, Jun 8, 2012 at 8:09 PM, Paul Wilson sfr192...@yahoo.com wrote: RTFM - just like everyone else !! From: satya satya satyapal...@gmail.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Friday, June 8, 2012 10:31 AM Subject: [U2] Regarding : Usage of the SEL.CMD Hi Everyone, Can any Explain What is the use of SEL .CMD? In the program i have observed many times using this statement. but i didn't getting clarity on it. So Let, me know your valuable suggestions on this topic. 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Learning about file sizing
Can anyone point me to a good document that will give me guidelines for 'proper' file sizing of dynamic files in particular? And when to use KEYONLY vs KEYDATA? Thanks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Monthly Multivalue Inserts and Speed
I have a file that is taking a very long time to update, seemingly longer and longer each month. Here is briefly how the attributes are organized, a relatively simple example: Attribute 1 is multivalued with our G/L Period, i.e. 12-01 vm 12-02 vm 12-03 etc. Attributes 2 through 30 are dependent on attribute 1 and contain a variety of dollar amounts that are accumulated for the respective period in attribute 1. At the end of each month, a new G/L Period is inserted into the multivalued position of attribute 1 as well as each of the respective multivalued positions in attributes 2 through 30. Nothing complicated. My question is this and is aimed largely at the technicians at Rocket ... If, at the beginning of the year, I were to insert each of the 12-periods into their respective multivalues in attribute 1 and insert respective null multivalues into attributes 2 through 30, thus performing all of the 'inserts' at once, will the processing each month run faster as numbers are simply accumulated into attributes 2 through 30 and no inserting of new multivalues will have to be performed? A couple nuggets of information: This is only an example. In the actual file, these records contain many other attributes and the records overall are relatively large, averaging lengths of about 3,000 according to FILE.STAT These are not my files so reorganizing them is not an option. The heart of this question is, as a (numeric) number is accumulated in an attribute, multivalue or subvalue, what causes the record to 'stretch' in length, thus presumably impacting performance? I would like to think that numeric information is stored in a more 'compact' method than strings, thus using less space within the database ... but what I 'like' and what 'is' are often quite different. Thanks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Monthly Multivalue Inserts and Speed
Results of the ANALYZE.FILE: Dynamic File name = WHSE.STAT Number of groups in file (modulo) = 67801 Minimum groups of file= 67801 Hash type = 0, blocksize = 16384 Split load = 10, Merge load = 5 Split/Merge type = KEYONLY Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David L. Wasylenko Sent: Friday, June 01, 2012 10:32 AM To: U2 Users List Subject: Re: [U2] Monthly Multivalue Inserts and Speed 3k isn't large. #1 thing to look at is file size. Change the file-type to dynamic. It will not give the best performance compared to monitoring file size of a static file type, but over the long-term, avoids sizing issues that are the #1 reason for bad performance. Can you perform an ANALYZE.FILE {filename} and post the result? ... 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 Dave Laansma Sent: Friday, June 01, 2012 9:30 AM To: U2-Users@listserver.u2ug.org Subject: [U2] Monthly Multivalue Inserts and Speed I have a file that is taking a very long time to update, seemingly longer and longer each month. Here is briefly how the attributes are organized, a relatively simple example: Attribute 1 is multivalued with our G/L Period, i.e. 12-01 vm 12-02 vm 12-03 etc. Attributes 2 through 30 are dependent on attribute 1 and contain a variety of dollar amounts that are accumulated for the respective period in attribute 1. At the end of each month, a new G/L Period is inserted into the multivalued position of attribute 1 as well as each of the respective multivalued positions in attributes 2 through 30. Nothing complicated. My question is this and is aimed largely at the technicians at Rocket ... If, at the beginning of the year, I were to insert each of the 12-periods into their respective multivalues in attribute 1 and insert respective null multivalues into attributes 2 through 30, thus performing all of the 'inserts' at once, will the processing each month run faster as numbers are simply accumulated into attributes 2 through 30 and no inserting of new multivalues will have to be performed? A couple nuggets of information: This is only an example. In the actual file, these records contain many other attributes and the records overall are relatively large, averaging lengths of about 3,000 according to FILE.STAT These are not my files so reorganizing them is not an option. The heart of this question is, as a (numeric) number is accumulated in an attribute, multivalue or subvalue, what causes the record to 'stretch' in length, thus presumably impacting performance? I would like to think that numeric information is stored in a more 'compact' method than strings, thus using less space within the database ... but what I 'like' and what 'is' are often quite different. Thanks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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] Monthly Multivalue Inserts and Speed
FILE.STAT results: MOD OV HTY ITEMS BYTES MNI/G MXI/G MNB/I MXB/I 67801 0 64 731825 2197829057 02719 14300 ---- --- 67801 731825 2197829057 Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David L. Wasylenko Sent: Friday, June 01, 2012 12:07 PM To: U2 Users List Subject: Re: [U2] Monthly Multivalue Inserts and Speed What's the record count and total byte count? ... 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 Dave Laansma Sent: Friday, June 01, 2012 9:41 AM To: U2 Users List Subject: Re: [U2] Monthly Multivalue Inserts and Speed Results of the ANALYZE.FILE: Dynamic File name = WHSE.STAT Number of groups in file (modulo) = 67801 Minimum groups of file= 67801 Hash type = 0, blocksize = 16384 Split load = 10, Merge load = 5 Split/Merge type = KEYONLY Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David L. Wasylenko Sent: Friday, June 01, 2012 10:32 AM To: U2 Users List Subject: Re: [U2] Monthly Multivalue Inserts and Speed 3k isn't large. #1 thing to look at is file size. Change the file-type to dynamic. It will not give the best performance compared to monitoring file size of a static file type, but over the long-term, avoids sizing issues that are the #1 reason for bad performance. Can you perform an ANALYZE.FILE {filename} and post the result? ... 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 Dave Laansma Sent: Friday, June 01, 2012 9:30 AM To: U2-Users@listserver.u2ug.org Subject: [U2] Monthly Multivalue Inserts and Speed I have a file that is taking a very long time to update, seemingly longer and longer each month. Here is briefly how the attributes are organized, a relatively simple example: Attribute 1 is multivalued with our G/L Period, i.e. 12-01 vm 12-02 vm 12-03 etc. Attributes 2 through 30 are dependent on attribute 1 and contain a variety of dollar amounts that are accumulated for the respective period in attribute 1. At the end of each month, a new G/L Period is inserted into the multivalued position of attribute 1 as well as each of the respective multivalued positions in attributes 2 through 30. Nothing complicated. My question is this and is aimed largely at the technicians at Rocket ... If, at the beginning of the year, I were to insert each of the 12-periods into their respective multivalues in attribute 1 and insert respective null multivalues into attributes 2 through 30, thus performing all of the 'inserts' at once, will the processing each month run faster as numbers are simply accumulated into attributes 2 through 30 and no inserting of new multivalues will have to be performed? A couple nuggets of information: This is only an example. In the actual file, these records contain many other attributes and the records overall are relatively large, averaging lengths of about 3,000 according to FILE.STAT These are not my files so reorganizing them is not an option. The heart of this question is, as a (numeric) number is accumulated in an attribute, multivalue or subvalue, what causes the record to 'stretch' in length, thus presumably impacting performance? I would like to think that numeric information is stored in a more 'compact' method than strings, thus using less space within the database ... but what I 'like' and what 'is' are often quite different. Thanks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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] READU vs READ
Thank you Colin. I wouldn't post these types of 'issues' if I were thin-skinned and didn't appreciate input. There are certainly some efficiencies in the updating of the multi-values. Unfortunately I cannot reorganize the data in the records, only the code that updates said data. I'll consider posting it. Names will have to be changed to protect 'the innocent' copyright. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Colin Alfke Sent: Tuesday, May 01, 2012 10:05 AM To: 'U2 Users List' Subject: Re: [U2] READU vs READ Dave; A couple more things: - do you have any other processes running at the same time? I found (long ago) that a couple of our big processes ran 5X faster consecutively than they did concurrently. - subroutine calls with file opens. I inherited a process that was running for 3 days and was 65% done. I put all of the file opens in common (well, the file variables) and re-ran in hours. You may want to re-think posting some of the code. There can be some efficiencies found in processing large dynamic arrays. You said it wasn't code you wrote - so try to take the criticism as constructive :) hth Colin -Original Message- From: Tom Whitmore Sent: May 1, 2012 5:50 AM To: U2 Users List Subject: Re: [U2] READU vs READ Hi, The question of READU vs READ when you are doing updates is moot. If you do a READ then a WRITE, UniVerse/UniData will perform the record lock. The only difference is with READ you are gambling that no one else is updating the record before you perform your WRITE. Performance, as others suggested, there are several things to do: Tune your files. If you are using dynamic files, make sure you have the MINIMUM.MODULUS set to reduce the shrink and merging If the records are lumpy redesign them so you have a header file and a detail file, with detail files being individual records for the associated values. Use LIST.INDEX with the STATISTICS option to see if you have huge index value, you may need to refine the index. Check your hardware, you may have a bottleneck due to slow disk, I/O pipe. Minimize the number of times you go through the associated values. Use READU with the LOCKED clause, if the record is locked, add logic to queue it up and try the records again once everything else is processed (WRITEs will hang on a lock if you don't have the LOCKED clause, just like a READU without the LOCKED clause. Good luck! Tom RATEX Business Solutions -Original Message- From: Symeon Breen Have you been able to do any os level tools to see what the utilisation of resources is. E.g. on linux, vmstat, top, iostat will show you if it is a diskio or cpu bottleneck. If it is diskio (i.e. high wait on io times) then you may need to upgrade the disks or add more ram so you have more data in cache. -Original Message- From: Dave Laansma Oh ... you're good ... I ALMOST pasted it ... I know better that to put even FICTITIOUS code on this board ... unless I'm just trying to rile things up about the OS. |-) I do appreciate all of the input. Thank y'all for the info. I'll see what I can do. Sincerely, David Laansma ___ 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] READU vs READ
If I don't HAVE TO lock a record before modifying it writing it back, will a program run significantly faster if I just WRITE it back without locking it first? I'm updating about 700,000 records and it's just taking TOO long. I DO understand the risks of other users changing the record's content during so let's not go down that road. I'm interested in the SPEED dialog. Thank you folks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] READU vs READ
Understood about the screen I/O ... def not an issue here. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, April 30, 2012 8:40 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] READU vs READ Remove the line that after each read says xxx record written Terminal I/O is 100 times more expensive than reading and writing -Original Message- From: Dave Laansma dlaan...@hubbardsupply.com To: U2-Users U2-Users@listserver.u2ug.org Sent: Mon, Apr 30, 2012 5:32 pm Subject: [U2] READU vs READ If I don't HAVE TO lock a record before modifying it writing it back, ill a program run significantly faster if I just WRITE it back without ocking it first? I'm updating about 700,000 records and it's just aking TOO long. I DO understand the risks of other users changing the record's content uring so let's not go down that road. I'm interested in the SPEED ialog. Thank you folks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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] READU vs READ
Yes, using SELECT and READNEXT. These are sizable records. The logic is very straight forward, just updating several multi-valued fields in each record (month end). 500,000 have been updated and I'm 2:45:00 into the process. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Buss, Troy (Contractor, Logitek Systems) Sent: Monday, April 30, 2012 8:48 PM To: U2 Users List Subject: Re: [U2] READU vs READ Depends on how much twisted logic you have... Seriously, I would guess that your bottleneck is disk access. Are you using basic SELECT and READNEXT ? Is your list in sorted order (SSELECT) or not (SELECT). Processing the updates in group order will minimize the I/O. I don't think the READU overhead on today's machines are anything that would slow it down. I just tested 100,000 records with and without locking and I get six seconds both ways. Because it was cached data, my test eliminates disk i/o and measures the lock overhead which seems to be negligible on universe 11.1.1. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Monday, April 30, 2012 5:33 PM To: U2-Users@listserver.u2ug.org Subject: [U2] READU vs READ If I don't HAVE TO lock a record before modifying it writing it back, will a program run significantly faster if I just WRITE it back without locking it first? I'm updating about 700,000 records and it's just taking TOO long. I DO understand the risks of other users changing the record's content during so let's not go down that road. I'm interested in the SPEED dialog. Thank you folks! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users _ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www.ers.ibm.com This email is intended only for the use of the party to which it is addressed and may contain information that is privileged, confidential, or protected by law. If you are not the intended recipient you are hereby notified that any dissemination, copying or distribution of the email or its contents is strictly prohibited. If you have received this message in error, please notify us immediately, by replying to the message and deleting it from your computer. WARNING: Internet communications are not assured to be secure or clear of inaccuracies as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. Therefore, we do not accept responsibility for any errors or omissions that are present in this email, or any attachment, that have arisen as a result of e-mail transmission. _ ___ 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] READU vs READ
It's a dynamic file. FILE-STAT shows no overflow. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Buss, Troy (Contractor, Logitek Systems) Sent: Monday, April 30, 2012 9:12 PM To: U2 Users List Subject: Re: [U2] READU vs READ Inefficient file sizing and disk I/O are your possible issues with slowness. You might be able to address the first at your desk, the latter may require a purchase order. How old is your hardware? We recently upgraded to a virtual server and just using more current technology hard drives we doubled all of our disk I/O from what we had 5 or 6 years ago. CPU speed increased as well, but that was not as suprising. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Monday, April 30, 2012 6:01 PM To: U2 Users List Subject: Re: [U2] READU vs READ Yes, using SELECT and READNEXT. These are sizable records. The logic is very straight forward, just updating several multi-valued fields in each record (month end). 500,000 have been updated and I'm 2:45:00 into the process. _ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www.ers.ibm.com This email is intended only for the use of the party to which it is addressed and may contain information that is privileged, confidential, or protected by law. If you are not the intended recipient you are hereby notified that any dissemination, copying or distribution of the email or its contents is strictly prohibited. If you have received this message in error, please notify us immediately, by replying to the message and deleting it from your computer. WARNING: Internet communications are not assured to be secure or clear of inaccuracies as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. Therefore, we do not accept responsibility for any errors or omissions that are present in this email, or any attachment, that have arisen as a result of e-mail transmission. _ ___ 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] READU vs READ
No indexes and no triggers. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Gregor Scott Sent: Monday, April 30, 2012 9:22 PM To: U2 Users List Subject: Re: [U2] READU vs READ Add to the mix indexes and triggers. They can both add to the time needed to update just one record. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Buss, Troy (Contractor, Logitek Systems) Sent: Tuesday, 1 May 2012 11:12 AM To: U2 Users List Subject: Re: [U2] READU vs READ Inefficient file sizing and disk I/O are your possible issues with slowness. You might be able to address the first at your desk, the latter may require a purchase order. How old is your hardware? We recently upgraded to a virtual server and just using more current technology hard drives we doubled all of our disk I/O from what we had 5 or 6 years ago. CPU speed increased as well, but that was not as suprising. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Monday, April 30, 2012 6:01 PM To: U2 Users List Subject: Re: [U2] READU vs READ Yes, using SELECT and READNEXT. These are sizable records. The logic is very straight forward, just updating several multi-valued fields in each record (month end). 500,000 have been updated and I'm 2:45:00 into the process. _ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www.ers.ibm.com This email is intended only for the use of the party to which it is addressed and may contain information that is privileged, confidential, or protected by law. If you are not the intended recipient you are hereby notified that any dissemination, copying or distribution of the email or its contents is strictly prohibited. If you have received this message in error, please notify us immediately, by replying to the message and deleting it from your computer. WARNING: Internet communications are not assured to be secure or clear of inaccuracies as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. Therefore, we do not accept responsibility for any errors or omissions that are present in this email, or any attachment, that have arisen as a result of e-mail transmission. _ ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Message protected by DealerGuard: e-mail anti-virus, anti-spam and content filtering. http://www.pentanasolutions.com Click here to report this message as spam: https://login.mailguard.com.au/report/1EE0zigg55/70gcZxRJUITQXy3UHcVFYT/ 0.002 This email and any attachments to it are confidential. You must not use, disclose or act on the email if you are not the intended recipient. Liability limited by a scheme approved under Professional Standards Legislation. ___ 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] READU vs READ
I learned terminal I/O problems last millennium. Unfortunately I wrote neither the code nor did I design the files. I just want to speed the silly thing up. It also appears that each record is getting several MVs added, so each record is effectively getting larger with each WRITE ... yea ... :-/ ... it must have seemed like a good idea at the time. (My apologies for whining) Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: Monday, April 30, 2012 9:22 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] READU vs READ (Saw other responses come in as I was writing this - oh well, this might help someone else...) From: Dave Laansma If I don't HAVE TO lock a record before modifying it writing it back, will a program run significantly faster if I just WRITE it back without locking it first? I'm updating about 700,000 records and it's just taking TOO long. I DO understand the risks of other users changing the record's content during so let's not go down that road. I'm interested in the SPEED dialog. I don't know what you meant by SPEED dialog but if WJ is right and you're displaying an item count as you run through records, then he is also right that that IO will destroy performance. Try this as related experiment: Loop to display the numbers 1 through 1 million. Watch it stream on your terminal emulator. Now run it again, minimize the emulator, then re-normalize it. I believe you will find that while the output was hidden it streamed through most or all of the output. Same thing happens if you're doing a copy or delete and tapping your fingers as you wait for the IDs to stream by - a watched kettle takes longer to boil... :) About READU vs READ... You're doing a READU just because you're doing a WRITE? Nah, if you don't care about contentions don't bother to ReadU. You're reading and updating lock tables and semaphors with READU and that's huge performance hit. Here's another experiment: When you're copying or restoring items, use the appropriate option to overlay items, even if you know the target file is empty. Why? Because Copy needs to do a Read first to see if it needs to warn you about an existing item. If you tell it to overlay it will just do the Write (sure, there's a lower level read there anyway but less code is executed). Combining these... if you use a Copy (Pick flavor, don't recall options otherwise) with both overlay and ID suppress, it avoids a ton of internal DBMS code, so it goes a lot faster than a no-option copy. I haven't benched those scenarios for years. If anyone does the tests, please let us know if this is valid or not, and your DBMS/flavors. T ___ 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] READU vs READ
Oh ... you're good ... I ALMOST pasted it ... I know better that to put even FICTITIOUS code on this board ... unless I'm just trying to rile things up about the OS. |-) I do appreciate all of the input. Thank y'all for the info. I'll see what I can do. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, April 30, 2012 9:47 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] READU vs READ why not post the relevant code you are using to do the field updates perhaps we can see some inefficiency in the way you're grabbing and updating fields you said the records were sizeable and that raises my eyebrow (just one) -Original Message- From: Dave Laansma dlaan...@hubbardsupply.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Apr 30, 2012 6:38 pm Subject: Re: [U2] READU vs READ No indexes and no triggers. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Gregor Scott Sent: Monday, April 30, 2012 9:22 PM To: U2 Users List Subject: Re: [U2] READU vs READ Add to the mix indexes and triggers. They can both add to the time needed to update just one record. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Buss, Troy (Contractor, Logitek Systems) Sent: Tuesday, 1 May 2012 11:12 AM To: U2 Users List Subject: Re: [U2] READU vs READ Inefficient file sizing and disk I/O are your possible issues with slowness. You might be able to address the first at your desk, the latter may require a purchase order. How old is your hardware? We recently upgraded to a virtual server and just using more current technology hard drives we doubled all of our disk I/O from what we had 5 or 6 years ago. CPU speed increased as well, but that was not as suprising. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Monday, April 30, 2012 6:01 PM To: U2 Users List Subject: Re: [U2] READU vs READ Yes, using SELECT and READNEXT. These are sizable records. The logic is very straight forward, just updating several multi-valued fields in each record (month end). 500,000 have been updated and I'm 2:45:00 into the process. _ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www.ers.ibm.com This email is intended only for the use of the party to which it is addressed and may contain information that is privileged, confidential, or protected by law. If you are not the intended recipient you are hereby notified that any dissemination, copying or distribution of the email or its contents is strictly prohibited. If you have received this message in error, please notify us immediately, by replying to the message and deleting it from your computer. WARNING: Internet communications are not assured to be secure or clear of inaccuracies as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. Therefore, we do not accept responsibility for any errors or omissions that are present in this email, or any attachment, that have arisen as a result of e-mail transmission. _ ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Message protected by DealerGuard: e-mail anti-virus, anti-spam and content filtering. http://www.pentanasolutions.com Click here to report this message as spam: https://login.mailguard.com.au/report/1EE0zigg55/70gcZxRJUITQXy3UHcVFYT/ 0.002 This email and any attachments to it are confidential. You must not use, disclose or act on the email if you are not the intended recipient. Liability limited by a scheme approved under Professional Standards Legislation. ___ 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
Re: [U2] EXIT ; EXIT inside a loop
This is my point exactly. This (and presumably the CONTINUE statement) is one example where utilizing the semicolon construct is ineffective, except for comments. Using the FOR/NEXT method is clearly not the preferred method. This example was brought up because I'm essentially 'searching' through a 3-dimensional table and when I find a specific string in a sub-value, I need to abort the search all together. I cannot bring myself to use GOTO ... I just CAN'T. But maybe this once ... just this once ... sigh ... :'-| ... WAIT! I think I've got it! ... Yes, to search through each 'dimension' in a single loop ... REMOVE ... and it's darn fast! You people inspire GENIUS! Glad I still had my coins. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Woodward, Bob Sent: Thursday, April 19, 2012 4:43 PM To: U2 Users List Subject: Re: [U2] EXIT ; EXIT inside a loop Not from what I see. Only the first EXIT seems to apply as it executes immediately, skipping over the second EXIT. You would have to add the same test of G = H after the NEXT A2 statement. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Thursday, April 19, 2012 1:36 PM To: u2-users@listserver.u2ug.org Subject: [U2] EXIT ; EXIT inside a loop Given: FOR A1 = 1 TO X FOR A2 = 1 TO Y little twisted logic IF G = H THEN EXIT ; EXIT twisted little logic NEXT A2 twisting little logic NEXT A1 little twisting logic The question is, if G = H, will the two EXIT commands drop out of both loops, skipping BOTH twisted little logic and twisting little logic, and resume execution at little twisting logic ? PLOUGH Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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] EXIT ; EXIT inside a loop
I won't know it's the right string until I perform a few tests on it, thus the 'twists'. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rex Gozar Sent: Friday, April 20, 2012 8:40 AM To: U2 Users List Subject: Re: [U2] EXIT ; EXIT inside a loop See FIND and/or FINDSTR in the BASIC reference guide. On Fri, Apr 20, 2012 at 8:30 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: This example was brought up because I'm essentially 'searching' through a 3-dimensional table and when I find a specific string in a sub-value, I need to abort the search all together. I cannot bring myself to use ___ 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] EXIT ; EXIT inside a loop
Thank you Rex, but FIND and FINDSTR assume that I know some part of what I'm looking for. Walking the beach, each day's rock is different. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rex Gozar Sent: Friday, April 20, 2012 8:46 AM To: U2 Users List Subject: Re: [U2] EXIT ; EXIT inside a loop read the documentation -- you can step thru occurences On Fri, Apr 20, 2012 at 8:44 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: I won't know it's the right string until I perform a few tests on it, thus the 'twists'. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rex Gozar Sent: Friday, April 20, 2012 8:40 AM To: U2 Users List Subject: Re: [U2] EXIT ; EXIT inside a loop See FIND and/or FINDSTR in the BASIC reference guide. On Fri, Apr 20, 2012 at 8:30 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: This example was brought up because I'm essentially 'searching' through a 3-dimensional table and when I find a specific string in a sub-value, I need to abort the search all together. I cannot bring myself to use ___ 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] Case Statement with only two cases
Logically they are clearly the same. It just depends on what the programmer had in mind for the future of 'A'. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Thursday, April 19, 2012 3:52 PM To: u2-users@listserver.u2ug.org Subject: [U2] Case Statement with only two cases Is there a point in code like this BEGIN CASE CASE A = TEST; GOSUB DO.SOMETHING CASE 1; GOSUB DO.SOMETHING.ELSE END CASE versus this IF A = TEST THEN GOSUB DO.SOMETHING ELSE GOSUB DO.SOMETHING.ELSE Personally I see no advantage in making this a CASE Does the rest of the *Universe* agree with me? ___ 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] EXIT ; EXIT inside a loop
Using this logic, I believe twisting little logic would still be executed. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Lunt, Bruce Sent: Thursday, April 19, 2012 4:50 PM To: 'U2 Users List' Subject: Re: [U2] EXIT ; EXIT inside a loop You could add logic to the For Next as in: A1.DONE = FALSE A2.DONE = FALSE FOR A1 = 1 TO X UNTIL A1.DONE FOR A2 = 1 TO Y UNTIL A2.DONE little twisted logic IF G = H THEN A1.DONE = TRUE; A2.DONE = TRUE; EXIT twisted little logic NEXT A2 twisting little logic NEXT A1 little twisting logic The question is, if G = H, will the two EXIT commands drop out of both loops, skipping BOTH twisted little logic and twisting little logic, and resume execution at little twisting logic ? PLOUGH Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ 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] Hello
Okay, I've got a pretty simple question ... How do I get a list of all files that are currently OPEN so I know whether I need to open a given file again? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of u2ug Sent: Monday, March 05, 2012 10:32 AM To: U2 Users List Subject: [U2] Hello Is the list alive ? Haven't seen anything for a week. ___ 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] [OT] CareerBuider.com exploiting animals in their advertising
As much as this subject makes me go bananas, I'm hoping this thread is summarily ended, lest we all go ape over a subject that contributes nothing to the betterment of the U2 database and the primates that utilize it. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Stuart Boydell Sent: Saturday, February 04, 2012 7:06 PM To: U2 Users Community; 'U2 Users List' Subject: [U2] [OT] CareerBuider.com exploiting animals in their advertising Hi, Sorry this is off topic, but as it involves a company that some of you may use for job placement I thought it's not too inappropriate. For the upcoming US Super Bowl the job placement company CareerBuilder intend to run TV advertisements using Chimpanzees as unruly office workers. Although the 'fun antics' of chimps may seem harmless, sorry to say there are very sad consequences for them. Previously CareerBuilder has agreed not to exploit Chimpanzees in their advertising and this reversal has no doubt been based on having had good advertising success rate overriding their commitment to desist. I don't need to expand on the ethical implications of this position by a job placement company. If you believe that going back on a promise or cruelty to animals are morally unsupportable please consider writing to CareerBuilder to make your feelings known. You can read more about it here https://secure.peta.org/site/Advocacy?cmd=displaypage=UserActionid=349 4 Thank you for reading and apologies for posting off topic. Regards, Stuart Boydell stu...@sbcs.com.au ___ 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] A Thursday Quandry...
With all due respect ... ew! Put the DEBUG command in the INCLUDED code or make it a subroutine for the purpose of debugging it, THEN put it back when you fixed the problem. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Daniel McGrath Sent: Thursday, January 26, 2012 3:31 PM To: U2 Users List Subject: Re: [U2] A Thursday Quandry... The way I've seen this handled before was by using a preprocessor. So instead of calling BASIC to compile your code, you have your own command that wraps BASIC. In your case, the first step would be to read each line, find the include statements and insert the code (probably with * BEGIN INCLUDE 'x' * END INCLUDE 'x' comments to help us humans). You would then write it to a temporary directory and call BASIC to compile that version. 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, January 26, 2012 1:25 PM To: 'U2 Users List' Subject: [U2] A Thursday Quandry... UniData. I have an external subroutine we call thousands of times within a program (does G/L Account assembly from all the 'pieces' of data). Our logic was that making it an 'included' subroutine within the program would make it perform faster, and I think that was a good call. Now it sort of bites during debug, as UniData does not 'explode' the code at compile, so that if you're doing interactive debugging, you get the 'same line number' each time as you step through that included code - so there's no way to know where it's at in the subroutine (and therefore, no good clue how many lines you can do Enn to step through.) It's not often that I need this, but I'm doing it now and am not believing there is not a 'better way'... Is there a way to make an Included Subroutine 'insert itself' at compile time - as if that code were REALLY in the program?? How have others dealt with this? David W. ___ 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] brillant or not
One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand. Robert C. Martin - Clean Code - A Handbook of Agile Software Craftsmanship Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of jay rappaport Sent: Tuesday, January 17, 2012 7:50 PM To: u2-users@listserver.u2ug.org Subject: [U2] brillant or not this discussion brings back memories from long long time ago, far far away when the shortest working program we could come up with as a challenge in school was input = output : f(end) one line of code that actually did something now if only i could remember what language this was in! jay ___ 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] Line Printer Control
If you're on AIX, there are some settings in smit that may be causing it too. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John Thompson Sent: Thursday, December 22, 2011 3:14 PM To: U2 Users List Subject: Re: [U2] Line Printer Control If I remember correctly, when we converted from UltPlus to Universe... I had to set the following in our master login paragraph (I know, I know, probably not the best place for it) for a lot of legacy stuff. SETPTR ,132,60,0,0,,NOHEAD,BRIEF,NFMT Try that maybe? Shot in the dark. I do remember many hours pulling my hair out over this though. On Thu, Dec 22, 2011 at 3:06 PM, Bill Brutzman bi...@hkmetalcraft.comwrote: We still use a greenbar printer to print checks. Via a UniBasic program, I am trying to send an alignment pattern to the printer before starting the check run. The trouble is that it always does a form feed after the alignment pattern. I have been diddling with toggling options in... execute 'SETPTR 0,132,60,2,0,1,NHEAD,BRIEF,NFMT,NOEJECT,NODEFAULT,NOFORMFEED, AT PR0' PRINTER OFF PRINTER CLOSE Help would be appreciated. --Bill ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- 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] Line Printer Control
In smit, when you setup the queue new or change an existing 'virtual printer' a couple of settings that give me complete control in Unidata are: Send FORM FEED after each file = No Lines Per Page = null Columns per page = Make sure you always set it up as a GENERIC printer and ASCII printer Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John Thompson Sent: Thursday, December 22, 2011 3:21 PM To: U2 Users List Subject: Re: [U2] Line Printer Control Yes, on AIX, if you are using System V printing, make sure you setup the printer like so: Sorry for the ugly output... Add Remote Printer Configuration Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] * PRINTER name [Qtest] * SERVER name[dns-name-or-ip] + * PRINTER NAME on server [RAW] COMMENT[] CLASS name [] + -- Interface Program Options -- Printer TYPES [Other] + CONTENT TYPE [simple] + - Header/Trailer Page Options - Force BANNER? no + On Thu, Dec 22, 2011 at 3:14 PM, Dave Laansma dlaan...@hubbardsupply.comwrote: If you're on AIX, there are some settings in smit that may be causing it too. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John Thompson Sent: Thursday, December 22, 2011 3:14 PM To: U2 Users List Subject: Re: [U2] Line Printer Control If I remember correctly, when we converted from UltPlus to Universe... I had to set the following in our master login paragraph (I know, I know, probably not the best place for it) for a lot of legacy stuff. SETPTR ,132,60,0,0,,NOHEAD,BRIEF,NFMT Try that maybe? Shot in the dark. I do remember many hours pulling my hair out over this though. On Thu, Dec 22, 2011 at 3:06 PM, Bill Brutzman bi...@hkmetalcraft.comwrote: We still use a greenbar printer to print checks. Via a UniBasic program, I am trying to send an alignment pattern to the printer before starting the check run. The trouble is that it always does a form feed after the alignment pattern. I have been diddling with toggling options in... execute 'SETPTR 0,132,60,2,0,1,NHEAD,BRIEF,NFMT,NOEJECT,NODEFAULT,NOFORMFEED, AT PR0' PRINTER OFF PRINTER CLOSE Help would be appreciated. --Bill ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- 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 -- 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] End of Month date routine
* BASICALLY, GET TO THE FIRST OF NEXT MONTH * THEN BACK UP ONE DAY TODAY = ICONV(12/15/11,D2/) ; * SAMPLE DATE THIS.MONTH = OCONV(TODAY,DM) ; * GET 'THIS' MONTH NUMBER LAST.DAY = TODAY ; * ASSUME TODAY IS THE LAST DAY LOOP IF OCONV(LAST.DAY,DM) # THIS.MONTH THEN ; * CHANGE IN MONTH? LAST.DAY -= 1 ; * BACK UP A DAY EXIT; * DONE END LAST.DAY += 1 ; * GO FORWARD A DAY REPEAT Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of charles_shaf...@ntn-bower.com Sent: Monday, December 05, 2011 2:22 PM To: U2 Users List Subject: Re: [U2] End of Month date routine Here's one I use. TODAY = OCONV(DATE(), D4/) MO = FIELD(TODAY, /, 1) YR = FIELD(TODAY, /, 3) MO += 1 IF MO 12 THEN MO = 1 YR += 1 END EOM = OCONV((ICONV(MO:/:1:YR) - 1), D4/) Charles Shaffer Senior Analyst NTN-Bower Corporation From: Wjhonson wjhon...@aol.com To: u2-users@listserver.u2ug.org, Date: 12/05/2011 01:03 PM Subject:[U2] End of Month date routine Sent by:u2-users-boun...@listserver.u2ug.org Does someone have a routine that, no matter what day you run it, returns the End of Month Date ? (Assume the end of month date, is the calendar end of month date not some screwy business date) ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- This email was Anti Virus checked by Astaro Security Gateway. http://www.astaro.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] End of Month date routine
Ditto. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Monday, December 05, 2011 3:10 PM To: U2 Users List Subject: Re: [U2] End of Month date routine Haven't checked it, but what happens on 01/31 by adding 31, it should take you March, backing up Will give you 02/xx (28 or 29)? George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wols Lists Sent: Monday, December 05, 2011 3:05 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] End of Month date routine On 05/12/11 19:03, Wjhonson wrote: Does someone have a routine that, no matter what day you run it, returns the End of Month Date ? (Assume the end of month date, is the calendar end of month date not some screwy business date) Hmmm... no-one seems to have done my approach ... TODAY = @DATE THIS.MONTH.O = OCONV (TODAY, DMY) ;* strip day off NEXT.MONTH.I = ICONV( THIS.MONTH.O, D) + 31 ;* random day next month NEXT.MONTH.O = OCONV( NEXT.MONTH.I, DMY) ;* strip day off LAST.DAY.I = ICONV( NEXT.MONTH.O, D) - 1 ;* subract one day If you don't have a day in your i/oconv it defaults to 1, so the logic works. Unfortunately you can't combine the first three lines because there's no number you can pick that will guarantee to land you in next month whatever today's date :-( Cheers, Wol ___ 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] End of Month date routine
No, this will fail on January 31st, every year. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Marco Antonio Rojas Castro Sent: Monday, December 05, 2011 3:49 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] End of Month date routine TODAY = DATE() EOM = TODAY - TODAYDD + 32 EOM = EOM - EOMDD To: u2-users@listserver.u2ug.org From: wjhon...@aol.com Date: Mon, 5 Dec 2011 15:16:02 -0500 Subject: Re: [U2] End of Month date routine Doesn't work on my system Anthony. The This month o gives the month and year ok but the attempt to iconv that sets it to zero, it doesn't pad the 01 into it or something so i just get 31 at that point. I think you were expecting that it would take 12 2011 and make it into 12 01 2011 or whatever but it's not working -Original Message- From: George Gallen ggal...@wyanokegroup.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Dec 5, 2011 12:10 pm Subject: Re: [U2] End of Month date routine Haven't checked it, but what happens on 01/31 by adding 31, it should take you arch, backing up Will give you 02/xx (28 or 29)? George -Original Message- rom: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] n Behalf Of Wols Lists ent: Monday, December 05, 2011 3:05 PM o: u2-users@listserver.u2ug.org ubject: Re: [U2] End of Month date routine On 05/12/11 19:03, Wjhonson wrote: Does someone have a routine that, no matter what day you run it, returns the nd of Month Date ? (Assume the end of month date, is the calendar end of month date not some crewy business date) Hmmm... no-one seems to have done my approach ... TODAY = @DATE HIS.MONTH.O = OCONV (TODAY, DMY) ;* strip day off EXT.MONTH.I = ICONV( THIS.MONTH.O, D) + 31 ;* random day next month EXT.MONTH.O = OCONV( NEXT.MONTH.I, DMY) ;* strip day off AST.DAY.I = ICONV( NEXT.MONTH.O, D) - 1 ;* subract one day If you don't have a day in your i/oconv it defaults to 1, so the logic orks. Unfortunately you can't combine the first three lines because here's no number you can pick that will guarantee to land you in next onth whatever today's date :-( Cheers, ol __ 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UniBasic Question
Oh, and Roadrunner is faster than Sonic ... definitely. :-) Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Tuesday, October 25, 2011 4:59 PM To: U2 Users List Subject: Re: [U2] UniBasic Question Unless you know the keys to the records you're selecting, even the EXECUTE SELECT ... is going to have to read each record, how else would it know which records to throw out? My point is, if one of your selection criteria were in the key, then my method bypasses the need to read the record if the key element fails its test. I concede the sort, however some relatively simple 'table' management can easily remedy that. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of charles_shaf...@ntn-bower.com Sent: Tuesday, October 25, 2011 4:53 PM To: U2 Users List Subject: Re: [U2] UniBasic Question Dave The next-to-last one may depend on Unidata vs. Universe. I understand that Unidata only 'fetches' the key in the READNEXT while I believe Universe grabs both the key and record, due to the construct of the database. I believe that is the case in Unidata. A SELECT returns a list of IDs. That's why your recommendation was confusing me. In the Unidata environment, I would have to read every record in order to apply the filter in the loop. In a case where only a few records are selected from a large file, this would create a lot of unnecessary disk activity. Also, you would not be able to SORT the order of the IDs. Charles Shaffer Senior Analyst NTN-Bower Corporation ___ 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] UniBasic Question
I'd strongly suggest using the Unibasic SELECT file TO listname instead of EXECUTE SELECT filename selection criteria Then you just specify your selection criteria inside your loop. A few advantages that I've personally experienced, but there are probably more: The READNEXT begins immediately (does not wait for the whole file to be checked) You can nest your SELECTS (not that this is an ethical, but you can) You're not dependent on the accuracy of the dictionary If your selection criteria is part of the key, you don't even have to read the record if the key element fails the selection And you can write a cool little subroutine that keeps the human accurately informed as to the progress and estimated time of completion of their program The next-to-last one may depend on Unidata vs. Universe. I understand that Unidata only 'fetches' the key in the READNEXT while I believe Universe grabs both the key and record, due to the construct of the database. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Tuesday, October 25, 2011 4:08 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniBasic Question And... when you prematurely quit from an execution level which *had* been processing a select list your select list is not thrown away. Which is annoying. ___ 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] UniBasic Question
Unless you know the keys to the records you're selecting, even the EXECUTE SELECT ... is going to have to read each record, how else would it know which records to throw out? My point is, if one of your selection criteria were in the key, then my method bypasses the need to read the record if the key element fails its test. I concede the sort, however some relatively simple 'table' management can easily remedy that. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of charles_shaf...@ntn-bower.com Sent: Tuesday, October 25, 2011 4:53 PM To: U2 Users List Subject: Re: [U2] UniBasic Question Dave The next-to-last one may depend on Unidata vs. Universe. I understand that Unidata only 'fetches' the key in the READNEXT while I believe Universe grabs both the key and record, due to the construct of the database. I believe that is the case in Unidata. A SELECT returns a list of IDs. That's why your recommendation was confusing me. In the Unidata environment, I would have to read every record in order to apply the filter in the loop. In a case where only a few records are selected from a large file, this would create a lot of unnecessary disk activity. Also, you would not be able to SORT the order of the IDs. Charles Shaffer Senior Analyst NTN-Bower Corporation ___ 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] Comparing numeric strings
Call me a hack ... go ahead A:FOO A:BAR Numeric string is an oxymoron in any language, I believe. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rob Sobers Sent: Friday, August 12, 2011 8:15 AM To: U2 Users List Subject: [U2] Comparing numeric strings Say you have two strings that happen to be nuneric: FOO = 401.0101 BAR = 401.0101000 Since UniBasic is untyped, even though I've wrapped each value in quotes , they are treated as numbers. As a result, FOO EQ BAR evaluates to @TRUE. In most dynamically typed languages, there's an intuitive way to coerce the values at run-time (e.g, foo.to_s, foo.ToString, Str(foo)). I can't seem to figure out a good way to do this in UniBasic. In the manual, there's a function called SCMP that is supposed to be handy for comparing numeric strings, but it doesn't appear to work in UniData 7.2. # First try SCMP IF SCMP(FOO, BAR) THEN CRT Not Equal END ELSE CRT Equal END # Now try EQ IF FOO EQ BAR THEN CRT Equal END ELSE CRT Not Equal END Result: Equal Equal Also, the tip in the manual seems to be untrue: Numbers specified in quotation marks are string data type. Numbers specified without quotation marks are numeric data type. The data type in a variable is determined by the data first loaded into it. Quotation marks appear to have absolutely no bearing on data type. -Rob ___ 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?
Kevin, if you only knew ... Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Friday, March 04, 2011 12:01 PM To: U2 Users List Subject: Re: [U2] Is this worth rewriting? Wow Dave, you really opened up a discussion on this one. We shall call you Pandora... :) ___ 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] Is this worth rewriting?
This is some old code that I didn't write, so please don't use it for anything profitable ... The proposal to the group is: Due to the repeated references deep into the PARMS tables, if this were rewritten to reference these locations as few times as possible, IN YOUR OPINION, would there be a significant improvement in the performance of this subroutine? All in favor of rewrite, say AYE All opposed, say NAY (I'm testing some U2UG-Denver skills) MONTHLY.USAGE: 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?
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 (explained in my over-simplified way of thinking). Thus why the REMOVE statement is preferred when sequentially referencing a table rather than a FOR/NEXT loop referencing each element individually. The REMOVE statement keeps a pointer as to where it left off in the table and simply goes to the next AM/VM/SM/RM I have personally experienced (and thus embraced) the truly extraordinary performance improvement with the REMOVE statement and would encourage everyone to do so as well. To address a couple comments: This would appear to me to be 'textbook' code, implying it was likely written by a newly graduated college student. With all due respect to college grads, I can't believe some of the code I wrote a few years ago, let alone what I must have done fresh out of college. This code is likely 15+ years old and certainly could use a facelift, as could any of us after any 15-year stint of our lives. To get more detailed would be debating cosmetics ... a debate not intended for this thread. Nearly half-a-million records run through this code each month, it takes about 1.5 hours and is critical that it run at peak efficiency. Therefore my primary objective is performance. Thank you all for the rousing debate. That being said, I think I'll do my modifications and let the group know what the results are. Once again, thank you! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Steve Romanow Sent: Wednesday, March 02, 2011 11:50 AM To: U2 Users List Subject: Re: [U2] Is this worth rewriting? On 3/2/2011 11:43 AM, Dave Laansma wrote: This is some old code that I didn't write, so please don't use it for anything profitable ... The proposal to the group is: Due to the repeated references deep into the PARMS tables, if this were rewritten to reference these locations as few times as possible, IN YOUR OPINION, would there be a significant improvement in the performance of this subroutine? All in favor of rewrite, say AYE All opposed, say NAY (I'm testing some U2UG-Denver skills) MONTHLY.USAGE: 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 I dunno. If it works and the performance is GoodEnough, I would leave it. Parms is already a dimmed array, so each element is addressed independently. Might be fun to use the U2 vector functions on it and get rid of the loop, i.e. OCONVS() and SUM() instead of the loop. ___ 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] Frustrated with Rocket / Unidata 7.2
I must agree with Dave on this one. Through my 14-years of experience, the Unidata team has provided exceptional product development, support and seamless upgrades, version after version. Now I am by no means a 'power-user' of the database, but asking from a developers perspective, which of us have NOT broken something in a subsequent release and really honked off one or more of our power users? In my opinion, it's part of the 'game.' That being said, in my 30+ years as a developer in general, one thing I have learned (the hard way) is, to take an otherwise 'private' situation public and rail against the hand that essentially feeds me is just bad form. I look forward to the posts from this forum as long as they are knowledge-seeking and solution based, no matter how longwinded they get. ;^) Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David Jordan Sent: Friday, February 18, 2011 12:46 AM To: U2 Users List Subject: Re: [U2] Frustrated with Rocket / Unidata 7.2 U2 has probably spoiled us. You should see some of the issues others face upgrading in Oracle, SQL Server, Windows and so on. We have an expectation of seamless upgrades that does not occur in other environments. For people to have software that is 25 years old still running on U2 is pretty good. Regards David Jordan ___ 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] [UV] UniVerse Uptime
'who -b' will tell you the date and time AIX restarted last. For us, if AIX is up, Unidata is up ... Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Porter Sent: Thursday, February 17, 2011 9:26 AM To: U2 Users List Subject: Re: [U2] [UV] UniVerse Uptime Interesting question... Don't know how accurate it would be but on my box /usr/uv/VOC has a timestamp of the last time I brought uv up. I'll be interested to see what others have to say on this. Rob Robert F. Porter, MCSE, CCNA, ZCE, OCP-Java6 Lead Sr. Programmer / Analyst Laboratory Information Services Ochsner Health System This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful. ___ 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] [UV] UniVerse Uptime
BTW, for us that was Nov 27 9:48am ... gotta love AIX! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Thursday, February 17, 2011 9:33 AM To: U2 Users List Subject: Re: [U2] [UV] UniVerse Uptime 'who -b' will tell you the date and time AIX restarted last. For us, if AIX is up, Unidata is up ... Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Porter Sent: Thursday, February 17, 2011 9:26 AM To: U2 Users List Subject: Re: [U2] [UV] UniVerse Uptime Interesting question... Don't know how accurate it would be but on my box /usr/uv/VOC has a timestamp of the last time I brought uv up. I'll be interested to see what others have to say on this. Rob Robert F. Porter, MCSE, CCNA, ZCE, OCP-Java6 Lead Sr. Programmer / Analyst Laboratory Information Services Ochsner Health System This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful. ___ 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] Does UV have a BLOCK command
I have to agree with Steve on this one, to my knowledge you're going to have to use either indented IF/THEN/END or GOTO. That is unless there is a different syntactical statement set available. The thing is they all likely decompile to the same instructions, so we're debating cosmetics here. Personally I like indented IF/THEN/END ... adds clarity Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Steve Romanow Sent: Monday, February 07, 2011 3:42 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Does UV have a BLOCK command On 2/7/2011 3:39 PM, George Gallen wrote: LOOP block code block code if condition then EXIT block code EXIT REPEAT Would be nice if BEGIN BLOCK block code block code if condition then EXIT block code END BLOCK Why not just block code block code if not(condition) then block code end ___ 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] How many will be selected?
The problem with this question is, if I understand correctly, the SELECT F.FILENAME statement does not truly select the entire file all at once. It essentially selects one group at a time and passes those keys to the READNEXT statement as they become available. Which is why the SELECT F.FILENAME makes keys available to the READNEXT statement immediately. I have a COUNT.FILE (FILENAME,REC.CNT) subroutine that I use to get the number of records that are in the file just before I initiate the SELECT F.FILENAME statement. The subroutine performs a simple COUNT command and returns one number. The COUNT command seems to run faster than the corresponding SELECT, especially for larger files, since I'm guessing that it doesn't build the list as it is reading the keys. Even this is only a close estimate since more records can presumably be added further down the file before my READNEXT gets to that block. Technicians at Rocket, feel free to interject ! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of fft2...@aol.com Sent: Tuesday, October 19, 2010 1:56 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] How many will be selected? In a message dated 10/19/2010 10:50:28 AM Pacific Daylight Time, ggal...@wyanokegroup.com writes: Psychic you are! Do you read palms as well? What you need to do is ask the system these questions: 1) How many groups are in this file? and 2) What group number am I in right now. The groups are processed so rapidly that this will be all you need to know to calculate your dreams and desires in this regard. And it will make your hair grow back. Will Johnson ___ 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] Very much OT - AUTO: Haydon Bishop is out of the office (again)
Where's Haden? along the Waldo theme. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John J. Wahl Sent: Thursday, July 01, 2010 10:10 AM To: U2 Users List Subject: [U2] Very much OT - AUTO: Haydon Bishop is out of the office (again) Now this T-Shirt of Awesomeness, does it have the The Man the Myth the Legend on the front or back and the opposite side says perhaps I've seen Away People... (Like Haydon Bishop)? I'm game how much? :P - John J. Wahl Employee Owner Programmer / Analyst Tel: (888) 465-6737 Ext. 120 Fax: (330) 342-3896 Email: jw...@joseph.com Web: http://www.Joseph.com/ -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of charles_shaf...@ntn-bower.com Sent: Thursday, July 01, 2010 10:02 To: U2 Users List Subject: Re: [U2] AUTO: Haydon Bishop is out ofthe office.(returning 26/06/2010) inquieti wrote: I've ordered I've seen Haydon Bishop t-shirts. Are you going to offer them for sale? Charles Shaffer Senior Analyst NTN-Bower Corporation ___ 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] receiving error message XX record corrupt on logto
What are you people doing 'working' on a Saturday?! Sincerely, David Laansma IT Manager Hubbard Supply Co. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Susan Joslyn Sent: Saturday, May 22, 2010 6:37 PM To: u2-users@listserver.u2ug.org Subject: [U2] receiving error message XX record corrupt on logto I have this happening at a client site and I've been all through the re-file everything and it won't quit. It happens *consistently* if I have more than one session open, but still happens intermittently when I don't. If you do come up with a fix for this I'd be very keen to learn it! Thanks, Susan Joslyn SJ+ Systems Associates, Inc. PRC - IT Governance for U2/Multivalue. From: Susan Lynch sly...@fwdco.com To: U2 Users List u2-users@listserver.u2ug.org Subject: Re: [U2] receiving error message XX record corrupt on logto Message-ID: 004b3459d050475daf942cfccd93c...@susanhome Content-Type: text/plain; format=flowed; charset=iso-8859-1; reply-type=original Kevin, yes, ROOT was the first one I did! Susan Lynch F. W. Davison Company, Inc. ___ 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] AccuTerm File Transfer
The beauty of the Accuterm (and other direct 'push' features) is that there is virtually no setup required on the PC in order to transfer the data. If Accuterm is operational and you have a network connection, it simply works. And if you get really creative, after the file is transported to the PC, then you can activate open Excel run an Accuterm script that opens said file and automatically formats the columns right in front of the user. My users have come to LOVE this 'magical' report delivery method. And no special setup is necessary on their PC. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Robert Houben Sent: Friday, April 30, 2010 1:21 AM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer Back in 1985/86 I helped design and develop a terminal emulator, the first one for PICK, called PK Harmony (based on the PC-Harmony Business Basic emulator family). We designed all these useful escape sequences so you could have a PICK/BASIC program run a DOS command, or drive a printer, either directly or through a slave printer function. I'd like to think that modern terminal emulators have a way to direct output to a printer, but maybe not. I've been out of the terminal emulator end of things and into ODBC/JDBC and successors for almost 20 years now. They might pop up and ask you what printer to send output to, which would be a bit of a drag. The more useful thing would be to be able to ask the emulator what printers it has available and optionally select one by name or ordinal, from the list. Then you could do everything programmatically, without interaction. These days I tend to operate from telnet, so I don't really know the emulators, anymore. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of McGowan, Ian Sent: Thursday, April 29, 2010 6:31 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer I forgot the obligatory plug for pickwiki: http://www.pickwiki.com/cgi-bin/wiki.pl?RunAProgram - this page has escape sequences for a lot of the common emulators... Ian McGowan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of McGowan, Ian Sent: Thursday, April 29, 2010 6:25 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer If you can arrange for the terminal emulator to run a command, you can fire off (for example): cmd /c start http://myserver/files/abc123.pdf; And the end user's PC will launch the default browser and attempt to connect to the web service. You set the mime-type to application/pdf, include some magic javascript in the pdf to open up the print dialog automatically, and Bob's your uncle. Closing the pdf is tricky, we've left it to the user to do that. For word, substitute macros for javascript (though the user will have to be prepared for scary popups). If you have full control of the client's environment, you can install tools like doit (by the author of putty) and bypass the terminal emulator bit. http://www.chiark.greenend.org.uk/~sgtatham/doit/ The other way we do this to send word, excel and pdf docs generated by pick basic code is to simply email it to the user. Sometimes there's no other options - there's a firewall in the way, security won't allow other methods, etc. The users don't seem to care, as long as they get a document in a few seconds. Ian McGowan 925.609.2554 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Thursday, April 29, 2010 5:01 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer Glen, so how is it exactly that an event on the server will trigger this transfer, open, print, and exit? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users IMPORTANT NOTICE: This message is intended only for the addressee and may contain confidential, privileged information. If you are not the intended recipient, you may not use, copy or disclose any information contained in the message. If you have received this message in error, please notify the sender by reply e-mail and delete the 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org
Re: [U2] AccuTerm File Transfer
Kevin, I've found using the ASCII version of the Accuterm transfer to be 'acceptable' regarding speed. A couple of things: Depending on the version of the FT programs, you may be limited to 10-meg files. A couple of tweaks here and there and that can easily be changed to 100-meg or more. Unfortunately, no control characters, except perhaps the CR/LF are transferred in this method. So you'll have to CONVERT all tab to '|' for example, transfer the file and convert them back again. Depending on what you're transferring, this may not be an issue. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Thursday, April 29, 2010 12:32 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer I realize this is an old thread now, but is there any way to improve the speed of the AccuTerm file transfer (preferably using an error correcting protocol)? On SBClient a 25K file takes a couple of seconds, on AccuTerm the same file takes about 30 seconds. ___ 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] AccuTerm File Transfer
Yes, it is as you say. I use it primarily to move reports back and forth, not critical like an EDI transfer. Also, I have been using it for a number of months and have not had a single failure, that has been brought to my attention at any rate. I've been considering writing an ftp script/subroutine to accomplish this much faster, but time and all. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Thursday, April 29, 2010 1:59 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer I noticed that the AccuTerm ASCII transfer is markedly faster, but ... there's no error correction there either (right?) and if this file loses an inopportune character or two, well, bad juju can happen. ___ 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 and stripped drives
My opinion is to stripe all your data over as many drives as possible. Regarding mirroring, I would suggest a third mirror. The third mirror can be broken anytime during the day and used for backup, then 're-sync'd.' This configuration provides for minimum data loss due to (the number one cause of data loss) disk failure. Drives are cheap. Mirror up! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Wednesday, April 28, 2010 12:47 PM To: U2 Users List Subject: [U2] Universe and stripped drives We are in the process of upgrading our system. When we setup our current system, it was suggested we strip our data drives (5) into one, instead of having 5 separate drives, so it could pull more data at once. The new system will have 6 drives available for striping We were going to have 6 drives striped into one, which would be partitioned into our data areas the thought being it would be faster disk access if it's pulling from all 6 drives at once. BUT...all of the partitions are on that one striped drive. Would it be better to have (2) sets of 3 drives striped into one, and setup the two most used accounts on each of those drives, so now it's only pulling data from 3 drives, but there could be less competition between the two accounts, since they are pulling from separate drives? Anyone played with this at all? FYI, each drive is mirrored as well, so if there is a drive failure, data loss is protected, if there was a drive failure on both the main and mirror (same drive) then with the 6 drive strip, we stand to potentially lose more data, than if there were 2 sets of 3 striped. But...since we have full daily backups, and potentially, considering a second backup during the day, the amount of data loss would be minimalso I'm putting that off the table for now in determining whether to go with a 3 or 6 stripe. 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] Universe and stripped drives
Aix does all of this quite seamlessly. You can even configure file systems to use the inner, middle or outer parts of the drives. Mirroring has saved our butts several times, even within the past couple months. It is very comforting when you're reading your Monday morning email and discover a failed drive over the weekend, you look around the office and everybody is working as though nothing were wrong. Hardware comes in, swaps the (hot-swappable) drive, re-sync the mirror and you're back up in just a few hours, literally, and nobody ever stopped working. Redundant power supplies (perhaps second most common cause of system failures) have also proven to be very helpful. Again, IBM has really done their homework on these e-class servers. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Wednesday, April 28, 2010 1:28 PM To: U2 Users List Subject: Re: [U2] Universe and stripped drives interesting idea. Wonder if our RAID controller can do a 3 way mirror? I'll have to check into that. Guess I could always add a second drive array for the third mirror later on (the drives are cheaper, not cheap enough yet - we are using SAS drives for the data drives, and SATA for the system drives - diffenent controllers). -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Wednesday, April 28, 2010 1:16 PM To: U2 Users List Subject: Re: [U2] Universe and stripped drives My opinion is to stripe all your data over as many drives as possible. Regarding mirroring, I would suggest a third mirror. The third mirror can be broken anytime during the day and used for backup, then 're-sync'd.' This configuration provides for minimum data loss due to (the number one cause of data loss) disk failure. Drives are cheap. Mirror up! Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Wednesday, April 28, 2010 12:47 PM To: U2 Users List Subject: [U2] Universe and stripped drives We are in the process of upgrading our system. When we setup our current system, it was suggested we strip our data drives (5) into one, instead of having 5 separate drives, so it could pull more data at once. The new system will have 6 drives available for striping We were going to have 6 drives striped into one, which would be partitioned into our data areas the thought being it would be faster disk access if it's pulling from all 6 drives at once. BUT...all of the partitions are on that one striped drive. Would it be better to have (2) sets of 3 drives striped into one, and setup the two most used accounts on each of those drives, so now it's only pulling data from 3 drives, but there could be less competition between the two accounts, since they are pulling from separate drives? Anyone played with this at all? FYI, each drive is mirrored as well, so if there is a drive failure, data loss is protected, if there was a drive failure on both the main and mirror (same drive) then with the 6 drive strip, we stand to potentially lose more data, than if there were 2 sets of 3 striped. But...since we have full daily backups, and potentially, considering a second backup during the day, the amount of data loss would be minimalso I'm putting that off the table for now in determining whether to go with a 3 or 6 stripe. 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 ___ 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] windows/dos my documents environment variable
Thank you all for your help, however this subroutine from 2005 actually works perfectly: SUBROUTINE ATGETDOCPATH(PATH) * Get path to My Documents folder using AccuTerm Script SCR='InitSession.Output MyDocPath() Chr$(13)' SCR=SCR:CHAR(25):'End Sub' SCR=SCR:CHAR(25):'Private Declare Function SHGetFolderPath Lib shfolder.dll Alias SHGetFolderPathA (ByVal hwnd,ByVal fldr,ByVal tok,ByVal dw,ByVal Path$)' SCR=SCR:CHAR(25):'Function MyDocPath() As String' SCR=SCR:CHAR(25):'Dim path As String' SCR=SCR:CHAR(25):'On Error Resume Next' SCR=SCR:CHAR(25):'path=String$(1000,0)' SCR=SCR:CHAR(25):'SHGetFolderPath 0,5,0,0,path' SCR=SCR:CHAR(25):'path=Left$(path,InStr(path,Chr$(0))-1)' SCR=SCR:CHAR(25):'If Len(path) Then' SCR=SCR:CHAR(25):'If Right$(path,1)\ Then path=path \' SCR=SCR:CHAR(25):'End If' SCR=SCR:CHAR(25):'MyDocPath=path' SCR=SCR:CHAR(25):'End Function' SCR=SCR:CHAR(25):'Sub Dummy' PRINT CHAR(27):CHAR(2):'P':SCR:CHAR(13): ECHO OFF PROMPT '' INPUT PATH: PROMPT '?' ECHO ON RETURN END Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Holt, Jake Sent: Thursday, March 04, 2010 12:31 PM To: U2 Users List Subject: Re: [U2] windows/dos my documents environment variable I don't think it works if the user moves their documents/My documents anyway so it's probably not the best place to be dropping files. I've always avoided it unless it's a .net app where I can use Environment.SpecialFolder.MyDocuments, even then I've only used it once or twice for unimportant things. %HOMEPATH% actually goes to \Documents and Settings\{username} not {drive}:\Documents and Settings\{username} which is why it's not working the same as %USERPROFILE%. Make a network share and use \\server\share\%username% instead =). -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Thursday, March 04, 2010 9:59 AM To: U2 Users List Subject: Re: [U2] windows/dos my documents environment variable ...Or moved it back to where it was in XP. I wonder what it's like to be in on the design meeting where someone says hey, let's just move stuff in this next release, k?. ___ 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] windows/dos my documents environment variable
I know this is not a U2 question, but I am trying to push a file from Unidata to the PC User's 'my documents' directory, using the Accuterm escape sequences for transferring a file. For those of you who are Dos savvy, what is the Dos environment variable that returns the full path of the users 'my documents' directory? Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] AccuTerm File Transfer
I would agree with the FT subroutines. Although compared to ftp, they are EXTREMELY slow and ineffective for my use on large files, even the non-verifying version. As to why U2 does not 'support' it directly, it is a function that is specific to Accuterm's terminal emulator. It would be impractical for U2 to support all of the terminal emulators that can interface to it. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Smith Sent: Monday, February 15, 2010 12:56 PM To: U2 Users List Subject: Re: [U2] AccuTerm File Transfer The easiest way using Accuterm is to just PERFORM/EXECUTE an FT. But I'm surprised that Universe/Unidata doesn't support that sort of thing directly. George On Mon, Feb 15, 2010 at 10:35 AM, Kevin King precisonl...@gmail.com wrote: What's the easiest way to have a program transfer a text file from the host to the workstation using AccuTerm? -Kevin http://www.PrecisOnline.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- George Smith, Phoenix, AZ Member of the Independent Computer Consultants Association since 1983 ___ 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] sending text messages to a regular cell phone
Typically sending a text to your cell phone is just as easy as sending it to any email, it just depends on the provider. For example, to send a text to my Verizon cell phone, the email address is 8105551...@vtext.com You just need to know what your cell provider's standard is. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Barber, Bonnie Sent: Thursday, November 05, 2009 3:06 PM To: u2-users@listserver.u2ug.org Subject: [U2] sending text messages to a regular cell phone We send ourselves alerts from some of our Universe processes via UNIX sendmail. We would like to be able to send some of the critical alerts as text messages to our personal cell phones when there is no one around to monitor emails. Does anyone know if this is possible? The alerts currently go to our company pager, however the pager is rotated through our whole department and it is not always carried by someone who is familiar with our Universe OM system so the alerts are ignored. Thanks in advance for your responses. Bonnie Barber Perseus Distribution | Senior Programmer, J-Cispub 731-988-3135 Direct 800-343-4499 ext. 178 731-988-4452 Fax A smile is like a light in the window telling people you are home ___ 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] Retrieving Unix Date and Time stamp on records in a DIR type file
Given any DIR type file, as defined in the VOC file. When I read a 'record' from that type of file, which is of course actually a file in a directory in Unix, how may I establish what the Unix date and time stamps are on that record/file within Unidata? I am interested specifically in Unibasic source files. I would like to know when the last time a given source program was 'touched'. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Re trieving Unix Date and Time stamp on records in a DIRtype file
Perfect. Thank you! David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Farmer Sent: Tuesday, October 27, 2009 11:56 AM To: U2 Users List Subject: Re: [U2] Re trieving Unix Date and Time stamp on records in a DIRtype file Use the DIR command on the file. Get the path of the file, append the appropriate \ or /, then do a DIR. For example, on a Unix machine: ITEM.ID = 'TEST' OPEN '','BP' TO BP THEN FILE.PATH = FILEINFO(BP,2) ITEM.PATH = FILE.PATH:'/':ITEM.ID ITEM.DATE = OCONV(DIR(ITEM.PATH)2,'D2/') END PRINT ITEM.DATE This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimize the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. Any views and/or opinions expressed in this e-mail are of the author only and do not represent the views of Epicor Software Corporation or any other company within its group. This message has been scanned for malware by Websense. www.websense.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] U2-Users Digest, Vol 6, Issue 12
Agreed on the simple, top-down code with adequate documentation built in. FROM this kind of code, specs can be reverse-engineered. Then those specs can be presented to those utilizing the product to make sure THOSE specs fit the task at hand. And some advise I took from 'The Mob': I don't trust anything I didn't write and only half of what I did. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A Barrett Sent: Wednesday, October 14, 2009 3:42 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] U2-Users Digest, Vol 6, Issue 12 My experience is exactly the opposite. Well written, simple code that approaches its function in straight-forward manner is worth 1000 lbs of specs and documentation. I never, ever approach a maintenance project under the assumption that the documentation from back when has any relevance to the current functioning of the programs in question. On the other hand, the running code is guaranteed to be a totally up to date record of how the system is currently working. Dave Barrett Project Manager, Lawyers' Professional Indemnity Company (LAWPRO®) - Original Message - Date: Wed, 14 Oct 2009 11:59:58 -0400 From: Susan Lynch sly...@fwdco.com To: U2 Users List u2-users@listserver.u2ug.org Subject: Re: [U2] Unibasic: Sample program - to extract data from Table Message-ID: 009401ca4ce7$61abdd10$65fea...@susanhome Content-Type: text/plain; format=flowed; charset=iso-8859-1; reply-type=original As a programmer who has had to maintain and enhance systems that were written apparently based on a one-page spec that everyone on the team understood, when the team members are no longer there, and the documentation was all between their ears (and left with them), I am a big believer in detailed written specs that get turned into test plans and then into documentation. Eventually the lack of specs turns around and bites the organization that allowed it to happen (unless the application was a one-time quick-and-dirty project that will never have to be resurrected). Susan Lynch This e-mail may be privileged and/or confidential, and the sender does not waive any related rights and obligations. Any distribution, use or copying of this e-mail or the information it contains by other than an intended recipient is unauthorized. If you received this e-mail in error, please delete it and advise me (by return e-mail or otherwise) immediately. Ce courrier électronique est confidentiel et protégé. L'expéditeur ne renonce pas aux droits et obligations qui s'y rapportent. Toute diffusion, utilisation ou copie de ce message ou des renseignements qu'il contient par une personne autre que le (les) destinataire(s) désigné(s) est interdite. Si vous recevez ce courrier électronique par erreur, veuillez le supprimer et m'en aviser immédiatement, par retour de courrier électronique ou par un autre moyen. ___ 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] EXECUTE 'CLEARSELECT'
If you goal is to simply count the number of records that match a criteria, consider the COUNT statement. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: Monday, October 12, 2009 12:55 AM To: U2 Users List Subject: Re: [U2] EXECUTE 'CLEARSELECT' This usually indicates that your EXECUTE is executing at a different execution layer. Prime INFORMATION did this by default and had to use PERFORM to use the same runtime execution layer or overide with a $option statement. From: u2-users-boun...@listserver.u2ug.org [u2-users-boun...@listserver.u2ug.org] On Behalf Of Dan McGrath [dmc...@imb.com.au] Sent: Monday, 12 October 2009 1:56 PM To: u2-users@listserver.u2ug.org Subject: [U2] EXECUTE 'CLEARSELECT' Hi all, One of the programmers here has noticed this quirky behaviour in Unidata 7.1. First, we created a file called TEST and gave it 3 records, AA, AB and AC. Then we executed the following program: PROGRAM TEST CLEARSELECT EXECUTE 'SELECT TEST WITH @ID = A]' CRT Records after SELECT :SYSTEM(11) READNEXT KEY ELSE NULL EXECUTE CLEARSELECT CRT Records after EXECUTE CLEARSELECT: :SYSTEM(11) EXECUTE 'SELECT TEST WITH @ID = A]' CRT Records after SELECT :SYSTEM(11) READNEXT KEY ELSE NULL CLEARSELECT CRT Records after CLEARSELECT: :SYSTEM(11) EXECUTE 'SELECT TEST WITH @ID = A]' CRT Records after SELECT :SYSTEM(11) STOP and received the following results: 3 records selected to list 0. Records after SELECT 3 Records after EXECUTE CLEARSELECT: 2 3 records selected to list 0. Records after SELECT 2 Records after CLEARSELECT: 0 3 records selected to list 0. Records after SELECT 3 We would expect SYSTEM(11) to return 0 after the EXECUTE CLEARSELECT but it returns how many items were in the list prior to the CLEARSELECT. Also odd is that the select itself returns that it selected 3 records, but then SYSTEM(11) reports 2 and READNEXT will only extract 2 from the list. The work around is to use Unibasic CLEARSELECT which functions correctly as demonstrated above. When testing this using BASICTYPE u and WHEN @ID LIKE the issue did not present itself. I have tested both UNIX and Windows. Does this happen in 7.2? Regards, Dan ### The information transmitted in this message and attachments (if any) is intended only for the person or entity to which it is addressed. The message may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer. The intended recipient of this e-mail may only use, reproduce, disclose or distribute the information contained in this e-mail and any attached files with the permission of IMB. ### ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ 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] ESC in Unidata
It is probably the escape key, ascii 27. This syntax usually is telling a terminal (emulator) or printer to do something special. Each device has its own 'escape sequence' language, as such, that tells it to do different things. The sequence of characters that follow the ESC character are very specific instructions for that particular device. For example, move the cursor to a specific row and column on the screen, or change the characters per inch on the printer to 10. I cannot tell by this code alone what it is trying to do. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Vaibhav Patil Sent: Friday, July 31, 2009 8:05 AM To: u2-users@listserver.u2ug.org Subject: [U2] ESC in Unidata Please can you tell me the meaning of the following Unidata statement. PRINT ESC:*p170x:ROW:Y:BODYLINE ; What is the significance/use of keyword ESC? -- View this message in context: http://www.nabble.com/ESC-in-Unidata-tp24755334p24755334.html Sent from the U2 - Users mailing list archive at Nabble.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] ESC in Unidata
BTW, here the ESC variable can be replaced with CHAR(27) This would accomplish the same thing. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Vaibhav Patil Sent: Friday, July 31, 2009 8:05 AM To: u2-users@listserver.u2ug.org Subject: [U2] ESC in Unidata Please can you tell me the meaning of the following Unidata statement. PRINT ESC:*p170x:ROW:Y:BODYLINE ; What is the significance/use of keyword ESC? -- View this message in context: http://www.nabble.com/ESC-in-Unidata-tp24755334p24755334.html Sent from the U2 - Users mailing list archive at Nabble.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] ESC in Unidata
Perhaps this is part of a barcode? David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Drew William Henderson Sent: Friday, July 31, 2009 8:23 AM To: U2 Users List Subject: Re: [U2] ESC in Unidata It's a PCL (Laserjet) command for positioning to 170 dots horizontally and ROW dots vertically before printing the line. A subset of the commands available can be found here: http://h2.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=b pl02705 HTH Drew -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Friday, July 31, 2009 8:10 AM To: U2 Users List Subject: Re: [U2] ESC in Unidata It is probably the escape key, ascii 27. This syntax usually is telling a terminal (emulator) or printer to do something special. Each device has its own 'escape sequence' language, as such, that tells it to do different things. The sequence of characters that follow the ESC character are very specific instructions for that particular device. For example, move the cursor to a specific row and column on the screen, or change the characters per inch on the printer to 10. I cannot tell by this code alone what it is trying to do. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Vaibhav Patil Sent: Friday, July 31, 2009 8:05 AM To: u2-users@listserver.u2ug.org Subject: [U2] ESC in Unidata Please can you tell me the meaning of the following Unidata statement. PRINT ESC:*p170x:ROW:Y:BODYLINE ; What is the significance/use of keyword ESC? -- View this message in context: http://www.nabble.com/ESC-in-Unidata-tp24755334p24755334.html Sent from the U2 - Users mailing list archive at Nabble.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 ___ 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] Slow selects
And that will only last for a while before that information is flushed from memory. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Israel, John R. Sent: Thursday, July 30, 2009 11:03 AM To: 'U2 Users List' Subject: Re: [U2] Slow selects The first pass on a file has to start from scratch. Once it has been read and is still fresh in memory, a 2nd pass will run much faster. John Israel Sr. Programmer/Analyst Dayton Superior Corporation 721 Richard St. Dayton, OH 45342 937-866-0711 x44380 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kebbon Irwin Sent: Thursday, July 30, 2009 10:58 AM To: u2-users@listserver.u2ug.org Subject: [U2] Slow selects We are running Unidata 7.1 on a linux box (Red Hat Enterprise Linux ES release 4 (Nahant Update 4) Kernel 2.6.9-42.ELsmp on an i686). For some reason I cannot fathom, the first time you perform any Uniquery command on a file it takes forever to return. Say, 5 minutes. Subsequent queries on the same file, with different criteria (or the same), take seconds, say 10. This is generally on static, hashed files with lots of level 1 overflow, but no level 2 overflow. This is a pretty fast environment with this weird exception. Any ideas about what the problem might be? Thanks, 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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Logoff on Telnet Disconnect
I have a script that I run periodically does this. Here are the critical elements of said script: if ! /dev/${devn} 2/dev/null 1/dev/null then /usr/udthome/bin/stopudt ${proid} fi ${devn} is derived earlier in the script from the 'listuser' command. Basically, if there is a pts in the U2 user list but Unix cannot send a null redirected message to it, it must be disconnected. I am very interested if anyone has another idea that is more reliable. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Friday, July 24, 2009 1:19 PM To: U2 Users List Subject: [U2] [UD] Logoff on Telnet Disconnect Is there any UDT option that causes a Unidata (7.1.16) session to be dropped when the telnet session is inadvertently disconnected? Barring that, when a telnet session is inadvertently disconnected is there a reliable way (AIX 5) to determine that a session has or does not have a telnet client connected to it? -Kevin http://www.PrecisOnline.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] [UD] Logoff on Telnet Disconnect
Sorry, the ${prodid} is the process id, also obtained from the same 'listuser' command. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: Friday, July 24, 2009 1:38 PM To: U2 Users List Subject: Re: [U2] [UD] Logoff on Telnet Disconnect I have a script that I run periodically does this. Here are the critical elements of said script: if ! /dev/${devn} 2/dev/null 1/dev/null then /usr/udthome/bin/stopudt ${proid} fi ${devn} is derived earlier in the script from the 'listuser' command. Basically, if there is a pts in the U2 user list but Unix cannot send a null redirected message to it, it must be disconnected. I am very interested if anyone has another idea that is more reliable. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Friday, July 24, 2009 1:19 PM To: U2 Users List Subject: [U2] [UD] Logoff on Telnet Disconnect Is there any UDT option that causes a Unidata (7.1.16) session to be dropped when the telnet session is inadvertently disconnected? Barring that, when a telnet session is inadvertently disconnected is there a reliable way (AIX 5) to determine that a session has or does not have a telnet client connected to it? -Kevin http://www.PrecisOnline.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 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Logoff on Telnet Disconnect
Good question. I am not sure. I would assume it does. Try it on what you know to be a non-existent pts. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Powell Sent: Friday, July 24, 2009 3:23 PM To: U2 Users List Subject: Re: [U2] [UD] Logoff on Telnet Disconnect I just tried this on a session that the computer was suspended on and it thought the session was alive. I also did this to a non-existent tty (/dev/pts/7a) it also thought it was alive. if ! /dev/pts/7a; then echo dead; else echo alive; fi alive Does the /dev/pts/?? set the $? return value? Thanks. Jeff Dave Laansma wrote: I have a script that I run periodically does this. Here are the critical elements of said script: if ! /dev/${devn} 2/dev/null 1/dev/null then /usr/udthome/bin/stopudt ${proid} fi ${devn} is derived earlier in the script from the 'listuser' command. Basically, if there is a pts in the U2 user list but Unix cannot send a null redirected message to it, it must be disconnected. I am very interested if anyone has another idea that is more reliable. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Friday, July 24, 2009 1:19 PM To: U2 Users List Subject: [U2] [UD] Logoff on Telnet Disconnect Is there any UDT option that causes a Unidata (7.1.16) session to be dropped when the telnet session is inadvertently disconnected? Barring that, when a telnet session is inadvertently disconnected is there a reliable way (AIX 5) to determine that a session has or does not have a telnet client connected to it? -Kevin http://www.PrecisOnline.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 ___ 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 Unit
Susan, What elements of data do you keep in this file? I have the same thing in mine and I keep the last 1,000 executions. Not sure why. Just seemed like a reasonable number. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Susan Joslyn Sent: Thursday, June 11, 2009 10:03 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Unit If you're going to go all over the application code anyway, another idea that I've found very useful for test mode and for general troubleshooting is to have a subroutine that is called at the very top of every program that just marks the time,date,user that ran it. When you run it from the test user this provides 'coverage' metrics. How much of our application code actually got run during that test? And if you leave it on all the time, you can use it for troubleshooting whenever there's a problemMine keeps the latest 10 runs, so the file never gets any bigger than that. And you can clear the file anytime... -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of u2-users-requ...@listserver.u2ug.org Sent: Thursday, June 11, 2009 9:56 AM To: u2-users@listserver.u2ug.org Subject: U2-Users Digest, Vol 2, Issue 35 Send U2-Users mailing list submissions to u2-users@listserver.u2ug.org To subscribe or unsubscribe via the World Wide Web, visit http://listserver.u2ug.org/mailman/listinfo/u2-users or, via email, send a message with subject or body 'help' to u2-users-requ...@listserver.u2ug.org You can reach the person managing the list at u2-users-ow...@listserver.u2ug.org When replying, please edit your Subject line so it is more specific than Re: Contents of U2-Users digest... Today's Topics: 1. Re: UniVerse Unit Testing (Brian Leach) 2. Re: UniVerse Unit Testing (Brian Leach) -- Message: 1 Date: Thu, 11 Jun 2009 14:53:51 +0100 From: Brian Leach br...@brianleach.co.uk To: 'U2 Users List' u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Unit Testing Message-ID: 0mksym-1mekji3tfy-000...@mrelayeu.kundenserver.de Content-Type: text/plain; charset=us-ascii Hi Perry, No - most of the internally used routines had the shorter calling interface, externally facing ones used the extra 'Action' parameter so we could always extend them whilst retaining backward compatibilty. Regards Brian _ From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Perry Taylor Sent: 11 June 2009 13:55 To: U2 Users List Subject: Re: [U2] UniVerse Unit Testing Brian, You say that you designed all our server code as subroutines such that all of our subroutines had one of two calling interfaces. This would seem to mean that you built and maintained two different versions of every external subroutine/function. Is this correct or am I just missing something? Thanks. Perry _ From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Thursday, June 11, 2009 3:19 AM To: 'U2 Users List' Subject: Re: [U2] UniVerse Unit Testing Hi At my last company, we spent a lot of effort on building an automated test rig for our software, because we had to support multiple platforms and all our code required full regression testing. It may be a slightly different scenario to yours, since we were primarily building tools, and also this was complicated by the fact that all of our software was client/server in some way, and usually involved several languages .. but here is our experience for what it's worth: The bad news is that you really need to design these in from the start. We designed all our server code as subroutines such that all of our subroutines had one of two calling interfaces, either: Subroutine name(InData, OutData, ErrText) or Subroutine name(Action, InData, OutData, ErrText) That meant that we could generate a test rig that could feed the InData (and Action) and then test for the OutData and log any ErrText values. For reports, we would capture the report text and do 'spot checks' on the expected results. We also version stamped our routines, so we were certain we were testing the right versions, and had build scripts to recompile everything. Nothing left to manual operation since that opens up the opportunity for something to get forgotten: there is no point testing stuff to QA and then doing something different when you come to release! Incidentally, since this was client/server, these involved VBScript scripts for the client end calling cutting paragraphs on the server along the line.
Re: [U2] UniVerse Unit Testing
Very interesting ... Hmmm David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Averch Sent: Thursday, June 11, 2009 10:52 AM To: 'U2 Users List' Subject: Re: [U2] UniVerse Unit Testing Jerry and All, We did something similar to Brian. All of our Basic code was re-designed to have 6 arguments: PARAM1, PARAM2, PARAM3, PARAM4, RETURN.INFO, and METHOD. That way we could automatically test any program from any other program by knowing every program had 6 arguments. For reports PARAM2 was where all of the data was passed in as dynamic array, the output uses RETURN.INFO. Entry programs passed the updated data in on PARAM2 and passed data out on RETURN.INFO using an open source format called json. JSON is not as verbose as XML and JavaScript and Java natively handle the format by converting it to an array. We Basic programmers do like to work with arrays of data. We used METHOD to tell subroutine what it should be doing (i.e. CreateReport, LoadDefaults, ReadData, WriteData, or BuildGrid). That way the programs became very similar in structure. We had two or three programs that supported entry screens were all reduced to a single programmer. We had to learn how debug the Basic code, the JavaScript, and the HTML code. You cannot use the debugger on the Web. We developed what we call a logger, so instead of using a DEBUG statement or the simple CRT statement to see what the variables are and where you are in the code, you now call a subroutine that writes to a log that can be viewed either from Telnet or from our Eclipse based Basic Editor. Debugging JavaScript requires a great open source tool called Firebug that runs on Firefox. We had upwards of 2000 programs running Accounting, CRM, Distribution, Document Management, Payroll, Transportation, and Warehousing all running as green screen applications We stripped out all of the screen I/O which reduced the program to about 1/3 their previous size. We changed all of the code from whatever they were to subroutines using our 6 arguments. Perhaps the most problematic was all of the reports had to be switch to HTML format. That process was the most time consuming due the amount of code that needed to be changed. However, this gave us time to reduce the amount of reports we produced. We consolidated similar reports into a single report with multiple report options. Some programs took minutes, some took days and some took weeks. Some of the code was over 25 years old and required a complete rewrite because of the GOTO's and calls to various green screen subroutines that no longer existed. Since we have customers that run in Universe and Unidata we had to develop the techniques to run the same code on both platforms. We develop all of our software on Universe and port to Unidata. Our Eclipse based Installer comments out the Universe specific code an uncomments out the Unidata specific code depending on the destination machine. I should note that our code was first written for RedBack running on IIS. I decided after a few years that platform was not going in the direction we need to go so we ported to our own middleware using open source Apache Tomcat. We accomplished this over a period of a year with four programmers. We now have around 400 programs that run all of our applications listed above. We are constantly evolving our interface. We just switched from a home grown cross-reference to a open source tool that allows us to load 50,000 records in under a second and it has built in filtering, column sorting and paging. The Web is truly an amazing place where you can get open source software that we would have spent weeks to months writing. Regards, Doug www.u2logic.com From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of jpb-u2ug Sent: Thursday, June 11, 2009 7:23 AM To: 'U2 Users List' Subject: Re: [U2] UniVerse Unit Testing Doug and Brian, Could you give me some numbers on how long and how many people (man hours) it took to do the changes? Approximately how many programs did you have to convert to the new way and what did you end up with? Jerry Banker From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Perry Taylor Sent: Thursday, June 11, 2009 7:55 AM To: U2 Users List Subject: Re: [U2] UniVerse Unit Testing Brian, You say that you designed all our server code as subroutines such that all of our subroutines had one of two calling interfaces. This would seem to mean that you built and maintained two different versions of every external subroutine/function. Is this correct or am I just missing something?
RE: [U2] Opening UniBasic Source Code
FYI, Unix scripts are really handy for making 'mass' changes. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Brutzman, Bill Sent: Thursday, May 21, 2009 10:24 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Opening UniBasic Source Code I am looking to inspect the unix file for read, write, and delete commands. The openpath command works well. --Bill -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Gregor Scott Sent: Wednesday, May 20, 2009 9:36 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Opening UniBasic Source Code - Tab Key Bill, What exactly are you trying to achieve with the unix file? On UniVerse the openpath command will open a unix path as a database file, from which you then read items as normal. You either need to change to use the openseq command so you can sequentially read the contents of the unix item, or openpath '/u2/SOFTWARE/BP' to open the unix path as a file and then read the BASELINE.R0 item. Gregor --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] How to 'transfer' a READU lock to another process/port
I have a situation where a file needs to be built from a series of 4 different programs before it can be processed by a fifth. These 5 programs cannot be 'daisy-chained' or called, one to the next. What I did is maintain a 'CONTROL' record in the dictionary file that says which of the 5 programs is 'ready' to be run next. Cumbersome but effective. Any better ideas out there? David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Marco Manyevere Sent: Monday, May 04, 2009 8:39 AM To: u2-users@listserver.u2ug.org Subject: [U2] [UV] How to 'transfer' a READU lock to another process/port The solution I have for a certain problem could easily be solved without redesigning large portions of the existing code if I could implement an algorithm to have process1 release a READU lock and have process2 acquire that lock ahead of all other processes that may be interested in the same lock. Does anyone have an idea how I could do this in UV? Kind regards, Marco. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] unibasic's sort function
I am not sure about the SORT, but I would suggest simply: LIST = KEY = LIST-1 = KEY David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Greg Schraiber Sent: Tuesday, February 03, 2009 11:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] unibasic's sort function I have a dynamic array built like this: LIST = KEY = CONDES.DESIGNATION : * : CONTRIB.DONOR.DATE : * : ID.NO IF LEN(LIST) = 0 THEN LIST = KEY END ELSE LIST := @AM : KEY END When I do: LIST = SORT(LIST) in Unibasic, compil and run it, it returns LIST=0 Can anyone tell me what I am doing wrong? Thanks for your help! Greg Schraiber Beloit College --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] unibasic's sort function
It is in the Unidata Unibasic Reference Manual. However there was quite a lengthy discussion on sorting in general a few months ago or so. Look through the archives. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Bessel, Karen Sent: Tuesday, February 03, 2009 1:03 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] unibasic's sort function I didn't think it existed either, that's pretty darned cool. I looked for it in the BASIC.HELP file, and it isn't there. Is it a UniData thing? Karen Bessel Software Developer Tyler Technologies, Inc. 6500 International Parkway, Suite 2000 Plano, TX 75093 Phone: 972.713.3770 ext:6227 Fax: 972.713.3777 Email: karen.bes...@tylertech.com Web: http://www.tylertech.com -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Edward Brown Sent: Tuesday, February 03, 2009 11:15 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] unibasic's sort function The SORT function (which I'm embarrassed to say I didn't think existed, and I've been coding unibasic for the last 8 or 9 years!) sorts the data passed into it; there isn't a return value. So SORT(LIST) CRT LIST does work. Your original program sets LIST to 0 because LIST is set to the return result of the sort statement - perhaps this should throw a compiler error? Or perhaps there's an undocumented return code if the data could not be sorted? Edward -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Dave Laansma Sent: 03 February 2009 16:56 To: u2-users@listserver.u2ug.org Subject: RE: [U2] unibasic's sort function I am not sure about the SORT, but I would suggest simply: LIST = KEY = LIST-1 = KEY David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of Greg Schraiber Sent: Tuesday, February 03, 2009 11:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] unibasic's sort function I have a dynamic array built like this: LIST = KEY = CONDES.DESIGNATION : * : CONTRIB.DONOR.DATE : * : ID.NO IF LEN(LIST) = 0 THEN LIST = KEY END ELSE LIST := @AM : KEY END When I do: LIST = SORT(LIST) in Unibasic, compil and run it, it returns LIST=0 Can anyone tell me what I am doing wrong? Thanks for your help! Greg Schraiber Beloit College --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- Please remember to recycle wherever possible. Reduce, reuse, recycle, think do you need to print this e-mail? --- This e-mail and any attachment(s), is confidential and may be legally privileged. It is intended solely for the addressee. If you are not the addressee, dissemination, copying or use of this e-mail or any of its content is prohibited and may be unlawful. If you are not the intended recipient please inform the sender immediately and destroy the e-mail, any attachment(s) and any copies. All liability for viruses is excluded to the fullest extent permitted by law. It is your responsibility to scan or otherwise check this email and any attachment(s). Unless otherwise stated (i) views expressed in this message are those of the individual sender (ii) no contract may be construed by this e-mail. Emails may be monitored and you are taken to consent to this monitoring. Civica Services Limited, Company No. 02374268; Civica UK Limited, Company No. 01628868 Both companies are registered in England and Wales and each has its registered office at 2 Burston Road, Putney, London, SW15 6AR. --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Counting records
Wol, In Unidata the COUNT commands does not leave an active select list. It just returns the number of records that match the criteria. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Anthony Youngman Sent: Wednesday, November 19, 2008 10:04 AM To: 'u2-users@listserver.u2ug.org' Subject: RE: [U2] Counting records Several things look a bit wonky to me here. Firstly I'd get rid of the first three lines with CMD = COUNT :FILENAME Then the routine as shown here leaves a hanging select list - NOT a good idea when the next person comes along and doesn't realise it. I've never used it, but isn't there a form of EXECUTE that will return the select list as a variable? I'd use that to mop up the select list. Then I'd do RCNT = @SELECTED (iirc there is such an @ variable) Failing any of those, after the execute, I'd do a READLIST to mop up the select list, followed by a RCNT = DCOUNT( variable, @FM) to get the count. Oh - and I'd return RCNT in the first argument. Makes it a lot more flexible - you can declare it as a function, call it from SUBR in i-descriptors, whatever whatever. Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Laansma Sent: 19 November 2008 14:05 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records I have written the following subroutine to count files: SUBROUTINE HUB.COUNT.FILE (FILENAME,RCNT) CMD = 'COUNT' CMD-1 = FILENAME SWAP @AM WITH IN CMD CALL SB.DISP(9,CMD) EXECUTE CMD CAPTURING MSG RETURNING ERR RCNT = ERR2,2 IF RCNT = THEN RCNT = ERR1,2 END RETURN END David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Symeon Breen Sent: Wednesday, November 19, 2008 8:34 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records In udt there is a system function after you have done a select, system(11). E.g. EXECUTE SELECT file ; NUM.OF.RECORDS = SYSTEM(11) -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of T Stokes Sent: 18 November 2008 22:59 To: u2-users@listserver.u2ug.org Subject: [U2] Counting records I am trying to remember a Universe function that returns the number of records in a file. Something like this. OPEN 'SOMEFILE' TO SOMEFILE ELSE STOP 201,SOMEFILE NUM.OF.RECORDS = UNKNOWNFUNCTION(SOMEFILE) -- View this message in context: http://www.nabble.com/Counting-records-tp20569376p20569376.html Sent from the U2 - Users mailing list archive at Nabble.com. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.175 / Virus Database: 270.9.3/1786 - Release Date: 17/11/2008 17:24 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Counting records
One advantage of using my subroutine is I can pass in just the file name and get a count of all records, or I can specify the filename AND some selection criteria and it will return the count of the records that match that criteria. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of DAVID WADEMAN Sent: Wednesday, November 19, 2008 10:46 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records SIMPLE CODE FOR COUNTING RECORDS (IN UNIDATA) :AE DAVID COUNT3 PROGRAM COUNT3 PERFORM COUNT STUDENTS NUM.RECS = @SYSTEM.RETURN.CODE PRINT PRINT NUMBER OF RECORDS: :NUM.RECS *--: FIBR Filed COUNT3 in file DAVID. Compiling Unibasic: oisdir/david/COUNT3 in mode 'u'. compilation finished COUNT STUDENTS 39635 record(s) counted. NUMBER OF RECORDS: 39635 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Laansma Sent: Wednesday, November 19, 2008 10:24 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records Wol, In Unidata the COUNT commands does not leave an active select list. It just returns the number of records that match the criteria. David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Anthony Youngman Sent: Wednesday, November 19, 2008 10:04 AM To: 'u2-users@listserver.u2ug.org' Subject: RE: [U2] Counting records Several things look a bit wonky to me here. Firstly I'd get rid of the first three lines with CMD = COUNT :FILENAME Then the routine as shown here leaves a hanging select list - NOT a good idea when the next person comes along and doesn't realise it. I've never used it, but isn't there a form of EXECUTE that will return the select list as a variable? I'd use that to mop up the select list. Then I'd do RCNT = @SELECTED (iirc there is such an @ variable) Failing any of those, after the execute, I'd do a READLIST to mop up the select list, followed by a RCNT = DCOUNT( variable, @FM) to get the count. Oh - and I'd return RCNT in the first argument. Makes it a lot more flexible - you can declare it as a function, call it from SUBR in i-descriptors, whatever whatever. Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Laansma Sent: 19 November 2008 14:05 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records I have written the following subroutine to count files: SUBROUTINE HUB.COUNT.FILE (FILENAME,RCNT) CMD = 'COUNT' CMD-1 = FILENAME SWAP @AM WITH IN CMD CALL SB.DISP(9,CMD) EXECUTE CMD CAPTURING MSG RETURNING ERR RCNT = ERR2,2 IF RCNT = THEN RCNT = ERR1,2 END RETURN END David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Symeon Breen Sent: Wednesday, November 19, 2008 8:34 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Counting records In udt there is a system function after you have done a select, system(11). E.g. EXECUTE SELECT file ; NUM.OF.RECORDS = SYSTEM(11) -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of T Stokes Sent: 18 November 2008 22:59 To: u2-users@listserver.u2ug.org Subject: [U2] Counting records I am trying to remember a Universe function that returns the number of records in a file. Something like this. OPEN 'SOMEFILE' TO SOMEFILE ELSE STOP 201,SOMEFILE NUM.OF.RECORDS = UNKNOWNFUNCTION(SOMEFILE) -- View this message in context: http://www.nabble.com/Counting-records-tp20569376p20569376.html Sent from the U2 - Users mailing list archive at Nabble.com. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.175 / Virus Database: 270.9.3/1786 - Release Date: 17/11/2008 17:24 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http
RE: [U2] Speeding up processing through large dynamic table
Oh my goodness! This is incredible. Okay, now I have a mixture of @VM and @AM in the table. The REMOVE 'stops' at every @VM and @AM. I only want it to 'stop' at @AMs. How do I do that? David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Joshua Gallant Sent: Monday, November 17, 2008 1:31 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Speeding up processing through large dynamic table When running through an array with a for next loop the last item processed isn't remembered so the program needs to traverse the entire array for each record and will slow down as you get to records later in the process. Instead of this: A11 = DCOUNT(IN.TAB,@AM) FOR A1 = 1 TO A11 IN.LINE = IN.TABA1 SWAP @VM WITH @AM IN IN.LINE CUST.NUM = IN.LINE1 CUST.DESC = IN.LINE2 NEXT A1 Try something like this instead: LOOP REMOVE IN.LINE FROM IN.TAB SETTING MARK SWAP @VM WITH @AM IN IN.LINE CUST.NUM = IN.LINE1 CUST.DESC = IN.LINE2 WHILE MARK DO REPEAT That will keep track of where you were in the array and pick up where you left off. Let me know how that works out for you. Thanks, Josh -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Laansma Sent: Monday, November 17, 2008 1:10 PM To: u2-users@listserver.u2ug.org Subject: [U2] Speeding up processing through large dynamic table Is there a way to speed up spinning through a very large dynamic table? Here is a sample of my program: A11 = DCOUNT(IN.TAB,@AM) FOR A1 = 1 TO A11 IN.LINE = IN.TABA1 SWAP @VM WITH @AM IN IN.LINE CUST.NUM = IN.LINE1 CUST.DESC = IN.LINE2 NEXT A1 A11 is 85,000+ and as this loop goes on, this thing get really slow. Any tips on speeding this up? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Speeding up processing through large dynamic table
That is what I was afraid of. Okay. So after listening to all of your comments (thus far since there is an annoying delay in these messages), here is what I like the best: SWAP CHAR(9) WITH IN IN.TAB SWAP CHAR(10) WITH IN IN.TAB SWAP @VM WITH CHAR(9) IN IN.TAB SWAP @SM WITH CHAR(10) IN IN.TAB REPEAT REMOVE IN.LINE FROM IN.TAB SETTING MARK SWAP CHAR(9) WITH @VM IN IN.LINE SWAP CHAR(10) WITH @SM IN IN.LINE (do my thing with IN.LINE) UNTIL MARK DO REPEAT Any objections, concerns or better suggestions for using CHAR(10) as the temporary substitute for the @SM? I just picked it because it came right after CHAR(9) on my handy-dandy ASCII chart! Been using it since the 70's. Some things just never go out of style! David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Wolverton Sent: Monday, November 17, 2008 2:52 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Speeding up processing through large dynamic table If you don't want to 'swap' all the other markers with 'strings' (SWAP @VM WITH VM IN RECORD) then you have to 'build' the line item up -- keep removing until you see the remove hit the @AM and then process the line... DW -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Laansma Sent: Monday, November 17, 2008 1:24 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Speeding up processing through large dynamic table Oh my goodness! This is incredible. Okay, now I have a mixture of @VM and @AM in the table. The REMOVE 'stops' at every @VM and @AM. I only want it to 'stop' at @AMs. How do I do that? David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/