📄 system.cpp
字号:
void TsdField::RestoreValue()
{
m_FieldName=b_FieldName;
m_FieldTableName=b_FieldTableName;
m_FieldNo=b_FieldNo;
m_FieldDesc=b_FieldDesc;
m_FieldMemo=b_FieldMemo;
m_FieldType=b_FieldType;
m_FieldWidth=b_FieldWidth;
m_FieldDecimal=b_FieldDecimal;
m_FieldPrimaryKey=b_FieldPrimaryKey;
m_FieldForeignKey=b_FieldForeignKey;;
m_FieldReferTableName=b_FieldReferTableName;
m_FieldReferFieldName=b_FieldReferFieldName;
m_FieldIdentity=b_FieldIdentity;
m_FieldNull=b_FieldNull;
m_FieldDefault=b_FieldDefault;
m_FieldHandWriting=b_FieldHandWriting;
m_FieldStyle=b_FieldStyle;
m_FieldAutoNo=b_FieldAutoNo;
m_FieldNumbering=b_FieldNumbering;
}
void TsdField::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_FieldName="";
m_FieldTableName="";
m_FieldNo=0;
m_FieldDesc="";
m_FieldMemo="";
m_FieldType="";
m_FieldWidth=0;
m_FieldDecimal=0;
m_FieldPrimaryKey=0;
m_FieldForeignKey=0;
m_FieldReferTableName="";
m_FieldReferFieldName="";
m_FieldIdentity=0;
m_FieldNull=0;
m_FieldDefault="";
m_FieldHandWriting=0;
m_FieldStyle=0;
m_FieldAutoNo=0;
m_FieldNumbering=0;
break;
case 1:
b_FieldName="";
b_FieldTableName="";
b_FieldNo=0;
b_FieldDesc="";
b_FieldMemo="";
b_FieldType="";
b_FieldWidth=0;
b_FieldDecimal=0;
b_FieldPrimaryKey=0;
b_FieldForeignKey=0;
b_FieldReferTableName="";
b_FieldReferFieldName="";
b_FieldIdentity=0;
b_FieldNull=0;
b_FieldDefault="";
b_FieldHandWriting=0;
b_FieldStyle=0;
b_FieldAutoNo=0;
b_FieldNumbering=0;
break;
}
}
void TsdField::BatchLetValue()
{
m_FieldName=m_Query->FieldValues["FieldName"];
m_FieldTableName=m_Query->FieldValues["FieldTableName"];
m_FieldNo=m_Query->FieldValues["FieldNo"];
m_FieldDesc=m_Query->FieldValues["FieldDesc"];
m_FieldMemo=m_Query->FieldValues["FieldMemo"];
m_FieldType=m_Query->FieldValues["FieldType"];
m_FieldWidth=m_Query->FieldValues["FieldWidth"];
m_FieldDecimal=m_Query->FieldValues["FieldDecimal"];
m_FieldPrimaryKey=m_Query->FieldValues["FieldPrimaryKey"];
m_FieldForeignKey=m_Query->FieldValues["FieldForeignKey"];
m_FieldReferTableName=m_Query->FieldValues["FieldReferTableName"];
m_FieldReferFieldName=m_Query->FieldValues["FieldReferFieldName"];
m_FieldIdentity=m_Query->FieldValues["FieldIdentity"];
m_FieldNull=m_Query->FieldValues["FieldNull"];
m_FieldDefault=m_Query->FieldValues["FieldDefault"];
m_FieldHandWriting=m_Query->FieldValues["FieldHandWriting"];
m_FieldStyle=m_Query->FieldValues["FieldStyle"];
m_FieldAutoNo=m_Query->FieldValues["FieldAutoNo"];
m_FieldNumbering=m_Query->FieldValues["FieldNumbering"];
BackupValue();
}
void TsdField::AssignValue()
{
TsdField *p=(TsdField *)Records(CurRecNo);
Assign(p);
}
void TsdField::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_FieldName.IsEmpty()==true)
throw Exception("字段名不能为空!");
if(m_FieldTableName.IsEmpty()==true)
throw Exception("表名称不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdField_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@FieldName",ftString,pdInput,30,m_FieldName);
m_StoredProc->Parameters->CreateParameter("@FieldTableName",ftString,pdInput,30,m_FieldTableName);
m_StoredProc->Parameters->CreateParameter("@FieldNo",ftInteger,pdInput,10,m_FieldNo);
m_StoredProc->Parameters->CreateParameter("@FieldDesc",ftString,pdInput,40,m_FieldDesc);
m_StoredProc->Parameters->CreateParameter("@FieldMemo",ftString,pdInput,255,m_FieldMemo);
m_StoredProc->Parameters->CreateParameter("@FieldType",ftString,pdInput,10,m_FieldType);
m_StoredProc->Parameters->CreateParameter("@FieldWidth",ftInteger,pdInput,20,m_FieldWidth);
m_StoredProc->Parameters->CreateParameter("@FieldDecimal",ftInteger,pdInput,20,m_FieldDecimal);
m_StoredProc->Parameters->CreateParameter("@FieldPrimaryKey",ftSmallint,pdInput,10,m_FieldPrimaryKey);
m_StoredProc->Parameters->CreateParameter("@FieldForeignKey",ftSmallint,pdInput,10,m_FieldForeignKey);
m_StoredProc->Parameters->CreateParameter("@FieldReferTableName",ftString,pdInput,30,m_FieldReferTableName);
m_StoredProc->Parameters->CreateParameter("@FieldReferFieldName",ftString,pdInput,30,m_FieldReferFieldName);
m_StoredProc->Parameters->CreateParameter("@FieldIdentity",ftSmallint,pdInput,10,m_FieldIdentity);
m_StoredProc->Parameters->CreateParameter("@FieldNull",ftSmallint,pdInput,10,m_FieldNull);
m_StoredProc->Parameters->CreateParameter("@FieldDefault",ftString,pdInput,255,m_FieldDefault);
m_StoredProc->Parameters->CreateParameter("@FieldHandWriting",ftSmallint,pdInput,10,m_FieldHandWriting);
m_StoredProc->Parameters->CreateParameter("@FieldStyle",ftSmallint,pdInput,10,m_FieldStyle);
m_StoredProc->Parameters->CreateParameter("@FieldAutoNo",ftSmallint,pdInput,10,m_FieldAutoNo);
m_StoredProc->Parameters->CreateParameter("@FieldNumbering",ftSmallint,pdInput,10,m_FieldNumbering);
m_StoredProc->ExecProc();
}
else
{
m_StoredProc->ProcedureName="sdField_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_FieldName",ftString,pdInput,30,b_FieldName);
m_StoredProc->Parameters->CreateParameter("@FieldName",ftString,pdInput,30,m_FieldName);
m_StoredProc->Parameters->CreateParameter("@FieldTableName",ftString,pdInput,30,m_FieldTableName);
m_StoredProc->Parameters->CreateParameter("@FieldNo",ftInteger,pdInput,10,m_FieldNo);
m_StoredProc->Parameters->CreateParameter("@FieldDesc",ftString,pdInput,40,m_FieldDesc);
m_StoredProc->Parameters->CreateParameter("@FieldMemo",ftString,pdInput,255,m_FieldMemo);
m_StoredProc->Parameters->CreateParameter("@FieldType",ftString,pdInput,10,m_FieldType);
m_StoredProc->Parameters->CreateParameter("@FieldWidth",ftInteger,pdInput,20,m_FieldWidth);
m_StoredProc->Parameters->CreateParameter("@FieldDecimal",ftInteger,pdInput,20,m_FieldDecimal);
m_StoredProc->Parameters->CreateParameter("@FieldPrimaryKey",ftSmallint,pdInput,10,m_FieldPrimaryKey);
m_StoredProc->Parameters->CreateParameter("@FieldForeignKey",ftSmallint,pdInput,10,m_FieldForeignKey);
m_StoredProc->Parameters->CreateParameter("@FieldReferTableName",ftString,pdInput,30,m_FieldReferTableName);
m_StoredProc->Parameters->CreateParameter("@FieldReferFieldName",ftString,pdInput,30,m_FieldReferFieldName);
m_StoredProc->Parameters->CreateParameter("@FieldIdentity",ftSmallint,pdInput,10,m_FieldIdentity);
m_StoredProc->Parameters->CreateParameter("@FieldNull",ftSmallint,pdInput,10,m_FieldNull);
m_StoredProc->Parameters->CreateParameter("@FieldDefault",ftString,pdInput,255,m_FieldDefault);
m_StoredProc->Parameters->CreateParameter("@FieldHandWriting",ftSmallint,pdInput,10,m_FieldHandWriting);
m_StoredProc->Parameters->CreateParameter("@FieldStyle",ftSmallint,pdInput,10,m_FieldStyle);
m_StoredProc->Parameters->CreateParameter("@FieldAutoNo",ftSmallint,pdInput,10,m_FieldAutoNo);
m_StoredProc->Parameters->CreateParameter("@FieldNumbering",ftSmallint,pdInput,10,m_FieldNumbering);
m_StoredProc->ExecProc();
}
TsdField *p=new TsdField();
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->FieldName,this->FieldName);
}
void TsdField::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_FieldName.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->ProcedureName="sdField_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_FieldName",ftString,pdInput,30,b_FieldName);
m_StoredProc->ExecProc();
DeleteRecord(this->b_FieldName);
}
void TsdField::Assign(TsdField *p)
{
this->SetActionID(p->CurStatus);
this->m_FieldName=p->m_FieldName;
this->m_FieldTableName=p->m_FieldTableName;
this->m_FieldNo=p->m_FieldNo;
this->m_FieldDesc=p->m_FieldDesc;
this->m_FieldMemo=p->m_FieldMemo;
this->m_FieldType=p->m_FieldType;
this->m_FieldWidth=p->m_FieldWidth;
this->m_FieldDecimal=p->m_FieldDecimal;
this->m_FieldPrimaryKey=p->m_FieldPrimaryKey;
this->m_FieldForeignKey=p->m_FieldForeignKey;
this->m_FieldReferTableName=p->m_FieldReferTableName;
this->m_FieldReferFieldName=p->m_FieldReferFieldName;
this->m_FieldIdentity=p->m_FieldIdentity;
this->m_FieldNull=p->m_FieldNull;
this->m_FieldDefault=p->m_FieldDefault;
this->m_FieldHandWriting=p->m_FieldHandWriting;
this->m_FieldStyle=p->m_FieldStyle;
this->m_FieldAutoNo=p->m_FieldAutoNo;
this->m_FieldNumbering=p->m_FieldNumbering;
if(this->CurStatus==3)
{
this->b_FieldName=p->b_FieldName;
this->b_FieldTableName=p->b_FieldTableName;
this->b_FieldNo=p->b_FieldNo;
this->b_FieldDesc=p->b_FieldDesc;
this->b_FieldMemo=p->b_FieldMemo;
this->b_FieldType=p->b_FieldType;
this->b_FieldWidth=p->b_FieldWidth;
this->b_FieldDecimal=p->b_FieldDecimal;
this->b_FieldPrimaryKey=p->b_FieldPrimaryKey;
this->b_FieldForeignKey=p->b_FieldForeignKey;
this->b_FieldReferTableName=p->b_FieldReferTableName;
this->b_FieldReferFieldName=p->b_FieldReferFieldName;
this->b_FieldIdentity=p->b_FieldIdentity;
this->b_FieldNull=p->b_FieldNull;
this->b_FieldDefault=p->b_FieldDefault;
this->b_FieldHandWriting=p->b_FieldHandWriting;
this->b_FieldStyle=p->b_FieldStyle;
this->b_FieldAutoNo=p->b_FieldAutoNo;
this->b_FieldNumbering=p->b_FieldNumbering;
}
else
this->BackupValue();
}
int TsdField::Query()
{
AnsiString m_SqlStr;
m_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" Order by "+OrderString;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
TsdField *p=new TsdField();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->FieldName);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
bool TsdField::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdField where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount!=1)
{
m_Query->Close();
return false;
}
else
{
BatchLetValue();
m_Query->Close();
return true;
}
}
AnsiString TsdField::GetFieldValue(euField sdFieldName)
{
switch(sdFieldName)
{
case fiFieldName:
return FieldName;
case fiFieldTableName:
return FieldTableName;
case fiFieldNo:
return FieldNo;
case fiFieldDesc:
return FieldDesc;
case fiFieldMemo:
return FieldMemo;
case fiFieldType:
return FieldType;
case fiFieldWidth:
return AnsiString(FieldWidth);
case fiFieldDecimal:
return AnsiString(FieldDecimal);
case fiFieldPrimaryKey:
return AnsiString(FieldPrimaryKey);
case fiFieldForeignKey:
return AnsiString(FieldForeignKey);
case fiFieldReferTableName:
return FieldReferTableName;
case fiFieldReferFieldName:
return FieldReferFieldName;
case fiFieldIdentity:
return AnsiString(FieldIdentity);
case fiFieldNull:
return AnsiString(FieldNull);
case fiFieldDefault:
return FieldDefault;
case fiFieldHandWriting:
return AnsiString(FieldHandWriting);
case fiFieldStyle:
return AnsiString(FieldStyle);
case fiFieldAutoNo:
return AnsiString(FieldAutoNo);
case fiFieldNumbering:
return AnsiString(FieldNumbering);
default:
throw Exception("当前字段未定义成可取值");
}
}
AnsiString TsdField::GetOldFieldValue(euField sdFieldName)
{
switch(sdFieldName)
{
case fiFieldName:
return b_FieldName;
case fiFieldTableName:
return b_FieldTableName;
case fiFieldNo:
return b_FieldNo;
case fiFieldDesc:
return b_FieldDesc;
case fiFieldMemo:
return b_FieldMemo;
case fiFieldType:
return b_FieldType;
case fiFieldWidth:
return AnsiString(b_FieldWidth);
case fiFieldDecimal:
return AnsiString(b_FieldDecimal);
case fiFieldPrimaryKey:
return AnsiString(b_FieldPrimaryKey);
case fiFieldForeignKey:
return AnsiString(b_FieldForeignKey);
case fiFieldReferTableName:
return b_FieldReferTableName;
case fiFieldReferFieldName:
return b_FieldReferFieldName;
case fiFieldIdentity:
return AnsiString(b_FieldIdentity);
case fiFieldNull:
return AnsiString(b_FieldNull);
case fiFieldDefault:
return FieldDefault;
case fiFieldHandWriting:
return AnsiString(b_FieldHandWriting);
case fiFieldStyle:
return AnsiString(b_FieldStyle);
case fiFieldAutoNo:
return AnsiString(b_FieldAutoNo);
case fiFieldNumbering:
return AnsiString(b_FieldNumbering);
default:
throw Exception("当前字段未定义成可取值");
}
}
void TsdField::SetFieldValue(euField sdFieldName, AnsiString Value)
{
switch(sdFieldName)
{
case fiFieldName:
FieldName=Value;
break;
case fiFieldTableName:
FieldTableName=Value;
break;
case fiFieldNo:
FieldNo=Value.ToInt();
break;
case fiFieldDesc:
FieldDesc=Value;
break;
case fiFieldMemo:
FieldMemo=Value;
break;
case fiFieldType:
FieldType=Value;
break;
case fiFieldWidth:
FieldWidth=Value.ToInt();
break;
case fiFieldDecimal:
FieldDecimal=Value.ToInt();
break;
case fiFieldPrimaryKey:
FieldPrimaryKey=Value.ToInt();
break;
case fiFieldForeignKey:
FieldForeignKey=Value.ToInt();
break;
case fiFieldReferTableName:
FieldReferTableName=Value;
break;
case fiFieldReferFieldName:
FieldReferFieldName=Value;
break;
case fiFieldIdentity:
FieldIdentity=Value.ToInt();
break;
case fiFieldNull:
FieldNull=Value.ToInt();
break;
case fiFieldDefault:
FieldDefault=Value;
break;
case fiFieldHandWriting:
FieldHandWriting=Value.ToInt();
break;
case fiFieldStyle:
FieldStyle=Value.ToInt();
break;
case fiFieldAutoNo:
FieldAutoNo=Value.ToInt();
break;
case fiFieldNumbering:
FieldNumbering=Value.ToInt();
break;
default:
throw Exception("当前字段未定义成可赋值");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -