Facebook Page
Photo Filing System

SLIDE Photo Filing System
by William D. Miller

First of all, the program I use is "dBASE IV", and I also have the upgrade "dBASE V for Windows", herein called "IV" and "V" respectively. There are things about either version that I like and dislike. You will likely not have a choice as IV has likely gone the way of Santa Fe FT's. I do like that the databases I created with IV can be accessed interchangably with V, thus taking advantage of all the gizmos within windows, as well as all the goodies for reporting and such from the new version itself. Version IV was not a Windows application, V is, and therefore takes advantage of "system resources". I can access all the fonts, graphics (which are not really necessary), etc, that may have come with other software. I am resistant to change for the sake of change, and although I know well the power of V, I have not taken the time to learn it thoroughly, and I still use IV a lot.

The main thing I prefer about IV is the ease of data entry, but that's likely just because I'm used IV's workings. In both versions, you simply enter the data for each field across the page, tabbing to each new field. When you get to the last field, the program automatically creates a new record and you motor right along. With IV, you could use "Shift-F8" to repeat a value from the same field in the previous record. (This is very handy for dates especially, but as you read on you will see how important this becomes). However with V, you use the "copy & paste" tools. You can either duplicate one field, or an entire record depending on what you might be filing. If I am filing a shot of a train with 3 units, and I know all the unit numbers, I will have at least three records for this shot, one for each unit. The data for most of the fields will remain constant, however, others will vary. I would copy the whole mess and change the applicable fields. This initially seems like a lot of duplication, but the benefits will become apparent. Of course if trailing units are not important to you, this becomes less critical. I like to have as much info as possible at hand and then I can use or not use it as I please.

The physical of storage method of your photos is one issue which has to be addressed. Some like to keep certain RR's together, others by model, others by a certain trip, etc. I personally find that sorting and storing my slides chronologically works best for me. You buy slide boxes as you need them, and there is no need to "dove-tail" recent shots in with older stuff. Plus, a trip to Arizona stays together!! I also don't have to deal with stuff like a CP train on CN tracks with SOO power. All these details are covered in the database, and thus are easily accessible. It's gotta be the simplest way for sure, but this is only my preference.

Each slide has a unique number, my first being number 1. (Pretty creative, eh!) I have just passed 40200, and I can access the info for any one in less that a second. What to do with slides that come in the mail ?? I started them at 900001. If I live to shoot almost a million slides then I suppose I'll have to renumber these. (Yea...right). I also have a large collection of B&W negatives and prints which my father gave me, and when (more like if...) I get around to adding them in, I will probably use the 800000 block. (Ain't gonna be around that long either, sorry to say). The basic requirement here is a numbering system which makes each image and storage location unique and easily identifiable. If not chronogical then perhaps: "125517" for roll#1255 frame#17, etc. It doesn't really matter as the program is readily adaptable to any need.

FIELD LIST: I will now detail my field list, with explanations following each regarding the information placed therein.


1 RPMKS Character 5

2 NUMBER Character 6

3 MODEL Character 12

4 BUILDER Character 12

5 ORRPM Character 5

6 ORNUM Character 6

7 ORIGMOD Character 12

8 STATUS Character 8

9 CLASS Character 1

10 POS Character 2

11 SLINUM Character 6

12 DATE Character 8

13 ROAD Character 4

14 LOCATION Character 25

15 PS Character 2

16 ZONE Character 3

17 TRAIN Character 11

18 SYMBOL Character 10

19 TYPE Character 3

20 CONSIST Character 60

21 PHR Character 4

22 PAINT Character 4

23 CODE Character 4

24 NOTE Memo 10** (see note below)

A "Character" field will accept anything on your keyboard. A "Date" field will only accept valid dates. A "Memo" field is a little more complex. It basically contains free-form text that can be as long or as short as is necessary, therefore there is no wasted disk space lie with fields you might leave blank. You can put here the "story behind the shot", or notes on history, etc. This info is contained in a separate file on disk, but is really irrelevant to the user, just don't delete it !!

FIELD USAGE: Following is a detailed explanation of the information contained in each field.

RPMKS (RePorting MarKS): Generally, the AAR reporting marks are used for equipment. To group all Industrial units in a group, I designate them as X-CAN (Canadian Industrial), X-USA (US Industrial), with the actual company name, etc. listed in the "consist" field.

NUMBER : The equipment number, if applicable, otherwise leave blank (stations, etc). Enter this right-justified for proper sorting later.

MODEL : In most cases, the manufacturer's designation for locomotives is used. In case of a rebuild, the railroad/remanufacturer's designation may be used. Some "ad-libbing" is necessary here and each will have his personal preferences. For me, if Santa Fe rebuilds a U36C, calls it an SF30C, then an SF30C it will be. On the other hand, when BN calls their SW1000's "SW10's", I will still call them SW1000's. Same deal with the GE Dash 8-40CW /C40-8W /CW40-8 debate. If the plate says "Dash 8-40CW" then that's what it is. Normally, only major r/b programs will warrant changes here. For freight cars, the AAR code is used if known, otherwise "Box Car", etc. will do. (Be consistent here !!)

BUILDER : Simple enough, who made it ?? GE/EMD/ALCO.....Normally very simple, but it gets a little more difficult than that. Taking the U36C example above for instance. I would enter "GE>ATSF", for GE, rebuilt by ATSF.

ORRPM (ORiginal RePorting Marks): The reporting marks on the equipment *as built*, using the same criteria outlined in the RPMKS field.

ORNUM (ORiginal equipment NUMber): The number on the equipment *when built*. Enter right-justified for proper sorting later.

ORIGMOD (ORIGinal MODel as built): The manufacturer's designation for the equipment *as built*, using the same criteria outlined in the MODEL field. The Santa Fe SF30C above would show U36C here for instance.

(The above three fields were not in my original plan, but are a means of cross-referencing. For instance, you can call up all your shots of the unit that was built as "MP 793", which will yeild all your photos of MP 793, MP 3093, UP 4093, CN 6093, and CN 5383. More info on indexing below).

STATUS : A quick means of tracking down where a unit may have gone. Using the CN example above, a shot of "CN 6093" would have "CN 5383" here. A unit known to be gone but you don't know where to is listed as "x". Units still operating are left blank here, which allows you to pull up only operating units. I will put comments such as "Preserv." or "wrecked" as required.

CLASS : A one digit check code grouping various types of equipment. This allows you to select only locomotives, or only steam engines for example. I use the these codes:

U - Unit
V - Van (Caboose, etc)
S - Steam Engine
E - Electric
F - Freight Cars
P - Passenger Cars
W - Work Equipment
X - Stations, or anything else that is not rolling-stock.

POS : This field describes the position of the locomotive within the consist (if it is a train, as opposed to a roster shot, in which case it is left blank).

First Digit:                   Second Digit:
L - Leading                    F - Unit facing forward
2 - 2nd unit                   B - Unit facing backward
9 - 9th unit
X - more than 9th unit
A/B/C... - Rear-end helper
S1/S2/S3... - "Swing Helper", direction facing not specified.
J - Push-pull, unit on rear.
P - Pushing on rear (commuter push-pull, single unit)
Z - Dead in consist of train.
(Example: 3B = 3rd unit running backwards.  For lead units, I just use "L"
omitting the "F" and assume it is running forward unless specified as "LB")

SLINUM (SLIde NUMber): This was discussed above. Again, the main issue here is that each image must have a unique identifier.

DATE : The date the photo was made if known, in the format YYYY-MM-DD. (It is a 'CHARACTER' field because dBASE will not accept partial dates in a 'DATE' field). If there is no date on the photo, the partial date from the slide mount is used and is designated with and asterisk '*'.

ROAD : This represents the Railroad (AAR marks) on which the equipment is operating.

LOCATION : This represents where the shot was taken, if known. Behind the location I put notes for station shots {S}, or bridge shots {B}, if applicable.

PS : Two digit abbreviation for Province or State, or "XX" if it is an unknown location.

ZONE : This field is used as an arbitrary Geographical area for photos. Some will be large cities, while others represent specific railroad lines. Some of mine are:

GAL - Galt Subdivision (of CP Rail/STLH)
GRR - Grand River/LE&N "Electric Lines".
TOR - Toronto
CHI - Chicago,IL and area
MEX - Mexico
TEH - Tehachapi

TRAIN : This field is used for the train according to its operating authority. An example would be "ATSF 680W" or "No.3".

SYMBOL : This field contains the train number/symbol, for example "Q-NYLA1-09".

TYPE : A three digit code describing the type of train (sometimes blank, like for roster shots, etc). This allows you to pull all "stack trains" or "coal trains". I use these codes:

PAS - Passenger
FRT - Freight
YAR/YD - Yard Service
WOR - Work Train Service
SNO - Snow Plow or Spreader
HEL - Helpers operating as a light engine move.
DBL - Double Stack
INT - Intermodal
RR  - Roadrailer
COA - Coal
HOP - Hopper
GRA - Grain
POT - Potash
STL - Steel
ROK - Phosphate Rock
SUL - Sulpher
BAL - Ballast
INS - Inspection
ACI - Acid
EXC - Excursion
ORE - Ore
BCS - Boarding Cars
CIR - Circus train
HEL - Helpers/Pushers as Light Engines

CONSIST : This is generally used for the locomotive consist, but may contain short notes describing the train or occasion, if they will fit here. Longer notes are put in the "NOTE" field. Partial dates may be shown.

PHR (PHotographeR): This field applies only to slides that were either bought or traded and includes the PhotographeR's initials.

PAINT : This field contains a 4 digit abbreviation for the paint scheme carried by the equipment. For example, "SUFL" for ATSF Super Fleet, or BYW for Blue & Yellow Warbonnet.

CODE : This field contains a (max 4 digit) 'code' for various photos which could be grouped is some way. Some that I use are:

DEMO - Demonstrators and former demonstrators, units from one road
       demonstrating on another, etc.
WRK  - Wreck, derailment, damaged equipment, etc.
NICE - What I feel is a really nice shot.
NITE - Night shot
TIME - Time exposure, not necessarily a night shot.
MOOD - Shot captures the "mood" of the photo.  (fog,snow,heat,etc.)

NOTE : This field is used for notes/descriptions which cannot be accomodated in the 'consist' field. It is a "memo" format field that can contain as much information as is required.

Indexing of the database: This is what I really like, and the power and speed of dBASE is amazing. I can find any slide from the 48713 records in less than a second. You can index on single or multiple fields, any of which will change the order you records are viewed on the screen. I use the following five indexes:


The MODEL index views your database grouped by model, and within each model, records are sorted in order of railroad in numerical order. Let's say, all your SD40-2's with the A's at the top. The NUMBER index simply puts all records in order according to equipment number, sorted by railroad and slide number. (I've debated killing this index as you basically achieve the needs of it with the RAILROAD index). The ORIGNAL index groups records according to what the equipment was when new. Records are sorted in order of original reporting marks, in numerical order, sorted by slide number (putting them in date order by default). This is especially useful when you want to view all your slides of a certain unit from when it was built, up to what it is now, through various rebuildings and renumberings, etc.

The RAILROAD index groups records by railroad, and within each railroad by road number, sorted by slide number (putting them in date order as well). The SLINE_NUM index just puts everything in order of slide number. This is actually quite useful because a new user may decide to start filing his slides from today (when he creates his database) forward, and go back to do existing slides as time permits, maybe a month or year at a time. The order of entry is not important because the indexes reorder everything however you want.

Consistency.....After using this for a few years, I have learned the importance of being consistent in data entry. If you are not extremely consistent, all your database planning, sorting, and reporting, etc is gone out the window, and your indexes are invalidated. For example, use ATSF or AT&SF. Which you use is not important, but always do the same thing.

Summary: I guess that's basically it in a (large) nutshell. Bear in mind that although I use dBASE, most of the concepts I have outlined can be applied to any good quality database program. One detail that I cannot be sure of is the "memo" field capability. Some programs may require a specified field length common to each record. Also, dBASE V will allow sound or image files to be stored as part of the database (read: CD-ROM images).


Questions and comments welcome

Site design and maintenance by
Bill Miller

This site has been rated among the bottom 95% of all web sites by Pointless Communications Inc.