Himel Program
The American Kennel Club recognizes 138 different breeds of dogs. These breeds are broken up into 6 different groups: Toy, Terrier, Sporting, Non-Sporting, Hound, and Working. My interest lies in the Working group of 20 dogs which includes the Standard Schnauzer. At an AKC dog show, there are 3 "levels" of competition: breed, group, and best in show. When a dog is awarded the best of breed, it advances to the group level. In the group level, the judge awards ribbons for first, second, third, and fourth places. Only the first place winners advance to the third level, the best in show level, where only one ribbon is awarded, of course, for being the best dog in the show. The Himel program was written as a Microsoft Windows application, coded in C, to track the breeds in the Working group and their performance in the group competition. Particular attention is given to the Standard Schnauzer to track the dog itself, the judges that awarded its placement, show location, date, city, etc. This background information regarding the Standard Schnauzer is recorded only when it wins a ribbon in the group competition. The program was begun in August 1992 and has continued to expand ever since and is still growing. I am in the process of converting the code to be a 32 bit application. The program contains over 12000 lines of code in 39 different source code modules and contains 22 dialog boxes. For each dog show, "attendance" is taken to establish which Working dogs were at the show, then the 4 group winning dogs are recorded. There are checks incorporated into this phase that prevents a dog that was absent from receiving a group placement. When a Standard Schnauzer is a group winner, a background dialog box is selected to record additional information. It is this "additional information" that is of interest to the data base setup. The program currently works with a flat file for each year of recorded data or dog shows. An import program was written for DOS, using the Paradox Database Engine to convert the background data in a flat file to 2 Paradox tables - schnauzer table and judge table. The key in the schnauzer table is composed of 2 fields - the Standard Schnauzers name plus a unique integer. A schnauzer may appear in the table many times (it may win at the group level many times) but to make it unique, the second field was added. There are 3 foreign keys (for the breed judge, group judge, and best in show judge) in the schnauzer table which index the judge table. The foreign keys are generated by the program. The schnauzer-to-judge is a one to one mapping, however, the judge-to-schnauzer is a one to many mapping. The judge table has the judges name as the primary key and a unique integer as the secondary key. This unique integer field is the foreign key in the schnauzer table. Two additional programs were written to generate 2 reports from the Paradox tables. The "by schnauzer" report lists each Standard Schnauzer and every judge that has awarded it a group placement, or a best in show. The "by judge" report lists each judge and every Standard Schnauzer that it has awarded a group placement. The program collects the Standard Schnauzer background for calendar year in a flat ASCII file. When a new year begins, then a new file is started. This way, we can select a given year and see what judges gave group placements to a particular dog, or see what dog was given placements by what judges. |