用过fastdb的请进!解决思路

用过fastdb的请进!
CRTRecord RTRecord;
dbCursor<CAIConfigTag> curAIConf0; //只需要查询功能
if (curAIConf0.select())
{
do {
RTRecord.pszTagName = curAIConf0->pszTagName;
RTRecord.TagID = curAIConf0->TagID;
RTRecord.TagType = curAIConf0->TagType;
RTRecord.pv = curAIConf0->fDefaultPV; //所有数值初始化为0

insert(RTRecord);
} while(curAIConf0.next());
                  }
 insert(RTRecord)这个地方出错,unhandled exception in .exe(msvcrtd.dll)。再继续往下调试,发现在dbdatabase insertrecord: dbfielddescriptor::calculateRecordsize地方弹出出错对话框。请问高手这是什么错误,应该怎样修正。用到的数据结构如下:
class CRTRecord 
{
public:
//char szTagName[16]; //位号的名称
char* pszTagName; //位号的名称
    long TagID; //
short TagType; //用TagType确定pv值是整型浮点型还是布尔型
float pv;
char* strpv;           //ysm 091106 add
char* strprepv;          //ysm 091106 add
//float stdpv; //标准值0-1之间的浮点数
float pvPre; //上次采样值,提供给偏差报警和变化率报警使用
time_t lSampleTime0;//上次采样时间
time_t lSampleTime; //记录本次采样时间,两次时间差和两次采样值之差可以用来判断变化率报警

//////////////////////////////////////////////////////////////////////////
//对于模拟量输入点,量程变换是必须的
bool bTransRange; //是否量程变换,当前数据库组态程序没有保存此参数,默认为1(TRUE)
float fEuhi; //量程上限
float fEulo; //量程下限
float fPvRawLo; //裸数据上限
float fPvRawHi; //裸数据下限
short cSignalType; // Add by dovell 20090512
//////////////////////////////////////////////////////////////////////////
//增加处理报警的组态信息,不用每次判断是否报警都要查询一下位号的参数
//以AI的报警参数为基础,DI\DO的报警信息处理为对应的HiAlarm项
bool bAlarming; //保存是否在报警状态,共报警死区使用
// //Alarm configure 模拟量输入的报警信息
bool bAlarmEn; //报警开关
float fAlarmDB; //报警死区
bool bHiAlarmEn; //
bool bHhAlarmEn; //
bool bLlAlarmEn; //
bool bLoAlarmEn; //
float fLlAlarmValue; //
int nLlPrio; //
float fLoAlarmValue; //
int nLoPrio; //
float fHiAlarmValue; //
int nHiPrio; //
float fHhAlarmValue; //
int nHhPrio; //

//////////////////////////////////////////////////////////////////////////
//添加累积参数
bool bAccumulate; //累积开关
int nTimeCoeff; //时间系数 //根据累积参数将工程单位转化为累积单位
int nUnitCoeff; //单位系数

//////////////////////////////////////////////////////////////////////////


    TYPE_DESCRIPTOR(
(
KEY(pszTagName, INDEXED),
FIELD(TagID),
FIELD(TagType),
FIELD(pv),
FIELD(strpv), //ysm091106 add
FIELD(strprepv),//ysm091106 add
FIELD(pvPre),
FIELD(lSampleTime0),
FIELD(lSampleTime),
//////////////////////////////////////////////////////////////////////////
//量程变换用
FIELD(bTransRange),
FIELD(fEuhi),
FIELD(fEulo),
FIELD(fPvRawHi),
FIELD(fPvRawLo),
FIELD(cSignalType),
//////////////////////////////////////////////////////////////////////////
//保存报警配置信息
FIELD(bAlarmEn),
FIELD(fAlarmDB),
FIELD(bHhAlarmEn),
FIELD(bHiAlarmEn),
FIELD(bLlAlarmEn),
FIELD(bLoAlarmEn),
FIELD(fLlAlarmValue),
FIELD(nLlPrio),
FIELD(fLoAlarmValue),
FIELD(nLoPrio),
FIELD(fHhAlarmValue),
FIELD(nHhPrio),
FIELD(fHiAlarmValue),
FIELD(nHiPrio),
//////////////////////////////////////////////////////////////////////////