|
No Rob, I wouldn't do that. At the point of writing a record I'd have already ensured that the user has entered valid data, by the time I write the record I've already done the check. Don't you do any validity checking at input time or are your entry programs just blind, blank screens that let your users enter in what ever data they happen to think might be right? You've no prompt programs that pop up and allow a user to pick a code from a list of valid codes. No drop down menus that have a list of valid selections to pick from. No scan screens to allow them to pick a valid entity, and no validity checking when they hit the submit button or the enter key to make sure what they've entered is valid making them fix it before allowing them to get past the entry screen??? I'm not saying not to use RI in your database design, RI is a good thing but it doesn't replace good coding it's just a backup to it. What do you think can be done automatically? I suppose if one of your programs try to write to a database file and hit an RI constraint problem then your program just blows up, sits there with a message that your operator has to answer and/or pass on to you the programmer? If you code properly the user won't be able to enter invalid data. I mean, this is really the only time you need to do heavy validity checking. That and at times when you are perhaps integrating data from outside your system. If you're getting data problems during your batch processing then you have way more problems then RI is going to fix for you. Again, I believe that RI is important, it is a backup to good coding and the odd chance of bad data getting into your system through 3rd party entry points like data utility programs such as DBU. John. -----Original Message----- From: rob@xxxxxxxxx [mailto:rob@xxxxxxxxx] Sent: Wednesday, October 06, 2004 1:24 PM To: Midrange Systems Technical Discussion Subject: RE: Write statement I disagree. Why should we do everything manually when it can be done automatically? In other words, in your 'good code' when you write an item to the item master do you first check to see if the item class exists? That the gl account for the item class, which is stored in the item class file, is a valid GL account? An so on and so forth, up the tree? I bet not. However I once had a customer lay out requirements that we had to do exactly that. And on a DOS PC with just the freebie basic supplied. (And there was a response time specification also.) And why use a key on a file when anyone who can write 'good code' can do a perfectly good bill of material's explosion using a chain chase sequence with direct files? I have seen files with keys on the item master that didn't even specify unique. And the ASSUMPTION is that all maintenance is done via the one file maintenance program. However in these days of mergers, etc, that assumption will bite you in the end. Or, heaven forbid, you have to work with others. And the team mentality may have updates coming from a C/S or web based application. They won't be using your file maintenance program. But you're saying that all code should be duplicated in all programs that access that file. I say horse hocky. Rob Berendt -- Group Dekko Services, LLC Dept 01.073 PO Box 2000 Dock 108 6928N 400E Kendallville, IN 46755 http://www.dekko.com John Wallroff <JWALLROFF@xxxxxxxxxxxxxxxxxxxxxxx> Sent by: midrange-l-bounces@xxxxxxxxxxxx 10/06/2004 11:20 AM Please respond to Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx> To "'Midrange Systems Technical Discussion'" <midrange-l@xxxxxxxxxxxx> cc Fax to Subject RE: Write statement OMG, that whole "Assume" analogy is so 70's. I think the biggest problem is with programmers that think their database design takes the place of good coding. Referential constraints are meant to be a last line of defense in database maintenance. They don't take the place of good program code. -----Original Message----- From: rob@xxxxxxxxx [mailto:rob@xxxxxxxxx] Sent: Wednesday, October 06, 2004 10:56 AM To: Midrange Systems Technical Discussion Subject: Re: Write statement Is that the ONLY condition that will cause it? I don't think so. What other conditions may cause such an error? - File full - Duplicate key - error on the trigger program associated with the file - referential constraint error. I think the biggest problem we have in getting developers to start using triggers, constraints and basically coming out of the 70's with their database design is a fear that they will have to bring their coding out of the 70's also. Goes back to the basic lesson: Assume can be broken down into three words A$$/u/me, or, you make an a$$ out of u and me when you assume. Rob Berendt -- Group Dekko Services, LLC Dept 01.073 PO Box 2000 Dock 108 6928N 400E Kendallville, IN 46755 http://www.dekko.com MWalter@xxxxxxxxxxxxxxx Sent by: midrange-l-bounces@xxxxxxxxxxxx 10/06/2004 10:45 AM Please respond to Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx> To Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx> cc Fax to Subject Re: Write statement Duplicate Key on an Unique file. Thanks, Mark Mark D. Walter Senior Programmer/Analyst CCX, Inc. mwalter@xxxxxxxxxx http://www.ccxinc.com "Dwayne Allison" <Dwayne.Allison@aaga To: "Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx> i.com> cc: Sent by: Subject: Write statement midrange-l-bounces@m idrange.com 10/06/2004 11:42 AM Please respond to Midrange Systems Technical Discussion Hello All, What condition will cause '50' to equal '1'? Operation Factor 2 LO WRITE ARREC 50 -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l. -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l. -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l. NOTE: This electronic message and attachment(s), if any, contains information which is intended solely for the designated recipient(s). Unauthorized disclosure, copying, distribution, or other use of the contents of this message or attachment(s), in whole or in part, is prohibited without the express authorization of the sender of this message. -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l. -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l. NOTE: This electronic message and attachment(s), if any, contains information which is intended solely for the designated recipient(s). Unauthorized disclosure, copying, distribution, or other use of the contents of this message or attachment(s), in whole or in part, is prohibited without the express authorization of the sender of this message.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.