Sample C Program


 

The following sample C program exercises many of the features of the Sunaccess package.

 

/* sample.c - sunaccess test program

 

*/

#include "sunacces.h"

#include <io.h>

#include <sys\types.h>

#include <stdlib.h>

#include <fcntl.h>

#include <stdio.h>

#include <memory.h>

 

#define MaxxF1Len 353

char MaxxF1Buf[MaxxF1Len];

#define MaxxF2Len 500

char MaxxF2Buf[MaxxF2Len];

#define MaxxF3Len 127

char MaxxF3Buf[MaxxF3Len];

char buf1[67];

 

unsigned char Eof[2] = { 0xFF, 0 };

 

/*-----------------------------------------------------------------------------

  Main test program entry point.

*/

 

int main(void)

{

SA_FH      IsiF1Fh;

SA_FH      IsiF2Fh;

SA_FH      IsiF3Fh;

SA_FH      AamF1Fh;

SA_FH      AamF2Fh;

SA_FH      AamF3Fh;

SA_FH      TxtF1Fh;

SA_FH      TxtF2Fh;

SA_FH      TxtF3Fh;

int       err;

int       cnt;

int       Work;

char      bufferSave;

int       Seq = -1;

int       SeqP = -4;

 

/*

  Test Isam Open

*/

     printf( "Opening maxxf8mr.isi & maxxf8mr.txt\n" );

     if( ( IsiF1Fh = SA_IsiOpen( "maxxf8mr.isi", 12, SA_SHARE ) ) < 0 )

     {

           printf( "Error code on open = %d", IsiF1Fh );

           Work = getchar();

     }

//      printf( "Opening maxxf1mr.isi & maxxf1mr.txt\n" );

     if( ( IsiF1Fh = SA_IsiOpen( "maxxf1mr.isi", 12, SA_SHARE ) ) < 0 )

     {

           printf( "Error code on open = %d", IsiF1Fh );

           Work = getchar();

           exit( 1 );

     }

//      printf( "Opening maxxf2mr.isi & maxxf2mr.txt\n" );

     if( ( IsiF2Fh = SA_IsiOpen( "maxxf2mr.isi", 12, SA_SHARE ) ) < 0 )

     {

           printf( "Error code on open = %d", IsiF2Fh );

           Work = getchar();

           exit( 1 );

     }

//      printf( "Opening maxxf3mr.isi & maxxf3mr.txt\n" );

     if( ( IsiF3Fh = SA_IsiOpen( "maxxf3mr.isi", 12, SA_SHARE ) ) < 0 )

     {

           printf( "Error code on open = %d", IsiF3Fh );

           Work = getchar();

           exit( 1 );

     }

/*

  Test Isam Key Read for No Such Record.

*/

//      printf( "Positioning to key '0000105'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "0000105", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of 0000105: %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s\n", err, buf1 );

     }

/*

  Test Isam Key Read for Good Record.

*/

//      printf( "Positioning to key '0000107'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "0000107", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of 0000105: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Read Detail.

*/

//      printf( "Read Detail Records for 0000107 Key Sequential" );

     Work = getchar();

     err = SA_IsiRead( IsiF3Fh, MaxxF3Buf, MaxxF3Len, "0000107", 7 );

     for( ; ; )

     {

           if( err == 0 || memcmp( MaxxF3Buf, "0000107", 7 ) )

           {

                 printf( "End of Detail\n" );

                 break;

           }

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF3Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           err = SA_IsiReadKey( IsiF3Fh, MaxxF3Buf, MaxxF3Len );

           if( err > 0 )

           {

                 printf( "Key='%s'\n", MaxxF3Buf );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKey: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           err = SA_IsiReadKS( IsiF3Fh, MaxxF3Buf, MaxxF3Len );

     }

/*

  Read Key Sequential 10 records.

*/

     printf( "Read Key Sequential 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKS( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

     }

/*

  Read Key Sequential Prior 10 records.

*/

     printf( "Read Key Prior 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKP( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKP: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

     }

/*

  Position to begInn errorsing of file.

*/

     printf( "Rewind file" );

     Work = getchar();

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, " ", 1 );

     if( err < 0 )

     {

           printf( "Error code for key read of ' ': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Read 10 records from begInn errorsing of file.

*/

     printf( "Read Key Sequential 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKS( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

     }

/*

  Read Key Sequential Prior 10 records.

*/

     printf( "Read Key Prior 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKP( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKP: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 && cnt < 9 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           if( err == 0 && cnt == 9 )

           {

                 printf( "Found BegInn errorsing of File\n" );

           }

     }

/*

  Position to End of file.

*/

     printf( "---Position to End of File" );

     Work = getchar();

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, Eof, 1 );

     if( err < 0 )

     {

           printf( "Error code for key read of 0xFF: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Read Key Prior 10 records.

*/

     printf( "---Read Key Prior 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKP( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

     }

/*

  Read Key Sequential 10 records.

*/

     printf( "---Read Key Sequential 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_IsiReadKS( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKP: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 && cnt < 9 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           if( err == 0 && cnt == 9 )

           {

                 printf( "Found End of File\n" );

           }

     }

/*

  Test Isam Key Update logic by doing a READ/UPDATE/READ/UPDATE/READ sequence.

*/

     printf( "---Perform Update Test" );

     Work = getchar();

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "9999998", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Update record for key '9999998'\n" );

     bufferSave = MaxxF1Buf[8];

     MaxxF1Buf[8] = '*';

     err = SA_IsiUpdate( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

     printf( "Reread record for key '9999998'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "9999998", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Update record for key '9999998'\n" );

     MaxxF1Buf[8] = bufferSave;

     err = SA_IsiUpdate( IsiF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

     printf( "Reread record for key '9999998'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "9999998", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Test Isam Key Write logic by doing a READ/WRITE/READ/DELETE/READ sequence.

 

    READ to make sure the record does not exist

    WRITE to write the new record

    READ to re-read the record just written

    DELETE to delete the new record

    READ to make sure the record does not exist

*/

     printf( "---Perform Write & Delete Test" );

     Work = getchar();

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

     printf( "Write record for key '8888888'\n" );

     memset( MaxxF1Buf, '8', MaxxF1Len );

     err = SA_IsiWrite( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key write of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Writ=%s\n", err, buf1 );

     }

     printf( "Reread record for key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_IsiDelete( IsiF1Fh, "8888888", 7 );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

/*

  Now test Isam Insert and DeleteK by doing the same thing as before, but

  this time adding an Insert of a different key after the WRITE and a

  DELETEK of that key before the DELETE operation.

 

    READ to make sure the record does not exist

    WRITE to write the new record

    INSERT of a different key

    READ to read the record pointed to by the insert

    DELETEK to delete the key

    READ to re-read the record just written

    DELETE to delete the new record

    READ to make sure the record does not exist

*/

     printf( "---Perform Write & Delete Test" );

     Work = getchar();

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

     printf( "Write record for key '8888888'\n" );

     memset( MaxxF1Buf, '8', MaxxF1Len );

     err = SA_IsiWrite( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key write of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Writ=%s\n", err, buf1 );

     }

     printf( "Insert key of '7777777'\n" );

     err = SA_IsiInsert( IsiF1Fh, "7777777", 7 );

     if( err == 1 )

     {

           printf( "Record inserted\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for insert of '7777777': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read record for key '7777777'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "7777777", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '7777777': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Delete Key only for key '7777777'\n" );

     err = SA_IsiDeleteK( IsiF1Fh, "7777777", 7 );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '7777777': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Reread record for key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_IsiDelete( IsiF1Fh, "8888888", 7 );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_IsiDelete( IsiF1Fh, "8888888", 7 );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

/*

  Close the file.

*/

     printf( "Close file MAXXF2MR\n" );

     err = SA_IsiClose( IsiF2Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Close file MAXXF1MR\n" );

     err = SA_IsiClose( IsiF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Close file MAXXF3MR\n" );

     err = SA_IsiClose( IsiF3Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Insert key of '7777777' on closed file\n" );

     err = SA_IsiInsert( IsiF1Fh, "7777777", 7 );

     if( err == 1 )

     {

           printf( "Record inserted in error\n" );

           Work = getchar();

           exit( 1 );

     }

     if( err < 0 )

     {

           printf( "Error code for insert of '7777777': %d\n", err );

     }

     printf( "Finished with Isam\n" );

     Work = getchar();

/*=============================================================================

  Test Aam Section

*/

 

/*

  This first open should fail since the file does not exist.

*/

     printf( "Testing Opening of AAM files.\n" );

     if( ( AamF1Fh = SA_AamOpen( "maxxf8mr.aam", 12, '?', SA_SHARE ) ) >= 0 )

     {

           printf( "'maxxf8mr.aam' Open did not fail and should have failed:%d", AamF1Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( AamF1Fh = SA_AamOpen( "maxxf1mr.aam", 12, '?', SA_SHARE ) ) < 0 )

     {

           printf( "'maxxf1mr.aam' error code on open = %d", AamF1Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( AamF2Fh = SA_AamOpen( "maxxf2mr.aam", 12, '?', SA_SHARE ) ) < 0 )

     {

           printf( "'maxxf2mr.aam' error code on open = %d", AamF2Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( AamF3Fh = SA_AamOpen( "maxxf3mr.aam", 12, '?', SA_SHARE ) ) < 0 )

     {

           printf( "'maxxf3mr.aam' error code on open = %d", AamF3Fh );

           Work = getchar();

           exit( 1 );

     }

/*

  Test Aam Key Read for No Such Record.

*/

     printf( "Testing Reading of AAM files.\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x0000105", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of 0000105: %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s\n", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

/*

  Test Aam Key Read for Good Record.

*/

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x0000107", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of 0000107: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Read Detail.

*/

     err = SA_AamRead( AamF3Fh, MaxxF3Buf, MaxxF3Len, "01x0000107", 10 );

     for( ; ; )

     {

           if( err == 0 || memcmp( MaxxF3Buf, "0000107", 7 ) )

           {

                 printf( "End of Detail\n" );

                 break;

           }

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF3Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           err = SA_AamReadKG( AamF3Fh, MaxxF3Buf, MaxxF3Len );

     }

/*

  Read 10 records from begInn errorsing of file.

*/

     printf( "Read Key Generic 10 records" );

     Work = getchar();

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "02fsystems", 10 );

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKG: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           err = SA_AamReadKG( AamF1Fh, MaxxF1Buf, MaxxF1Len );

     }

/*

  Read Key Generic Prior 10 records and Test for begInn errorsing of file.

*/

     printf( "Read Key Prior 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 11 ; cnt++ )

     {

           err = SA_AamReadKGP( AamF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKP: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 && cnt < 10 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           if( err == 0 && cnt == 10 )

           {

                 printf( "Found BegInn errorsing of File\n" );

           }

     }

/*

  Read Last and then ReadKGP 10 records.

*/

     printf( "---Read Key Prior 10 records" );

     Work = getchar();

     err = SA_AamReadLast( AamF1Fh, MaxxF1Buf, MaxxF1Len, "02fsystems", 10 );

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKS: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           err = SA_AamReadKGP( AamF1Fh, MaxxF1Buf, MaxxF1Len );

     }

/*

  Read Key Generic 10 records.

*/

     printf( "---Read Key Sequential 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 11 ; cnt++ )

     {

           err = SA_AamReadKG( AamF1Fh, MaxxF1Buf, MaxxF1Len );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadKP: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 && cnt < 10 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           if( err == 0 && cnt == 10 )

           {

                 printf( "Found End of File\n" );

           }

     }

/*

  Test Aam Update logic by doing a READ/UPDATE/READ/UPDATE/READ sequence.

*/

     printf( "---Perform Update Test" );

     Work = getchar();

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x9999998", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Update record for key '9999998'\n" );

     bufferSave = MaxxF1Buf[8];

     MaxxF1Buf[8] = '*';

     err = SA_AamUpdate( AamF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

     printf( "Reread record for key '9999998'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x9999998", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Update record for key '9999998'\n" );

     MaxxF1Buf[8] = bufferSave;

     err = SA_AamUpdate( AamF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

     printf( "Reread record for key '9999998'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x9999998", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of 9999998: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Test Aam Key Write logic by doing a READ/WRITE/READ/DELETE/READ sequence.

 

    READ to make sure the record does not exist

    WRITE to write the new record

    READ to re-read the record just written

    DELETE to delete the new record

    READ to make sure the record does not exist

*/

     printf( "---Perform Write & Delete Test" );

     Work = getchar();

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x8888888", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

     printf( "Write record for key '8888888'\n" );

     memset( MaxxF1Buf, '8', MaxxF1Len );

     err = SA_AamWrite( AamF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for key write of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Writ=%s\n", err, buf1 );

     }

     printf( "Reread record for key '8888888'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x8888888", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_AamDelete( AamF1Fh );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x8888888", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

/*

  Now test Aam Insert and Delete by doing an Isam Write and Aam Insert.

 

    READ to make sure the record does not exist

    WRITE to write the new record

    INSERT of a different key

    READ to read the record pointed to by the insert

    DELETEK to delete the key

    READ to re-read the record just written

    DELETE to delete the new record

    READ to make sure the record does not exist

*/

//      printf( "Opening maxxf1mr.isi & maxxf1mr.txt\n" );

     if( ( IsiF1Fh = SA_IsiOpen( "maxxf1mr.isi", 12, SA_SHARE ) ) < 0 )

     {

           printf( "Error code on open = %d", IsiF1Fh );

           Work = getchar();

           exit( 1 );

     }

     printf( "---Perform Write & Delete Test" );

     Work = getchar();

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

     printf( "Write record for key '8888888'\n" );

     memset( MaxxF1Buf, '8', MaxxF1Len );

     err = SA_IsiWrite( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key write of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Writ=%s\n", err, buf1 );

     }

     printf( "Insert into AAM file\n" );

     err = SA_AamInsert( AamF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Aam Insert: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Writ=%s\n", err, buf1 );

     }

     printf( "Read record for key '8888888'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x8888888", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Reread record for key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_IsiDelete( IsiF1Fh, "8888888", 7 );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_IsiRead( IsiF1Fh, MaxxF1Buf, MaxxF1Len, "8888888", 7 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

     printf( "Delete record for key '8888888'\n" );

     err = SA_AamDelete( AamF1Fh );

     if( err == 1 )

     {

           printf( "Record deleted\n" );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err < 0 )

     {

           printf( "Error code for delete of '8888888': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Read nonexistant key '8888888'\n" );

     err = SA_AamRead( AamF1Fh, MaxxF1Buf, MaxxF1Len, "01x8888888", 10 );

     if( err < 0 )

     {

           printf( "Error code for key read of '8888888': %d", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "No such Record\n" );

     }

     if( err > 0 )

     {

           printf( "Found record when there should not be one\n" );

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Err=%3d Read=%s", err, buf1 );

           Work = getchar();

           exit( 1 );

     }

/*

  Close the file.

*/

     printf( "Close file MAXXF2MR\n" );

     err = SA_AamClose( AamF2Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Close file MAXXF1MR\n" );

     err = SA_AamClose( AamF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Close file MAXXF3MR\n" );

     err = SA_AamClose( AamF3Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Close file MAXXF1MR\n" );

     err = SA_IsiClose( IsiF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     printf( "Insert key of '7777777' on closed file\n" );

     err = SA_AamInsert( AamF1Fh );

     if( err == 1 )

     {

           printf( "Record inserted in error\n" );

           Work = getchar();

           exit( 1 );

     }

     if( err < 0 )

     {

           printf( "Error code for insert of '7777777': %d\n", err );

     }

/*

  Now try to PREP an AAM file.

*/

#if defined(AAMPREP)

     err = SA_AamPrep( "sa_aam.txt", 10, "sa_aam.aam", 10, 30, "1-10,11-20,21-30", 16, SA_SHARE );

     if( err <= 0 )

     {

           printf( "Error on Prep of 'sa_aam.aam': %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     AamF1Fh = err;

 

     err = SA_AamClose( AamF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

#endif

/*=============================================================================

  Test Txt Section

*/

 

/*

  This first open should fail since the file does not exist.

*/

     printf( "Testing Opening of TXT files.\n" );

     if( ( TxtF1Fh = SA_TxtOpen( "maxxf8mr.txt", 12, SA_SHARE, 100 ) ) >= 0 )

     {

           printf( "'maxxf8mr.txt' Open did not fail and should have failed:%d", TxtF1Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( TxtF1Fh = SA_TxtOpen( "maxxf1mr.txt", 12, SA_SHARE | SA_EOR_CRLF, 1024 ) ) < 0 )

     {

           printf( "'maxxf1mr.txt' error code on open = %d", TxtF1Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( TxtF2Fh = SA_TxtOpen( "maxxf2mr.txt", 12, SA_SHARE | SA_EOR_CRLF, 256 ) ) < 0 )

     {

           printf( "'maxxf2mr.txt' error code on open = %d", TxtF2Fh );

           Work = getchar();

           exit( 1 );

     }

     if( ( TxtF3Fh = SA_TxtOpen( "maxxf3mr.txt", 12, SA_SHARE | SA_EOR_CRLF, 256 ) ) < 0 )

     {

           printf( "'maxxf3mr.txt' error code on open = %d", TxtF3Fh );

           Work = getchar();

           exit( 1 );

     }

/*

  Read 10 records from begInn errorsing of file.

*/

     printf( "Read Sequential 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, 100 /*NaxxF1Len*/, Seq );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadSeq: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

     }

/*

  Read Key Generic Prior 10 records and Test for begInn errorsing of file.

*/

     printf( "Read Sequential Prior 10 records" );

     Work = getchar();

     for( cnt = 0 ; cnt < 10 ; cnt++ )

     {

           err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, SeqP );

           if( err > 0 )

           {

                 memcpy( buf1, MaxxF1Buf, 66 );

                 printf( "Len=%3d Read=%s\n", err, buf1 );

           }

           if( err < 0 )

           {

                 printf( "Error code for ReadSeqPrior: %d\n", err );

                 Work = getchar();

                 exit( 1 );

           }

           if( err == 0 && cnt < 9 )

           {

                 printf( "Did not find record when there should be one\n" );

           }

           if( err == 0 && cnt == 9 )

           {

                 printf( "Found BegInn errorsing of File\n" );

           }

     }

/*

  Now lets try an UPDATE sequence. Read to the 3rd record, update it, read

  it again, update it again back to the original and read again.

*/

     printf( "Perform Update Test" );

     Work = getchar();

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, 0 );

     if( err < 0 )

     {

           printf( "Error code for random read of record 0: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

 

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, Seq );

     if( err < 0 )

     {

           printf( "Error code for seq read of record 1: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

 

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, Seq );

     if( err < 0 )

     {

           printf( "Error code for seq read of record 2: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

 

     printf( "Update record 2\n" );

     MaxxF1Buf[2] = '*';

     err = SA_TxtUpdate( TxtF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of record 2: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

 

     printf( "Reread record 2\n" );

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, SeqP );

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, Seq );

     if( err < 0 )

     {

           printf( "Error code for seq read of record 2: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

 

     printf( "Update record 2\n" );

     MaxxF1Buf[2] = '0';

     err = SA_TxtUpdate( TxtF1Fh, MaxxF1Buf, MaxxF1Len );

     if( err < 0 )

     {

           printf( "Error code for update of record 2: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Updi=%s\n", err, buf1 );

     }

     printf( "Reread record 2\n" );

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, SeqP );

     err = SA_TxtRead( TxtF1Fh, MaxxF1Buf, MaxxF1Len, Seq );

     if( err < 0 )

     {

           printf( "Error code for seq read of record 2: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     if( err == 0 )

     {

           printf( "Did not find record when there should be one\n" );

     }

     if( err > 0 )

     {

           memcpy( buf1, MaxxF1Buf, 66 );

           printf( "Len=%3d Read=%s\n", err, buf1 );

     }

/*

  Close the Text files.

*/

     printf( "Closeing Files\n" );

     err = SA_TxtClose( TxtF1Fh );

     if( err < 0 )

     {

           printf( "Error code for Txt Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     err = SA_TxtClose( TxtF2Fh );

     if( err < 0 )

     {

           printf( "Error code for Txt Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

     err = SA_TxtClose( TxtF3Fh );

     if( err < 0 )

     {

           printf( "Error code for Txt Close: %d\n", err );

           Work = getchar();

           exit( 1 );

     }

 

/*

  Finished with everything.

*/

     printf( "All Finished" );

     Work = getchar();

     return( 0 );

}

 

 



Sunaccess Reference Upgrading from Prior Versions Sample Visual Basic Program