tdrecord.h

来自「This a simple database management system」· C头文件 代码 · 共 51 行

H
51
字号
#pragma once

#include <string.h>
#include "TDDBStructs.h"

typedef unsigned char TDR_RECORD_HEADER;
#define TDRH_MASK_DELETED	((TDR_RECORD_HEADER)0x01) //least significant bit


#define TDR_OK						0
#define TDRERR_COLUMN_NOT_FOUND		1
#define TDRERR_INVALID_RECORD		7

class CTDRecord
{
//////////////////////////////////////////////////////////////////////
//	Public Interface
//////////////////////////////////////////////////////////////////////
public:
	friend class CTDDatabase;
	friend class CTDQuery;
	~CTDRecord( void );

	int GetField( const char* szFieldName, void* vpBuffer, unsigned int iBufferSize );
	int GetField( unsigned int iIndex, void* vpBuffer, unsigned int iBufferSize );
	int SetField( const char* szFieldName, void* vpBuffer, unsigned int iBufferSize );
	int SetField( unsigned int iIndex, void* vpBuffer, unsigned int iBufferSize );

	int GetFieldSize( unsigned int iIndex, unsigned int* lpiSizeInBytes );
	int GetFieldSize( const char* szFieldName, unsigned int* lpiSizeInBytes );

	int GetHeader( TDR_RECORD_HEADER* rhOut );
	int SetHeader( TDR_RECORD_HEADER* rhIn );

	int IsValid( void );
	
	void operator = ( CTDRecord recOther );

//////////////////////////////////////////////////////////////////////
//	Private Interface
//////////////////////////////////////////////////////////////////////
private:
	CTDRecord( TDDBTable* lptableDef, unsigned int iBytesNeeded );
	unsigned int GetFieldByteOffset( unsigned int iIndex );
	int GetIndexFromName( const char* szFieldName, unsigned int* lpiIndex );

	TDDBTable* _lptableDef;
	unsigned int _iBytes;
	char* _lpBuffer;
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?