ISODB3

1. Background and documentation

ISODB3 was written in 1987 by the same person who wrote DB3ISO, Alejandro. For this program he used the programming language C.

It converts ISO 2709 files into dBase III records. The program comes with a 1.5 pages long manual. It is a "exe" file, which means you can run it without any additonal software.

It may be a helpful tool for documentation centers which have to share data with others that use dBase or dBase-like software. In this case it is often necessary to produce outputs that match the needs of the dBase users because they cannot import ISO 2709 files or tagged records, or at least not without large programming efforts.

2. General evaluation

Plus Minus

3. Preliminary work

It is necessary to compare the structure of the original CDS/ISIS database with the structure of the target dBase database.

An example may show the difficulties:

CDS/ISIS record

   22:  ^a19960130
  100:  ^a1-85604-108-5
  200:  ^aBuxton^bAndrew
  200:  ^aHopkinson^bAndrew
  300:  ^aThe CDS/ISIS handbook
  400:  ^aLondon^bThe Library Assosiation
  440:  ^b1994
  460:  ^axiv, 178 p^c24 cm
  600:  ^aDesigned to complement the reference manual supplied
        with the package, this handbook provides a user-
        friendly introduction to CDS/ISIS, arranged in the
        order which a beginner would need to follow: software
        installation, database definition, data entry, search
        and retrieval and selection records from the database
        for printing.
  620:  ^asoftware
  620:  ^adatabases
  620:  ^aCDS/ISIS
dBase structure
  AUTHOR1      Buxton
  FORENAME1    Andrew
  AURHOR2      Hopkinson
  FORENAME2    Alan
  TITLE        The CDS/ISIS handbook
  SUBTITLE
  PUB_PLACE    London
  PULISHER     The Library Association
  YEAR         1994
  SERIES
  NO
  PAGES        xiv, 178
  ILL          N
  FORMAT       24
  ISBN         1-85604-108-5
  KEY_WORD1    software
  KEY_WORD2    databases
  KEY_WORD3    CDS/ISIS
  DATE         01/30/96
  ABSTRACT     Designed to complement the reference manual
               supplied with the package, this handbook
               provides a user-friendly introduction to
               CDS/ISIS, arranged in the order which a
               beginner would need to follow: software
               installation, database definition, data entry,
               search and retrieval and selection records from
               the database for printing.
This example shows that CDS/ISIS handles the information in a totally different way compared with dBase: it uses repeated fields and subfields, wheras dBase does not.

In fact, it may be very very difficult to convert such a CDS/ISIS structure into the given dBase structure. It could only be done through a lot of programming, either before the conversion (in form of CDS/ISIS format exits written in CDS/ISIS Pascal), or after it (in form of dBase programs).

However, ISODB3 will be eable to convert less complex structures quite accurate. Let's look at this example:

   22:  19963001
  200:  The CDS/ISIS handbook
  300:  Buxton, Andrew
  300:  Hopkinson, Alan
  400:  London : Library Association Publishing
  440:  1994
  460:  xiv, 178
  600:  Designed to complement the reference manual supplied
        with the package, this handbook provides a user-
        friendly introduction to CDS/ISIS, arranged in the
        order which a beginner would need to follow: software
        installation, database definition, data entry, search
        and retrieval and selection records from the database
        for printing.
  620:  software
  620:  databases
  620:  CDS/ISIS
This can easily be transformed into this dBase structure:
  AUTHORS      Buxton, Andrew; Hopkinson, Alan
  TITLE             The CDS/ISIS handbook
  SUBTITLE
  PULISHER     London : The Library Association
  YEAR         1994
  SERIES
  NO
  PAGES             xiv, 178
  ISBN         1-85604-108-5
  KEY_WORDS    software; databases; CDS/ISIS
  DATE         01/30/96
  ABSTRACT     Designed to complement the reference manual
               supplied with the package, this handbook
               provides a user-friendly introduction to
               CDS/ISIS, arranged in the order which a
               beginner would need to follow: software
               installation, database definition, data entry,
               search and retrieval and selection records from
               the database for printing.
To fit the dBase structure, it is necessary to change the order of the fields, otherwise ISODB3 will try to put the content of the CDS/ISIS fields one by one into the dBase fields. This can be done by means of a FST, which should look like this:
CDS/ISIS numbering      dBase numbering
           1            0    v300 |;|
           2            0    v200
           4            0    v400
           5            0    v440
           8            0    v460
           9            0    v100
          10            0    v620 |;|
          11            0    v22
          12            0    v600
This means that ISO3DB should put the contents of CDS/ISIS field v300 into dBase field 1, that it should separate the occurences of v300 with ";" etc.

ISODB3 does not offer a tool to create a FST; you must do it by means of an editor.

4. Executing the program

You can start ISODB3 at the DOS prompt with the command:

isodb3

The program wil present this form to fill in:

ISO to dBASE III utitlity, written by Alejandro
Version 2.01, February 87.
Command (Append, Load, Merge, Update)

dBASE target file [.DBF]

ISO input file [.MST]

FST parameter file [.FST]

MFN tag (Merge, Update)

Use: ESC (erase line) End (input worksheet) Crtl^Break(exit to OS)

When you have correctly filled in all the data ISODB3 needs, the program will produce this screen:
Scanning FST file...                  
                                      
1 0 V300 |;|                          
2 0 V200                              
4 0 V400                              
5 0 V440                              
8 0 V460                              
9 0 V100                              
10 0 V620 |;|                         
11 0 V22                              
12 0 V600
                          
                          
100                         
100 record(s) scanned  File C:\ISIS\WORK\BOOKS.ISO        
    
100 record(s) added  File BOOKS.DBF                
End of running.                  
                                 
C:\>

Note that it shows the contents of the FST it uses.

When an error occurs, the program will signal what kind of failure you have made. In the following example, there were not enough dBase fields to store the information; the number in the left colum of the FST were higher than the actual number of dBase fields:

Scanning FST file...                  
                                      
1 0 V300 |;|                          
2 0 V200                              
4 0 V400                              
5 0 V440                              
8 0 V460                              
9 0 V100                              
10 0 V620 |;|                         
11 0 V22                              
                                      
Invalid dBASE record                  
Press return key... 

In this case you will have to ajust the dBase structure of the FST. Other error messages are possible, e.g.

Scanning FST file...                               
1 0 V300 |; |                                             
     
2 0 V200                       
4 0 V400          
5 0 V440        
8 0 V460       
9 0 V100        
10 0 V620 |; |  
11 0 V22        
12 0 V600                                                 
                                                          
                                           
Invalid pathname or file not found                        
                                         
File: C:\ISIS\WORK.MST                                    
                     
Press return key...                                       
     

Here there is obviously something wrong with the name of the input file. It should have been something like:

C:\ISIS\WORK\BOOKS.ISO

5. Pitfalls

Subfields delimeters will not be converted. In fact, they will be found in the target dBase fields in the form in which they were originally entered in CDS/ISIS, e.g.

      ^aHopkinson^bAlan
The program is not verry good in converting data into numeric dBase fields, nor into memo fields: Date fields will turn out correctly, provided they were entered in the ISO form in the source file: e.g.

19951101 for 1th November 1995

If this date was entered in otherwise, it will be transformed into noncense: e.g.

11/01/95 will produce 1//95//0

6. Recommendations

CDS/ISIS databases which use a lot of subfields and repeated fields should always be exported into ISO 2709 files through a FST. This is easier than trying to get things right after the conversion by means of complex dBase programming. Some errors, e.g. in dBase numeric fields, cannot be solved; they lead to loss of data.

A FST which transforms the contents of the first example (p.98) into a form as close as possible to the structure of the dBase database on p. 99, could be:


  1 0 (v200^a,|, |v200^b|; |)
  2 0 v300^b
  3 0 v210^a
  4 0 v400^a," : "v400^b
  5 0 v440^b
  6 0 v480^a
  7 0 v480^c
  8 0 v460^a
  9 0 v100^a
 10 0 (v620^a+|; |)
 11 0 v22^a
 12 0 v600^a
(The fields v210 and v480 are not present in the given example, but they could be in other records). As the CDS/ISIS FST technique is by far superior to the one used by ISODV3, this method is better. Now you will not need to build a FST for ISODB3.

You will find that even then some problems can only be solved, either by dBase programs or by CDS/ISIS format exits.


© Piet de Keyser, 1998

Piet de Keyser's Manual Collection