📄 param.cpp
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "param.h"
ParamList::ParamList()
{
memset(this,0,sizeof(this));
Next = NULL;
Left = NULL;
}
ParamList::ParamList(char *name,char *value,char *type)
{
SetParamList(name,value,type);
Next = NULL;
Left = NULL;
}
ParamList* ParamList::AddNext(ParamList *list)
{
ParamList *tmp = this;
for(;tmp->Next != NULL;tmp = tmp->Next)
;
tmp->Next = list;
return list;
}
ParamList* ParamList::AddLeft(ParamList *list)
{
ParamList *tmp = this;
for(;tmp->Left != NULL;tmp = tmp->Left)
;
tmp->Left = list;
return list;
}
ParamList::~ParamList()
{
if(Next != NULL)
{
delete Next;
Next = NULL;
}
if(Left != NULL)
{
delete Left;
Left = NULL;
}
}
ParamList* ParamList::CopyParamList(ParamList *src)
{
if(src == NULL) return NULL;
ParamList *rtn = new ParamList();
if(rtn == NULL) return NULL;
memcpy(rtn,src,sizeof(ParamList));
rtn->Next = CopyParamList(src->Next);
rtn->Left = CopyParamList(src->Left);
return rtn;
}
ParamList* ParamList::SetParamList(char *name,char *value,char *type)
{
strcpy(ParamName,name);
strcpy(ParamValue,value);
strcpy(ParamType,type);
return this;
}
ParamString::ParamString()
{
memset(ParamValue,0,MAX_PARAMBYTES);
ParamLength = 0;
Next = NULL;
}
ParamString::ParamString(char *value)
{
strcpy(ParamValue,value);
ParamLength = strlen(value);
Next = NULL;
}
ParamString::ParamString(char *value,int len)
{
memset(ParamValue,0,MAX_PARAMBYTES);
Next = NULL;
ParamLength = len;
if(len > MAX_PARAMBYTES) return;
memset(ParamValue,32,len);
strncpy(ParamValue,value,len);
}
ParamString* ParamString::AddNext(ParamString *next)
{
ParamString *tmp = this;
for(;tmp->Next != NULL;tmp = tmp->Next)
;
tmp->Next = next;
return next;
}
ParamString::~ParamString()
{
if(Next != NULL)
{
delete Next;
Next = NULL;
}
ParamLength = 0;
}
ProcParams::ProcParams()
{
memset(this,0,sizeof(this));
SendParamCount = 0;
RecvParamCount = 0;
RecvParam = NULL;
SendParam = NULL;
RecvRows = 0;
SendRows = 0;
RecvRowsParam = NULL;
SendRowsParam = NULL;
IsRecvRows = 0;
IsSendRows = 0;
CursorFields = NULL;
CursorFieldsCount = 0;
RecvParamString = NULL;
}
ProcParams::~ProcParams()
{
if(SendParam != NULL)
{
delete SendParam;
SendParam = NULL;
}
if(RecvParam != NULL)
{
delete RecvParam;
RecvParam = NULL;
}
if(SendRowsParam != NULL)
{
delete SendRowsParam;
SendRowsParam = NULL;
}
if(RecvRowsParam != NULL)
{
delete RecvRowsParam;
RecvRowsParam = NULL;
}
if(CursorFields != NULL)
{
delete CursorFields;
CursorFields = NULL;
}
if(RecvParamString != NULL)
{
delete RecvParamString;
RecvParamString = NULL;
}
}
ParamList* ProcParams::AddRowRecvParam(ParamList *list,int row)
{
if(RecvRowsParam == NULL)
{
if(row > 0) return NULL;
RecvRowsParam = list;
return list;
}
if(row == 0)
{
RecvRowsParam->AddNext(list);
return list;
}
ParamList *tmp = RecvRowsParam;
for(int i = 0 ;i < row - 1;i ++)
{
if(tmp == NULL) return NULL;
tmp = tmp->Left;
}
if(tmp->Left == NULL)
{
tmp->AddLeft(list);
}
else
{
tmp->Left->AddNext(list);
}
return list;
}
//---------------------------------------------------------------------------
ParamList* ProcParams::AddRowSendParam(ParamList *list,int row)
{
if(SendRowsParam == NULL)
{
if(row > 0) return NULL;
SendRowsParam = list;
return list;
}
if(row == 0)
{
SendRowsParam->AddNext(list);
return list;
}
ParamList *tmp = SendRowsParam;
for(int i = 0 ;i < row - 1;i ++)
{
if(tmp == NULL) return NULL;
tmp = tmp->Left;
}
if(tmp->Left == NULL)
{
tmp->AddLeft(list);
}
else
{
tmp->Left->AddNext(list);
}
return list;
}
ParamList* ProcParams::AddRecvParam(ParamList *list)
{
if(RecvParam == NULL)
{
RecvParam = list;
}
else
{
RecvParam->AddNext(list);
}
RecvParamCount ++;
return list;
}
ParamList* ProcParams::AddSendParam(ParamList *list)
{
if(SendParam == NULL)
{
SendParam = list;
}
else
{
SendParam->AddNext(list);
}
SendParamCount ++;
return list;
}
ParamList* ProcParams::NewSendParam()
{
ParamList *rtn = new ParamList;
if(rtn == NULL) return NULL;
if(SendParam == NULL)
{
SendParam = rtn;
}
else
{
SendParam->AddNext(rtn);
}
return rtn;
}
ParamList* ProcParams::NewRecvParam()
{
ParamList *rtn = new ParamList;
if(rtn == NULL) return NULL;
if(RecvParam == NULL)
{
RecvParam = rtn;
}
else
{
RecvParam->AddNext(rtn);
}
return rtn;
}
ParamList* ProcParams::NewCursorFields()
{
ParamList *rtn = new ParamList;
if(rtn == NULL) return NULL;
if(CursorFields == NULL)
{
CursorFields = rtn;
}
else
{
CursorFields->AddNext(rtn);
}
return rtn;
}
ParamList* ProcParams::NewRowSendParam(int row)
{
ParamList *rtn = new ParamList;
if(rtn == NULL) return NULL;
if(SendRowsParam == NULL)
{
if(row > 0) return NULL;
SendRowsParam = rtn;
return rtn;
}
if(row == 0)
{
SendRowsParam->AddNext(rtn);
return rtn;
}
ParamList *tmp = SendRowsParam;
for(int i = 0 ;i < row - 1;i ++)
{
if(tmp == NULL) return NULL;
tmp = tmp->Left;
}
if(tmp->Left == NULL)
{
tmp->AddLeft(rtn);
}
else
{
tmp->Left->AddNext(rtn);
}
return rtn;
}
ParamList* ProcParams::NewRowRecvParam(int row)
{
ParamList *rtn = new ParamList;
if(rtn == NULL) return NULL;
if(SendRowsParam == NULL)
{
if(row > 0) return NULL;
RecvRowsParam = rtn;
return rtn;
}
if(row == 0)
{
RecvRowsParam->AddNext(rtn);
return rtn;
}
ParamList *tmp = RecvRowsParam;
for(int i = 0 ;i < row - 1;i ++)
{
if(tmp == NULL) return NULL;
tmp = tmp->Left;
}
if(tmp->Left == NULL)
{
tmp->AddLeft(rtn);
}
else
{
tmp->Left->AddNext(rtn);
}
return rtn;
}
ParamList* ProcParams::AddCursorFields(ParamList *list)
{
if(CursorFields == NULL)
{
CursorFields = list;
}
else
{
CursorFields->AddNext(list);
}
CursorFieldsCount ++;
return list;
}
ParamString* ProcParams::AddRecvParamString(ParamString *list)
{
if(RecvParamString == NULL)
{
RecvParamString = list;
}
else
{
RecvParamString->AddNext(list);
}
return list;
}
ProcParams* ProcParams::CopyProcParams(ProcParams *src)
{
if(SendParam != NULL)
{
delete SendParam;
SendParam = NULL;
}
if(RecvParam != NULL)
{
delete RecvParam;
RecvParam = NULL;
}
if(SendRowsParam != NULL)
{
delete SendRowsParam;
SendRowsParam = NULL;
}
if(RecvRowsParam != NULL)
{
delete RecvRowsParam;
RecvRowsParam = NULL;
}
if(CursorFields != NULL)
{
delete CursorFields;
CursorFields = NULL;
}
if(RecvParamString != NULL)
{
delete RecvParamString;
RecvParamString = NULL;
}
strcpy(ProcName,src->ProcName);
SendParamCount = src->SendParamCount;
RecvParamCount = src->RecvParamCount;
CursorFieldsCount = src->CursorFieldsCount;
SendParam = ParamList::CopyParamList(src->SendParam);
RecvParam = ParamList::CopyParamList(src->RecvParam);
CursorFields = ParamList::CopyParamList(src->CursorFields);
RecvRows = src->RecvRows;
SendRows = src->SendRows;
SendRowsParam = ParamList::CopyParamList(src->SendRowsParam);
RecvRowsParam = ParamList::CopyParamList(src->RecvRowsParam);
IsSendRows = src->IsSendRows;
IsRecvRows = src->IsRecvRows;
}
#pragma package(smart_init)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -