// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Pfibfieldsdescr.pas' rev: 10.00

#ifndef PfibfieldsdescrHPP
#define PfibfieldsdescrHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Ib_externals.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Pfibfieldsdescr
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAddedTypeFields { atfStandard, atfGuidField, atfWideStringField };
#pragma option pop

struct TFIBFieldDescr
{
	
public:
	short fdDataType;
	short fdDataScale;
	bool fdNullable;
	short fdDataSize;
	int fdDataOfs;
	bool fdIsDBKey;
	bool fdIsSeparateString;
	int fdStrIndex;
	TAddedTypeFields fdAddedFields;
} ;

typedef TFIBFieldDescr *PFIBFieldDescr;

class DELPHICLASS TFIBFieldDescrList;
class PASCALIMPLEMENTATION TFIBFieldDescrList : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	PFIBFieldDescr operator[](int Index) { return FieldInfo[Index]; }
	
private:
	Classes::TList* vFieldInfoList;
	PFIBFieldDescr __fastcall GetFieldInfo(int Index);
	int __fastcall GetCapacity(void);
	void __fastcall SetCapacity(int aCapacity);
	
public:
	__fastcall TFIBFieldDescrList(void);
	__fastcall virtual ~TFIBFieldDescrList(void);
	void __fastcall Assign(TFIBFieldDescrList* Source);
	void __fastcall Clear(void);
	int __fastcall Add(short afdDataType, short afdDataScale, short afdDataSize, bool afdNullable, bool afdIsDBKey, bool IsSeparateString, TAddedTypeFields aAddedType);
	void __fastcall SaveToStream(Classes::TStream* Stream);
	void __fastcall LoadFromStream(Classes::TStream* Stream, Byte StreamVersion);
	__property PFIBFieldDescr FieldInfo[int Index] = {read=GetFieldInfo/*, default*/};
	__property int Capacity = {read=GetCapacity, write=SetCapacity, nodefault};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Pfibfieldsdescr */
using namespace Pfibfieldsdescr;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Pfibfieldsdescr
