/*****************************************************************************
FILE:               O2CI7Column.h
LANGUAGE:           Objective-C
SYSTEM:             None
USER-INTERFACE:     None
DESCRIPTION
    $Header: /cvsroot/gnustep/gnustep/dev-libs/db/eoadaptors/Oracle7/O2CI7Column.h,v 1.1 2000/02/22 16:27:13 pjb Exp $
    This is the definition of the O2CI7Column class.

    The class O2CI7Column encapsulate data retrieved from -[O2CI7Cursor
    describeAttributeAtPosition:size:type:name:nameSize:mayBeNull:].


AUTHORS
    <PJB>  Pascal J. Bourguignon  <pjb@imaginet.fr>
MODIFICATIONS
    $Log: O2CI7Column.h,v $
    Revision 1.1  2000/02/22 16:27:13  pjb
    First release of the Oracle7Adaptor.

    1999/08/09 Creation.
BUGS
    - 
LEGAL
    Written by:  Pascal J. Bourguignon <pjb@imaginet.fr>
    Funds from:  Orange Concept (http://www.orange-concept.com/)
    Date:        August 1999 - February 2000

    This file is part of the Oracle7 Adaptor, GNUstep Database Library.
    The Oracle7 Adaptor allows access to Oracle[678] databases from GDL.

    Copyright (C) 2000 Free Software Foundation, Inc.

    This  library is  free software;  you can  redistribute  it and/or
    modify it under the terms of the GNU Lesser General Public License
    as published by the Free  Software Foundation; either version 2 of
    the License, or (at your option) any later version.

    This library  is distributed in the  hope that it  will be useful,
    but  WITHOUT ANY WARRANTY;  without even  the implied  warranty of
    MERCHANTABILITY or FITNESS FOR  A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have  received a copy of the  GNU Lesser General Public
    License  along  with this  library;  if  not,  write to  the  Free
    Software  Foundation, Inc.,  59 Temple  Place, Suite  330, Boston,
    MA 02111-1307 USA
*****************************************************************************/
#ifndef __O2CI7Column_h__
#define __O2CI7Column_h__
#include <Foundation/Foundation.h>
#include <O2CI7Cursor.h>


@interface O2CI7Column:NSObject
{
    O2CI7Cursor*    cursor;
    sword           position;
    ub4             size;
    ub2             type;
    NSString*       name;
    sb2             precision;
    sb2             scale;
    sb2             mayBeNull;
}

// NSObject methods:

    -(id)init;
        /*
            SEE-ALSO:   initWithCursor:atPosition:
            NOTE:       You'll probably prefer to use this initWithCursor:...
                        initialized.
        */

    -(void)dealloc;


// O2CI7Column methods:


    -(id)initWithCursor:(O2CI7Cursor*)aCursor atPosition:(sword)aPosition;
        /*
            PRE:        aPosition>=1
            DO:         if the cursor can describe the attribute at the 
                           given position
                        then return the newly initialized column,
                        else return nil (probably because aPosition > nb.col).
        */

    -(ub2)dataSize;
    -(ub2)dataType;
    -(NSString*)name;
    -(ub1)precision;    //    0 ==> NULL.
    -(sb1)scale;        // -127 ==> NULL.
    -(sb2)mayBeNull;    //    0 <=> NULL is not permited.

    -(NSString*)typeName;

@end //O2CI7Column;

#endif /*__O2CI7Column_h__*/

/*** O2CI7Column.h                    -- 2000-02-21 07:11:18 -- PJB ***/
