Hi George,
There is a project on sourceforge
(http://sourceforge.net/projects/mdbtools) that allows you to extract
tables on your unix box. However although you won't need Access, you'll
still have to write something to slurp in a text file afterwards.
HTH
Andre
Date: Mon,
Hello all,
I need some advice on Universe and .NET. We would like to begin using
.NET as our front-end with Universe as our back-end. We have started to
explore UO.NET, but it does not seem to provide us with the performance
we will require. Our processes are currently written in PICK BASIC
You do have to disallow modification of the print string by the database or
spooler. I use 'SETPTR ':lpu:',1024,80,,,1,NFMT,dest printer,BRIEF', where
lpu is the logical print unit. The no format seems to work. I've seen other
suggestions on this list for accomplishing the same. I get errors
Hi,
I would like to do some encryption of data in a Unidata file. I wonder if
there is someone who has a MD5 hashing unibasic subroutine that I could use.
Thanks in advande!
Bjvrn Eklund
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit
Hi All,
We are planning to train some of our new programmers
to use good programming practices when using U2 Basic.
I can remember in Unidata days us having some tech
support documents that talked about this. Example such
as when is the best time to use CASE instead IF ELSE
or not to use GOTO
The reason that our current processes are so fast is that we read as
much common data as humanly possible into memory at start-up so there is
little overhead while the process is running. If I have to call a
subroutine from .NET, that would actually slow processing down. I need
to get the data
At 14:39 +0200 2005/09/27, Bjvrn Eklund wrote:
I would like to do some encryption of data in a Unidata file. I wonder if
there is someone who has a MD5 hashing unibasic subroutine that I could use.
There was some discussion on this in the past.
I'll try to dig-up the URL to a package that
Simon,
I believe you may be able to purchase an operator's manual or a programmer's
manual from printersource.com in the US. Call John at 800-788-5101.
I understand that the Tally 6xxx series emulates, among others, the Epson FX
printer, so you should be able to write a driver using the Epson
I've been teaching UniBasic for over 10 years and here are some of the
methods I teach:
* Subroutines should only have one job.
* Subroutines should be short. (less than 10 lines)
* Subroutines should have one entrance and one exit.
* Use meaningful variable names and subroutine names.
* Be
Load the patch, all will be well.
I would however suggest using a subroutine for those chores that can
be done quicker on the server. I don't think that uv.net is really
meant as a replacement for UniBasic on the backend.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe
I like these and would add another one - Add comments to tricky-looking
code!
-Dianne
David A. Green wrote:
I've been teaching UniBasic for over 10 years and here are some of the
methods I teach:
* Subroutines should only have one job.
* Subroutines should be short. (less than 10 lines)
*
Also, how about a change log at the top of the program
that lists, who, when and what/why a change was made.
add to that a short description as to what the function
of the program is for.
* this program does .
*
*
* date who changes made
* date who changes made
u2-users,
I have looked for archives at u2ug.org but not found them .. (must be
blind)
I have downloaded pdfs from IBM but i keep getting Universe ..
so I will just ask and take the deserved harassment G
is there a udt.option that allows you to use lower case in unidata
programs?
thanks ..
My addition to this would be to use alphanumeric labels, and to *have* a
main calling section. A main calling section that looks like:
GOSUB OPEN.AND.INIT
GOSUB SELECT.FILE
GOSUB PRE-PROCESS.VALIDITY.CHECKS
GOSUB PRINT.INVOICES
GOSUB UPDATE.FILES
Looks so much better and is so easier to figure
Original Message
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
David Tod Sigafoos
Sent: Tuesday, September 27, 2005 12:19 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] Lower case in Unidata basic
u2-users,
I have looked for archives at u2ug.org but not found them
Yes good one.
The more readable your code the easier to DEBUG and to reuse.
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dianne Ackerman
Sent: Tuesday, September 27, 2005 11:57 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Good Programming
PDF Library = http://ibm.com/software/data/u2/pubs/library
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
On 9/27/05, Dianne Ackerman [EMAIL PROTECTED] wrote:
I like these and would add another one - Add comments to tricky-looking
code!
-Dianne
And DON'T add comments to the mundane routine stuff!!
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit
And here's where the conflict begins. When looking through a big
program, I much prefer numeric labels in order with comments vs.
alphanumeric labels. With numeric labels in order you find 1800 and
if you're looking for 2000 you know to look farther down, 1000, go up.
With alpha labels if you
Unidata PDFs:
http://www-1.ibm.com/support/search.wss?tc=SSCRXTrs=628rank=8dc=DA410+DA4
50+DA420+DA430+DA440dtm
or if you prefer
http://tinyurl.com/7mqr4
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of David Tod
Sigafoos
Sent: Tuesday, September 27, 2005
I think we have a good start and thanks for all the
input. Can you guys also include technical information
as well.
I am sure you would have encounted some way of
programming gives faster results than the others.
Let's say as an example, if you are opening a program
all the time, just to make it
In addition to using subroutines, when developing with UniVerse and SB+
I often have one application handle many, if not all of the screen and
report processing. This helps keep things in one place. For this I use
the ON GOSUB construct of the BASIC language. It's worth noting
depending on its
AhI always put my subroutines in the same order as they are in the main
calling section. And using Accuterm, if you highlight the SELECT.FILE
portion of the GOSUB SELECT.FILE, then hit CTRL-F it puts SELECT.FILE in
there for you and Bingo, you're there.
I get tired of the redundancy of using
Try not to use dim arrays to hold file variables. difficult to diag.
Keep label and variable names to 14 chars and under for universe's xrefer
Avoid ever 'falling' into a label
Never branch around stuff
Sometimes its nice to comment CASE statements
CASE LEN(ID) LE 5 ;* its a phone number
..
On
I agree with Kevin, specifically for the reasons he mentions, but I
actually prefer using the alpha-numeric format like S3000.GET.CUSTNAME:
where the S designates it's an internal subroutine, 3000 is the
numeric position value that Kevin talks about, and GET.CUSTNAME so
every place that I call the
But I take the middle road with labels like:
A001.mainline:
code
RETURN ;* from A001.mainline
A010.open.and.init
B100.select.file
B200.pre-process.validity.checks
C500.print.invoices
C700.update.files
Z900.error
that I order by prefix. I get ordering, description, and grouping. I also
Kevin:
Not if you alphabetize the labels; then it works just like numeric. :-)
Bill
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Kevin King
Sent: Tuesday, September 27, 2005 1:04 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] Good
We usually wrap this in a LOOP REPEAT and case statements using an action
code that changes for the completion of each routine.
ACTION = 'INIT'
LOOP UNTIL ACTION = 'ABORT' OR ACTION = 'EOJ' DO
BEGIN CASE
CASE ACTION = 'INIT'
GOSUB OPEN.AND.INIT
CASE ACTION = 'SELECT'
Kevin,
I disagree, for a simple reason:
I use alpha labels that make sense and then place them in the code in
alphabetical order.
Problem solved grin.
Just a few off the top of my head (it's late here):
1. If using UniVerse, use mixed case to encourage readability when scanning
through a
alphabetize the labels? You mean sort?? :-)
-K
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Bill_H
Sent: Tuesday, September 27, 2005 1:35 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] Good Programming Practice Question.
Kevin:
Not
I personally would rather use alpha-numeric labels because of the many
programs I have come across that tend to not have comments. You can always
use a locate to find the subroutine especially if you use correct labeling
with a colon at the end.
END.OF.PROGRAM:
- Original Message -
I prefer alphanumeric labels for subroutines. The label should give some
clue as to the function of the subroutine. The subroutines should be in
frequency of use order with the most commonly used closer to the top of
the program. Subroutines that are used once in a program (file opens,
What about lock management?
1. Lock all records that are going to be updated ... even if the update
is really a delete
2. Release your locks promptly (either with a RELEASE, WRITE or DELETE
statement) - don't let the program termination be the time when record
locks are released
3. Use the LOCKED
I most heartily agree! Numbers in the labels don't elucidate; they merely
increase the length. And I'm pretty sure I know that U comes somewhere
after S. :)
My $0.02 (on issues ancillary to the code itself) ...
- make your BP files Type19 (DIR), so you can edit them outside of U2 using
I'll toss in 2 cents on 'standards'.
If maintaining an existing environment, should you add a new standard
(yours) or should you adhere to the primary one already there.
For example, I use
OPEN CUST TO F.CUST ELSE STOP
whereas one app has
OPEN CUST TO CUST.FILE ELSE STOP
I agree with many of
Another good suggestion:
Use:
LAST=DCOUNT(ARRAY,CHAR(253))
FOR I=1 TO LAST
blah
NEXT I
instead of
FOR I=1 TO DCOUNT(ARRAY,CHAR(253))
I know that REMOVE is pretty promoted here but most times I use a FOR/NEXT
loop because I don't want to maintain a separate mv variable for using any
other
Another suggestion:
Since the RETURN statement actually has 2 meanings, I add a comment at the
end of the RETURN that concludes a called subroutine, especially if there
are internal subroutines within it.
RETURN ;* TO CALLING PROGRAM
I'm glad we don't have POP and wince when I see RETURN TO.
David,
just for the info ..
BASIC FILE ITEM -I
is how to compile a program containing lower case.
Tuesday, September 27, 2005, 12:19:21 PM, you wrote:
DTS u2-users,
DTS I have looked for archives at u2ug.org but not found them .. (must be
DTS blind)
DTS I have downloaded pdfs from IBM but
Kevin:
Yes. For example:
GOSUB INIT.GLOBAL
GOSUB INIT.LOCAL
GOSUB OPEN.FILES
GOSUB GET.CONFIG
.
LOOP
READNEXT ID ELSE EXIT
GOSUB READ.DATA
GOSUB UPDATE.DATA
GOSUB WRITE.DATA
REPEAT
GOTO END.OF.PROGRAM
.
***
GET.CONFIG:
***
.
RETURN
*
***
Nick,
We do something similar, have a look at COM+ object pooling (google/msdn).
You can start up a configurable number of sessions (setting common) and
call them from managed classes as required. When processing is quiescent
for a set period of time, the sessions will close.
We're using this
I recommend that everyone buy/borrow a copy of Code Complete by Steve
McConnell. It has several sections dedicated to good coding practices.
Readability is key, since we read programs hundreds of times more than we
write them. The book offers lots of strategies to improve readability, like
Mark Johnson
P.S. I would also love to see an analyzer program that identifies whether
OPENed files READ, WRITE, CLEAR and/or DELETE. It could be a comment at the
end of the OPEN statement. Often times I FIND a BP file for CUSTOMER and
WRITE but they're not necessarily attached.
I like having a
And what is the short answer? Can you or can you not use lower case
keywords in Unidata BASIC these days?
Thx.
--
Regards,
Clif
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
I will be out of the office starting 28/09/2005 and will not return until
29/09/2005.
Pour les clients accidant au Support Technique des produits IBM U2,
veuillez renvoyer votre message sur : [EMAIL PROTECTED]
Merci
For non-french speaking customers : If your IBM U2 products Technical
Ugh! My personal preference. The only reason I use mixed case is for
comments. With Universe differentiating between case (OrderRec is not
orderrec or ORDERREC) you have to remember the way you mixed the case. Also,
it makes it easier to recognize the comment lines in the code.
When modifying
Clifton,
i posted in a different reply .. i found in the new docs (thanks to
the links i was given) (at same time as my good buddy Dan Fitzgerald
emailed me)
BASIC file item -I
of course this does you no good with FIB from the editor .. but hey
part of a solution is good enough for me G
No
Bob,
10 lines is a good rule to live by. There are some exceptions like the
Initialization routine or large CASE structures that have many options. But
the problem you run into if you don't restrict your lines is you end up
doing more than one thing. Most of the Pick programming that I've run
To unsubscribe please visit http://listserver.u2ug.org/
BL __ NOD32 1.1234 (20050927) Information __
BL This message was checked by NOD32 antivirus system.
BL http://www.eset.com
--
DSig `
David Tod Sigafoos ( O O
Original Message
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Brian Leach
Sent: Tuesday, September 27, 2005 1:49 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] Good Programming Practice Question.
Kevin,
I disagree, for a simple reason:
I use alpha
Jerry,
Tuesday, September 27, 2005, 3:09:02 PM, you wrote:
JB Ugh! My personal preference. The only reason I use mixed case is for
JB comments. With Universe differentiating between case (OrderRec is not
JB orderrec or ORDERREC) you have to remember the way you mixed the case.
you should be
Nick,
(This maybe double post...)
We use .NET and UniObjects on HP-UX with Universe.
The access time is close to zero.
All of our processes use Call Subroutines. Opening files and doing
things manually on .NET side will take forever.
At times we have about 10 to 20 thousand students access our
RETURN with a comment..that is an excellent suggestion.
Nancy
- Original Message -
From: Mark Johnson [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Tuesday, September 27, 2005 2:51 PM
Subject: Re: [U2] Good Programming Practice Question.
Another
true .. when you are making changes .. but new stuff can start a new
trend. we used to use punch cards .. but I moved on .. and if I can
move on then anybody can G
You don't use punch cards? How do you make your programs run?
Our greatest duty in this life is to help others. And please, if
Yes, the BASIC -I option. The only drawback, according to TFM, is that it
won't check for keyword usage in the code if you use the -I. So you can use
OPEN and DELETE as variable names. ;)
Our greatest duty in this life is to help others. And please, if you can't
help them, could you at
Hi David,
I guess we'll have to just disagree on this point as I see our
definition of a single task as being different. Although Basic can be
treated as an object oriented environment, I do not think the majority
of basic programmers do that, but that's just my unconfirmed belief.
I'll let you
I haven't heard it said (much) lately so if I missed it, forgive me.
STANDARDS ARE ESSENTIAL
I have standards for structure, header/commenting, everything
including variable names. Everything is done with purpose and
according to standard, which makes it very easy to recognize code and
its
Dan,
Tuesday, September 27, 2005, 3:39:21 PM, you wrote:
true .. when you are making changes .. but new stuff can start a new
trend. we used to use punch cards .. but I moved on .. and if I can
move on then anybody can G
DF You don't use punch cards? How do you make your programs run?
i
RETURN with a comment..that is an excellent suggestion.
I'd argue that any END statement that's more than a handful (8-10) lines
from the opening IF (or whatever) statement should have a comment.
Here's an example (that's not long enough to satisfy my 'handful' argument
above):
I worked for a company which had at lease 10 machines working. I would
suggest that you contact Carl Keogh at Austral Bricks in Perth Western
Australia who aquired the old Bristile company. When I left 8 years ago they
had just decomisioned two of the IBM RT's running Pick OA 2.02 and System
David, and U2-Users:
There is now a link on the u2ug.org home page to the IBM documentation page.
It's in the column at the left. In addition, you'll also now find a direct
link to the searchable archives (BTW, thanks to Lee Leitner and Infocus for
providing this service). We really want to make
We also use xnn.meaningful.name type labels. One advantage is that our
editor can recognise a label and putting the cursor on a line that
includes a GOSUB and pressing one function key will move the cursor
directly to the correct paragraph.
One thing I've never agreed with (except in COBOL) is
This is where the FIND command becomes handy
From: [EMAIL PROTECTED] on behalf of Kevin King
Sent: Tue 9/27/2005 4:03 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] Good Programming Practice Question.
And here's where the conflict begins.
Allen:
I know we've seen the same crappy code LOL
From: [EMAIL PROTECTED] on behalf of Allen E. Elwood
Sent: Tue 9/27/2005 4:27 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] Good Programming Practice Question.
AhI always put my
Hi,
I am receiving the following error:
Computed blink of 0xB44 does not match expected blink of 0x0!
Detected within group starting at address 0x8000!
Internal data error.
I am having a 2GB Data 30 file, which got locked due to unix restriction on
file size.
A unibasic program has been
Laura,
what .. Lee is still around .. who would've guessed G
Tuesday, September 27, 2005, 5:22:05 PM, you wrote:
LH David, and U2-Users:
LH There is now a link on the u2ug.org home page to the IBM documentation page.
LH It's in the column at the left. In addition, you'll also now find a direct
I hope you're joking - talk about making code unreadable, comments that
look like code are (IMO) a very BAD idea. The indentation level makes it
perfectly clear what goes with what, and if it doesn't then change the
structure of the code.
IMO
IF XOOS.ALL.COURSES='Y' THEN
some
Bjorn,
the past few releases of UD have allowed the use of the ENCRYPT function
specifically for MD5 hashing.
I have some source code that Dave Meagher wrote. It claims to do
encryption (BLOWFISH, CIPHER, ICRYPT, IDEA) and hashing (MD5, SHA1). I
have no idea if it works but I can send it to
Anmol,
I don't have good news.
You have a broken file due to a mismatched backward link (blink). This
occurred when the file attempted to expand past the 2gb limit on a static
file by trying to extend an overflow block.
Any attempt to SELECT or SSELECT the file will fail when it reaches the
Correction, you should only see loss of data after the BLINK error in he
affected group only.
Karl Pearson
Senior uniVerse DBA and one who cut his teeth fixing blinks by hand
(thanks to Mark Baldridge and Joel Yates).
quote who=Stephen O'Neal
Anmol,
I don't have good news.
You have a broken
69 matches
Mail list logo