This page contains examples for the questions in the CodeBase Hints page.

How can files be opened in different modes? (C Example )

    #include "d4all.h"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       CODE4 cb;
       DATA4 *file1, *file2, *file3, *file4;

       code4init (&cb);

       /* Non-exclusive, with read access only */
       cb.accessMode = OPEN4DENY_NONE ;
       cb.readOnly = 1;
       file1 = d4open (&cb, "file1");

       /* Exclusive access with read/write */
       cb.accessMode = OPEN4DENY_RW;
       cb.readOnly = 0;
       file2 = d4open (&cb, "file2");

       /*  Non-Exclusive, we can r/w, others can only read */
       cb.accessMode = OPEN4DENY_WRITE;
       file3 = d4open (&cb, "file3");

       /* Non-Exclusive, we can r/w as can other users */
       cb.accessMode = OPEN4DENY_NONE;
       file4 = d4open (&cb, "file4");

       code4close(&cb);

       code4initUndo(&cb);

    }       /* void main */
     

How can files be opened in different modes? (C++ Example)

    #include "d4all.hpp"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {

       Code4 cb ;
       Data4 file1, file2, file3, file4 ;

       /* Non-exclusive, with read access only */
       cb.accessMode = OPEN4DENY_NONE;
       cb.readOnly = 1;
       file1.open( cb, "FILE1" ) ;

       /* Exclusive access with read/write */
       cb.accessMode = OPEN4DENY_RW
       cb.readOnly = 0;
       file2.open( cb, "FILE2" ) ;

       /* Non-Exclusive, we can r/w, others can only read */
       cb.accessMode = OPEN4DENY_WRITE;
       file3.open( cb, "FILE3");

       /* Non-Exclusive, we can r/w as can other users */
       cb.accessMode = OPEN4DENY_NONE;
       file4.open( cb, "FILE4");

       cb.closeAll();

       cb.initUndo();

    }       /* void main */
     

How can files be opened in different modes? (Visual Basic Example)

    Sub OpenTest()

       Dim cb as long
       Dim file1 as Long, file2 As Long, file3 As Long, file4 As Long
       Dim rc As Integer

       cb = code4init()

       ' Non-exclusive, with read access only
       rc = code4accessMode( cb, OPEN4DENY_NONE )
       rc = code4readOnly( cb, 1 )
       file1 = d4open (cb, "file1")

       ' Exclusive access with read/write
       rc = code4accessMode( cb, OPEN4DENY_RW )
       rc = code4readOnly( cb,  0 )
       file2 = d4open (cb, "file2")

       ' Non-Exclusive, we can r/w, others can only read
       rc = code4accessMode( cb, OPEN4DENY_WRITE )
       file3 = d4open (cb, "file3")

       ' Non-Exclusive, we can r/w as can other users
       rc = code4accessMode( cb, OPEN4DENY_NONE )
       file4 = d4open (cb, "file4")

       rc = code4close ( cb )

       rc = code4initUndo( cb )

    End Sub

How can files be opened in different modes? (Delphi Example)

    Procedure OpenTest;

    var
       cb : CODE4 ;
       file1, file2, file3, file4 : DATA4 ;

    begin

       cb := code4init ;

       { Non-exclusive, with read access only }
       code4accessMode( cb, OPEN4DENY_NONE ) ;
       code4readOnly( cb, 1 ) ;
       file1 := d4open (cb, "file1");

       { Exclusive access with read/write }
       code4accessMode( cb, OPEN4DENY_RW ) ;
       code4readOnly( cb,  0 ) ;
       file2 := d4open (cb, "file2");

       {  Non-Exclusive, we can r/w, others can only read }
       code4accessMode( cb, OPEN4DENY_WRITE ) ;
       file3 := d4open (cb, "file3") ;

       { Non-Exclusive, we can r/w as can other users }
       code4accessMode( cb, OPEN4DENY_NONE ) ;
       file4 := d4open (cb, "file4") ;

       code4close( cb ) ;

       code4initUndo( cb ) ;

    end;


Why do I have trouble with relations when I am using two files that have the same name, even if they are in different directories? (C Example)

    CODE4 cb;
    DATA4 file1;
    DATA4 file2;

    code4init (&cb);
    file1 = d4open (&cb, "c:\\dir1\\file");
    d4aliasSet (file1, "new_name");
    file2 = d4open (&cb, "c:\\dir2\\file");
    .
    .
    .

Why do I have trouble with relations when I am using two files that have the same name, even if they are in different directories? (C++ Example)

    Code4 cb;
    Data4 file1, file2;

    file1.open( cb, "c:\\dir1\\file" ) ;
    file1.alias( "newName" ) ;
    file2.open( cb, "c:\\dir2\\file" ) ;
    .
    .
    .

Why do I have trouble with relations when I am using two files that have the same name, even if they are in different directories? (Visual Basic Example)

    Dim cb as long
    Dim file1 as long, file2 as Long

    file1 = d4open( cb, "c:\dir1\file" )
    call d4aliasSet( file1, "newName" )
    file2 = d4open( cb, "c:\dir2\file" )
    .
    .
    .

Why do I have trouble with relations when I am using two files that have the same name, even if they are in different directories? (Delphi Example)

    var
       cb : CODE4 ;
       file1, file2 : DATA4 ;

    begin
       cb := code4init ;

       file1 := d4open( cb, "c:\dir1\file" ) ;
       d4aliasSet( file1, "newName" ) ;
       file2 := d4open( cb, "c:\dir2\file" ) ;

      .
      .
      .


How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C Example)

    #include "d4all.h"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       CODE4 cb;
       DATA4 *file;
       FIELD4INFO fieldInfo [] =
       {
          {"FIELD1", r4str, 4, 0},
          {"FIELD2", r4str, 5, 0},
          {0, 0, 0, 0},
       };
       TAG4INFO tagInfo [] =
       {
          {"TAG1", "FIELD1", 0, 0, 0},
          {"TAG2", "FIELD2", 0, 0, 0},
          {0, 0, 0, 0, 0},
       };

       code4init (&cb);
       file = d4create (&cb, "datafile", fieldInfo, 0);
       i4create(file, "c:\\programs\\datafile", tagInfo);
       code4close (&cb);
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C++ Example)

    #include "d4all.hpp"

    #ifdef __BORLANDC__
    extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       Code4 cb ;
       Data4 file ;
       Index4 index ;
       FIELD4INFO fieldInfo [] =
       {
          {"FIELD1", r4str, 4, 0},
          {"FIELD2", r4str, 5, 0},
          {0, 0, 0, 0},
       };
       TAG4INFO tagInfo [] =
       {
          {"TAG1", "FIELD1", 0, 0, 0},
          {"TAG2", "FIELD2", 0, 0, 0},
          {0, 0, 0, 0, 0},
       };

       file.create ( "datafile", fieldInfo, 0 ) ;
       index.create( file, "c:\\programs\\datafile", tagInfo) ;
       cb.initUndo() ;
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Visual Basic Example)

    Sub CreateTest()
       Dim cb As Long, db As Long, index as long
       ReDim fldInfo(1 to 1) As FIELD4INFO
       ReDim tagInfo(1 to 1) As TAG4INFO

       fldInfo(1).fname = "FIELD1" : fldInfo(1).ftype = "C"
       fldInfo(1).flength = 10

       tagInfo(1).name = "TAG1" : tagInfo(1).expr = "FIELD1"

       db = d4create( cb, "c:\datafile" )
       ind = i4create( db, "c:\programs\datafile", tagInfo() )

       call code4initUndo( cb )
    End Sub

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Delphi Example)

    Procedure CreateTest;

    const
       fieldInfo : array[1..2] of FIELD4INFO =
       (
          (name:'FLD1' ; atype:integer('C') ; len:10  ; dec:0),
          (name:nil    ; atype:0            ; len: 0 ; dec:0)
       ) ;

       tagInfo  : array[1..2] of TAG4INFO =
       (
          (name:'TAG1'; expression:'FLD1'; filter:nil; unique:0; descending:0),
          (name:nil   ; expression:nil   ; filter:nil; unique:0; descending:0)
       ) ;

    var
       cb : CODE4 ;
       db : DATA4 ;
       index : INDEX4 ;

    begin
       cb := code4init ;

       db = d4create( cb, "datafile", @fieldInfo, nil ) ;
       index = i4create( db, "c:\programs\datafile", @tagInfo ) ;

       code4initUndo( cb ) ;
    end;


How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C Example)

    #include "d4all.h"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       CODE4 codeBase;
       DATA4 *file;

       code4init(&codeBase);
       codeBase.autoOpen = 0;
       file = d4open(&codeBase, "datafile");
       i4open(file, "c:\\programs\\datafile.abc");
       .
       .
       .
       code4initUndo(&codeBase);
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C++ Example)

    #include "d4all.hpp"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       Code4 codeBase;
       Data4 file;
       Index4 index;

       codeBase.autoOpen = 0;
       file.open( codeBase, "datafile" ) ;
       index.open( file, "c:\\programs\\datafile.abc" ) ;
       .
       .
       .
       codeBase.initUndo() ;
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Visual Basic Example)

    Sub Test()
       Dim cb As Long, file As Long

       cb = code4init()
       call code4autoOpen( cb, 0 )

       db = d4open( cb, "datafile" )
       index = i4open( db, "c:\programs\datafile.abc" )
       .
       .
       .
       call code4initUndo( cb )
    End Sub

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Delphi Example)

    Procedure Test;

    var
       cb : CODE4 ;
       db : DATA4 ;
       index : INDEX4 ;

    begin
       cb := code4init ;
       code4autoOpen( cb, 0 ) ;

       db = d4open( cb, "datafile" ) ;
       index = i4open( db, "c:\programs\datafile.abc" ) ;
       .
       .
       .
       code4initUndo( cb ) ;
    end ;


How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C Example)

    #include "d4all.h"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       CODE4 codeBase;
       DATA4 *db;
       TAG4  *tag1, *tag2;

       code4init( &codeBase );
       codeBase.autoOpen = 0;

       db = d4open ( &codeBase, "datafile") ) ;
       tag1 = t4open ( db, NULL, "C:\\DIR1\\TAG1.ABC" ) ;
       tag1 = t4open ( db, NULL, "C:\\DIR2\\TAG2.XYZ" ) ;
       .
       .
       .
       code4initUndo( &codeBase ) ;
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (C++ Example)

    #include "d4all.hpp"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       Code4 codeBase ;
       Data4 db ;
       Tag4  tag1, tag2 ;
       codeBase.autoOpen = 0;

       db.open( codeBase, "datafile") ;

       tag1.open( db, "C:\\DIR1\\TAG1.ABC" ) ;
       tag2.open( db, "C:\\DIR2\\TAG2.XYZ" ) ;
       .
       .
       .
       codeBase.initUndo() ;
    }

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Visual Basic Example)

    Sub Test()
       Dim cb As Long, db As Long, tag1 As Long, tag2 As Long

       cb = code4init()
       call code4autoOpen( cb, 0 )

       db = d4open( cb, "datafile" )

       tag1 = t4open( db, "c:\dir1\tag1.abc" )
       tag2 = t4open( db, "c:\dir2\tag2.xyz" )
       .
       .
       .
       rc = code4initUndo( cb )
    End Sub

How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase? (Delphi Example)

    Procedure Test;

    var
       cb : CODE4 ;
       db : DATA4 ;
       tag1, tag2 : TAG4 ;

    begin
       cb := code4init ;
       code4autoOpen( cb, 0 ) ;

       db := d4open( cb, "datafile" ) ;

       tag1 := t4open( db, "c:\dir1\tag1.abc" ) ;
       tag2 := t4open( db, "c:\dir2\tag2.xyz" ) ;
       .
       .
       .
       code4initUndo( cb ) ;
    end ;


Why are all unique tags set to r4uniqueContinue, even though they were created with the r4unique option? (C Example)

    CODE4 codeBase;
    DATA4 *file;
    TAG4 *tag;
    .
    .
    .
    file = d4open (&codeBase, "datafile");
    tag = d4tag (file, "tagName");

    /* The tags unique-error handling status is now set to */
    /* r4uniqueContinue, so let's change it to a different value. */
    t4uniqueSet( tag, r4unique ) ;
    .
    .
    .

Why are all unique tags set to r4uniqueContinue, even though they were created with the r4unique option? (C++ Example)

    Code4 codeBase;
    Dat4  file;
    Tag4  tag;
    .
    .
    .
    file.open( codeBase, "datafile" ) ;
    tag.init( file, "tagName" ) ;

    // tag-uniqueError is now set to r4uniqueContinue, so let's
    // change it to a different value.
    tag.unique( r4unique ) ;
    .
    .
    .

Why are all unique tags set to r4uniqueContinue, even though they were created with the r4unique option? (Visual Basic Example)

    Dim cb As Long, db As Long, tag As Long, rc As Integer
    .
    .
    .
    db = d4open ( cb, "datafile")
    tag = d4tag ( db, "tagName")

    ' The tags unique-error handling status is now set to
    ' r4uniqueContinue, so let's change it to a different value.
    rc = t4uniqueSet( tag, r4unique ) ;
    .
    .
    .

Why are all unique tags set to r4uniqueContinue, even though they were created with the r4unique option? (Delphi Example)

    var
    cb : CODE4 ;
    db : DATA4 ;
    tag : TAG4 ;
    .
    .
    .
    db := d4open ( cb, "datafile") ;
    tag := d4tag ( db, "tagName") ;

    ' The tags unique-error handling status is now set to
    ' r4uniqueContinue, so let's change it to a different value.
    t4uniqueSet( tag, r4unique ) ;
    .
    .
    .


When a query that uses Query Optimization technology (QO) is made, how is it possible to find out the number of records that are returned? (C Example)

    #include "d4all.h"

    void main (void)
    {
       CODE4 cb;
       DATA4 *file;
       RELATE4 *relation;
       int count = 0;
       int record;

       code4init(&cb);
       file = d4open(&cb, "DATAFILE");

       relation = relate4init(file);
       relate4querySet(relation, "FIELD1 = 10");
       record = relate4top(relation);

       while (record == r4success)
       {
          count ++;
          record = relate4skip(relation, 1L);
       }

       printf("Number of records returned by query = %d\n", count);

       code4initUndo(&cb);
    }

When a query that uses Query Optimization technology (QO) is made, how is it possible to find out the number of records that are returned? (C++ Example)

    #include "d4all.hpp"

    void main (void)
    {
       Code4 cb;
       Data4 file;
       Relate4set relation;
       int record, count = 0;

       file.open( "DATAFILE" ) ;

       relation.init( file ) ;
       relation.querySet ( "FIELD1 = 10" ) ;

       record = relation.top() ;

       while ( record == r4success )
       {
          count ++;
          record = relation.skip( 1L ) ;
       }

       cout << "Number of records returned by query = " << count << endl;

       cb.initUndo();
    }

When a query that uses Query Optimization technology (QO) is made, how is it possible to find out the number of records that are returned? (Visual Basic Example)

    Sub Test()
       Dim cb As Long, db As Long, relation As Long
       Dim record As Integer, count As Integer

       cb = code4init()

       db = d4open( cb, "datafile" )

       relation = relate4init( db )

       call relate4querySet( relation, "FIELD1 = 10" )

       record = relate4top( relateion )

       Do While record <> r4success
          count = count + 1
          record = relate4skip( relation, 1 )
       Loop

       Form1.Print "Number of records in query = " + Str$(count)

       call code4initUndo( cb )
    End Sub

When a query that uses Query Optimization technology (QO) is made, how is it possible to find out the number of records that are returned? (Delphi Example)

    Procedure Test;

    var
       cb : CODE4 ;
       db : DATA4 ;
       relation : RELATE4 ;
       recount, count : Integer ;

    begin
       cb := code4init ;

       db := d4open( cb, "datafile" ) ;

       relation := relate4init( db ) ;

       relate4querySet( relation, "FIELD1 = 10" ) ;

       record := relate4top( relation ) ;

       while record <> r4success do
       begin
          count := count + 1 ;
          record := relate4skip( relation, 1 ) ;
       end ;

       writeln( 'Number of records in query = ', count ) ;

       code4initUndo( cb ) ;
    end ;


What is code4calcCreate() used for? (C Example)

    #include "d4all.h"

    void main (void)
    {
       CODE4 cb;
       DATA4 *file;
       EXPR4 *expr;
       RELATE4 *relation;

       code4init (&cb);
       file = d4open (&cb, "DATAFILE");

       expr = expr4parse (file, "FIELD1 = 1 .OR. FIELD1 = 2");
       code4calcCreate (&cb, expr, "MYEXPR");

       relation = relate4init (file);
       relate4querySet (relation, "MYEXPR() .OR. FIELD1 = 19");
       .
       .
       .
       d4initUndo(&cb);
    }

What is code4calcCreate() used for? (C++ Example)

    #include "d4all.h"

    void main (void)
    {
       Code4 cb ;
       Data4 file ;
       Expr4 expr ;
       Relate4set relation ;

       file.open( "DATAFILE" ) ;
       expr.parse( file, "FIELD1 = 1 .OR. FIELD1 = 2" ) ;

       cb.calcCreate( expr, "MYEXPR" ) ;

       relation.init( file ) ;
       relation.querySet( "MYEXPR() .OR. FIELD1 = 19" ) ;
       .
       .
       .
       cb.initUndo() ;
    }

What is code4calcCreate() used for? (Visual Basic Example)

    Sub Test
       Dim cb As Long, db As Long, expr As Long, relation As Long

       cb = code4init()

       db = d4open( cb, "datafile" )
       expr = expr4parse( db, "FIELD1 = 1 .OR. FIELD1 = 2" )

       call code4calcCreate( expr, "MYEXPR" )

       relation = relate4init( db )
       rc = relate4querySet( relation, "MYEXPR() .OR. FIELD1 = 19" )
       .
       .
       .
       call code4initUndo( cb )
    End Sub

What is code4calcCreate() used for? (Delphi Example)

    Procedure Test;

    var
       cb : CODE4 ;
       db : DATA4 ;
       expr : EXPR4 ;
       relation : RELATE4 ;

    begin
       cb := code4init ;

       db := d4open( cb, "datafile" ) ;
       expr := expr4parse( db, "FIELD1 = 1 .OR. FIELD2 = 2" ) ;

       code4calcCreate( expr, "MYEXPR" ) ;

       relation := relate4init( db ) ;
       relate4querySet( relation, "MYEXPR() .OR. FIELD1 = 19" ) ;
       .
       .
       .
       code4initUndo( cb ) ;
    end ;


How can I make my report page size on screen identical to the sheets I use for my printer? (C Example)

    CODE4 cb;
    REPORT4 *report;

    code4init(&cb);
    report = report4retrieve(&cb, "MY_REP", 1, NULL);
    report4pageSize(report, 11000, 8500, 0);
    report4margins(report, 500, 500, 500, 500, 0);
    report->screen_breaks = 1;
    report4do(report);
    .
    .
    .

How can I make my report page size on screen identical to the sheets I use for my printer? (C++ Example)

    Code4 cb;
    REPORT4 *report;

    report = report4retrieve( cb, "MY_REP", 1, NULL);
    report4pageSize(report, 11000, 8500, 0);
    report4margins(report, 500, 500, 500, 500, 0);
    report->screen_breaks = 1;
    report4do(report);
    .
    .
    .

How can I make my report page size on screen identical to the sheets I use for my printer? (Visual Basic Example)

    Dim cb As Long, report As Long

    cb = code4init()
    report = report4retrieve( cb, "MY_REP", 1, 0 )

    call report4pageSize( report, 11000, 8500, 0 )
    call report4margins( report, 500, 500, 500, 500, 0 )
    call report4screenBreaks( report, 1 )
    call report4do( report )
    .
    .
    .

How can I make my report page size on screen identical to the sheets I use for my printer? (Delphi Example)

    var
       cb : CODE4 ;
       report : REPORT4 ;

    begin
       cb := code4init ;
       report := report4retrieve( cb, "MY_REP", 1, 0 ) ;

       report4pageSize( report, 11000, 8500, 0 ) ;
       report4margins( report, 500, 500, 500, 500, 0 ) ;
       report4screenBreaks( report, 1 ) ;
       report4do( report ) ;
       .
       .
       .


Error Number: -1 or e4codeBase (C Example)

    #include "d4all.h"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       CODE4 cb;
       DATA4 *file1;
       DATA4 *file2;

       code4init (&cb);
       file1 = d4open (&cb, "DATAFILE");
       printf ("\nA call to d4top returns %d", d4top (file1));

       file2 = d4open (&cb, "DATAFILE");   // Error -910 is returned
       printf ("\nA call to d4top returns %d", d4top (file1));

       printf ("\nThe error code is now set to %d", cb.errorCode);

       cb.errorCode = 0;
       printf ("\nA call to d4top returns %d", d4top (file1));

       code4initUndo(&cb);
    }

Error Number: -1 or e4codeBase (C++ Example)

    #include "d4all.hpp"

    #ifdef __BORLANDC__
       extern unsigned _stklen = 15000;   /* Borland only */
    #endif

    void main (void)
    {
       Code4 cb;
       Data4 file1, file2 ;

       file1.open( "DATAFILE" ) ;    // assume file exists
       cout << "A call to d4top returns " << d4top(file1) << endl;

       file1.open( "DATAFILE" ) ;    // Error -910 is returned
       cout << "A call to d4top returns " << d4top(file1) << endl;

       cout << "The error code is now set to " << cb.errorCode << endl;

       cb.errorCode = 0;
       cout << "A call to d4top returns " << d4top(file1) << endl;

       cb.initUndo() ;
    }

Error Number: -1 or e4codeBase (Visual Basic Example)

    Sub Test()
    Dim cb As Long, db1 As Long, db2 As Long
       cb = code4init()

       'Assume datafile.dbf exists
       db1 = d4open( cb, "datafile" )
       form1.print "Calling d4top returns: " + Str$( d4top(db1) )

       'Force a -910 error by attempting to open twice
       db2 = d4open( cb, "datafile" )
       form1.print "Calling d4top returns: " + Str$( d4top(db2) )

       'Display the existing error code, and reset to zero as well
       form1.print "Error code is now: Str$( code4errorCode(cb, 0) )

       form1.print "Calling d4top returns: " + Str$(d4top(db))

       call code4initUndo( cb )
    End Sub

Error Number: -1 or e4codeBase (Delphi Example)

    Procedure Test;

    var
       cb : CODE4 ;
       db1, db2 : DATA4

    begin
       cb := code4init ;

       { Assume datafile.dbf exists }
       db1 := d4open( cb, "datafile" )
       writeln( 'Calling d4top returns: ', d4top( db1 ) ) ;

       { Force a -910 error by attempting to open twice }
       db2 := d4open( cb, "datafile" ) ;
       writeln ( 'Calling d4top returns: ', d4top(db2) ) ;

       { Display the existing error code, and reset to zero as well }
       writeln( 'Error code is now: ', code4errorCode(cb, 0) ) ;

       writeln( 'Calling d4top returns: ', d4top( db1 ) ) ;

       code4initUndo( cb ) ;
    end ;

 


Back to the Hints Page

Back to the Sequiter Technical Support Page

Back to Sequiter's Home Page