📄 kscdset.h
字号:
//---------------------------------------------------------------------------
#ifndef KSCDSetH
#define KSCDSetH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <adodb.hpp>
#include <db.hpp>
#include <ScktComp.hpp>
#include "container.h"
#include <stdio.h>
//---------------------------------------------------------------------------
class TKSCDSet : public TThread
{
private:
HWND l_Handle;
HWND l_AOwner;
HWND l_Parent;
TADOQuery *l_HeadDataSet;
TADOQuery *l_ItemDataSet;
TADOQuery *FQuery;
AnsiString l_ServerDataSetHandle;
AnsiString l_MidCode;
TStringList *l_ClientBuffer;
int l_OperateStatus;
bool l_DataSetActive;
int l_TimeOut;
int l_ExecuteTime;
int l_DataSetType;
AnsiString l_HeadSQLStr;
AnsiString l_ItemSQLStr;
AnsiString l_HeadWhereStr;
AnsiString l_ItemWhereStr;
AnsiString l_HeadOrderStr;
AnsiString l_ItemOrderStr;
TStringList *l_HeadLinkFields;
TStringList *l_ItemLinkFields;
AnsiString l_HeadKeyFields;
AnsiString l_ItemKeyFields;
AnsiString l_HeadFileName;
AnsiString l_ItemFileName;
AnsiString l_HeadStructure;
AnsiString l_ItemStructure;
AnsiString l_ErrorMessage;
TStringList *l_ItemEditStatus;
TStringList *l_HeadDisplayName;
TStringList *l_ItemDisplayName;
AnsiString l_HeadValidFieldList;
AnsiString l_ItemValidFieldList;
AnsiString l_Range;
private:
AnsiString __fastcall GetHeadSQLStr();
void __fastcall SetHeadSQLStr(AnsiString value);
AnsiString __fastcall GetItemSQLStr();
void __fastcall SetItemSQLStr(AnsiString value);
AnsiString __fastcall GetHeadWhereStr();
void __fastcall SetHeadWhereStr(AnsiString value);
AnsiString __fastcall GetItemWhereStr();
void __fastcall SetItemWhereStr(AnsiString value);
AnsiString __fastcall GetHeadOrderStr();
void __fastcall SetHeadOrderStr(AnsiString value);
AnsiString __fastcall GetItemOrderStr();
void __fastcall SetItemOrderStr(AnsiString value);
AnsiString __fastcall GetHeadKeyFields();
void __fastcall SetHeadKeyFields(AnsiString value);
AnsiString __fastcall GetItemKeyFields();
void __fastcall SetItemKeyFields(AnsiString value);
AnsiString __fastcall GetLinkFields();
void __fastcall SetLinkFields(AnsiString value);
AnsiString __fastcall GetHeadSort();
void __fastcall SetHeadSort(AnsiString value);
AnsiString __fastcall GetItemSort();
void __fastcall SetItemSort(AnsiString value);
AnsiString __fastcall GetFilter();
void __fastcall SetFilter(AnsiString value);
bool __fastcall GetFiltered();
void __fastcall SetFiltered(bool value);
TDataSetState __fastcall GetHeadStatus();
TDataSetState __fastcall GetItemStatus();
int __fastcall GetDataSetType();
bool __fastcall GetBof();
bool __fastcall GetEof();
int __fastcall GetRecordCount();
int __fastcall GetCurRecNo();
int __fastcall GetHeadFieldCount();
TFields *__fastcall GetHeadFields();
bool __fastcall GetItemBof();
bool __fastcall GetItemEof();
int __fastcall GetItemCount();
int __fastcall GetItemRecNo();
int __fastcall GetItemFieldCount();
TFields *__fastcall GetItemFields();
AnsiString __fastcall GetHeadFieldName(int index);
TFieldType __fastcall GetHeadFieldType(int index);
int __fastcall GetHeadFieldSize(int index);
AnsiString __fastcall GetItemFieldName(int index);
TFieldType __fastcall GetItemFieldType(int index);
int __fastcall GetItemFieldSize(int index);
AnsiString __fastcall GetHeadValidFieldList();
AnsiString __fastcall GetItemValidFieldList();
AnsiString __fastcall BuildLinkStr();
AnsiString __fastcall BuildLinkFields();
void __fastcall ExtractLinkFields(AnsiString value);
void __fastcall BuildDetailFilter();
int __fastcall CheckFieldType(TField *Field);
void __fastcall CheckResultStatus(int status);
void __fastcall BuildItemStatus();
void __fastcall SetDataSetDisplayName(TADOQuery *ds,TStringList *dn);
AnsiString __fastcall BuildValidList(AnsiString value);
void __fastcall PollingMessage(HWND hWnd);
public:
__fastcall TKSCDSet(HWND AOwner,HWND AParent,AnsiString AMidCode);
__fastcall ~TKSCDSet();
protected:
void __fastcall CDSetTerminate(TObject *Sender);
void __fastcall WndProc(TMessage &Message);
void __fastcall Execute();
void __fastcall AnalyzeStr();
void __fastcall InitCDSet();
void __fastcall FreeCDSet();
void __fastcall InitCDSet(TKSStrData *stream);
void __fastcall RecvOpen(TKSStrData *stream);
void __fastcall RecvUpdate(TKSStrData *stream);
void __fastcall RecvDelete(TKSStrData *stream);
void __fastcall RecvDeleteItem(TKSStrData *stream);
void __fastcall RecvCheck(TKSStrData *stream);
void __fastcall RecvCloseOff(TKSStrData *stream);
void __fastcall RecvRevoke(TKSStrData *stream);
void __fastcall RecvTally(TKSStrData *stream);
void __fastcall RecvCmdExec(TKSStrData *stream);
void __fastcall RecvValidateData(TKSStrData *stream);
void __fastcall RecvExecSQL(TKSStrData *stream);
void __fastcall RecvErrorMessage(TKSStrData *stream);
public:
void __fastcall Open();
void __fastcall AddNew();
void __fastcall Insert();
void __fastcall Edit();
void __fastcall Delete();
void __fastcall Update();
void __fastcall Cancel();
void __fastcall AddItem();
void __fastcall InserItem();
void __fastcall EditItem();
void __fastcall DeleteItem();
void __fastcall UpdateItem();
void __fastcall CancelItem();
void __fastcall Close();
void __fastcall MoveFirst();
void __fastcall MoveLast();
void __fastcall MoveNext();
void __fastcall MovePrior();
void __fastcall MoveTo(int Distance);
void __fastcall ItemFirst();
void __fastcall ItemLast();
void __fastcall ItemPrior();
void __fastcall ItemNext();
void __fastcall ItemMoveTo(int Distance);
bool __fastcall LocateHead(AnsiString KeyValues);
bool __fastcall LocateItem(AnsiString KeyValues);
TField *__fastcall FindMasterField(AnsiString fieldname);
TField *__fastcall FindDetailField(AnsiString fieldname);
Variant __fastcall GetHeadValue(AnsiString fieldname);
Variant __fastcall GetHeadOldValue(AnsiString fieldname);
void __fastcall SetMasterValue(AnsiString fieldname,Variant value);
Variant __fastcall GetItemValue(AnsiString fieldname);
Variant __fastcall GetItemOldValue(AnsiString fieldname);
void __fastcall SetDetailValue(AnsiString fieldname,Variant value);
void __fastcall CmdExec(AnsiString Param);
void __fastcall Check(int IsCheck);
void __fastcall CloseOff(int IsClose);
void __fastcall Revoke(int IsRevoke);
void __fastcall Tally(int IsTally);
void __fastcall ExecSQL(AnsiString sqlstr);
void __fastcall ExitClientDataSet();
public:
__property AnsiString HeadSQLStr={read=GetHeadSQLStr,write=SetHeadSQLStr};
__property AnsiString ItemSQLStr={read=GetItemSQLStr,write=SetItemSQLStr};
__property AnsiString HeadWhereStr={read=GetHeadWhereStr,write=SetHeadWhereStr};
__property AnsiString ItemWhereStr={read=GetItemWhereStr,write=SetItemWhereStr};
__property AnsiString HeadOrderStr={read=GetHeadOrderStr,write=SetHeadOrderStr};
__property AnsiString ItemOrderStr={read=GetItemOrderStr,write=SetItemOrderStr};
__property AnsiString HeadKeyFields={read=GetHeadKeyFields,write=SetHeadKeyFields};
__property AnsiString ItemKeyFields={read=GetItemKeyFields,write=SetItemKeyFields};
__property AnsiString LinkFields={read=GetLinkFields,write=SetLinkFields};
__property AnsiString HeadSort={read=GetHeadSort,write=SetHeadSort};
__property AnsiString ItemSort={read=GetItemSort,write=SetItemSort};
__property AnsiString Filter={read=GetFilter,write=SetFilter};
__property bool Filtered={read=GetFiltered,write=SetFiltered};
__property TDataSetState HeadStatus={read=GetHeadStatus};
__property TDataSetState ItemStatus={read=GetItemStatus};
__property int DataSetType={read=GetDataSetType};
__property bool Bof={read=GetBof};
__property bool Eof={read=GetEof};
__property int RecordCount={read=GetRecordCount};
__property int CurRecNo={read=GetCurRecNo};
__property int MasterFieldCount={read=GetHeadFieldCount};
__property TFields *MasterFields={read=GetHeadFields};
__property bool DetailBof={read=GetItemBof};
__property bool DetailEof={read=GetItemEof};
__property int DetailCount={read=GetItemCount};
__property int DetailRecNo={read=GetItemRecNo};
__property int DetailFieldCount={read=GetItemFieldCount};
__property TFields *DetailFields={read=GetItemFields};
__property AnsiString MasterFieldName[int index]={read=GetHeadFieldName};
__property TFieldType MasterFieldType[int index]={read=GetHeadFieldType};
__property int MasterFieldSize[int index]={read=GetHeadFieldSize};
__property AnsiString DetailFieldName[int index]={read=GetItemFieldName};
__property TFieldType DetailFieldType[int index]={read=GetItemFieldType};
__property int DetailFieldSize[int index]={read=GetItemFieldSize};
__property HWND Handle={read=l_Handle};
__property HWND Parent={read=l_Parent};
__property bool Active={read=l_DataSetActive};
__property int TimeOut={read=l_TimeOut,write=l_TimeOut};
};
class TKSCRSet :public TThread
{
private:
HWND l_AOwner;
HWND l_ClientCommHandle;
HWND l_Handle;
TADOQuery *l_DataSet;
TStringList *l_MessageBuffer;
int l_DataSetState;
int l_OperateStatus;
AnsiString l_ServerRecordSetHandle;
AnsiString l_FileName;
AnsiString l_ErrorMessage;
FILE *logfile;
protected:
void __fastcall WndProc(TMessage &Msg);
void __fastcall AnalyzeStr();
void __fastcall Execute();
void __fastcall CRSetTerminate(TObject *Sender);
private:
void __fastcall InitRecordSet();
void __fastcall FreeRecordSet();
void __fastcall InitRecordSet(TKSStrData *stream);
void __fastcall RecvOpen(TKSStrData *stream);
void __fastcall RecvUpdate(TKSStrData *stream);
void __fastcall RecvDelete(TKSStrData *stream);
void __fastcall RecvExecSQL(TKSStrData *stream);
void __fastcall RecvError(TKSStrData *stream);
void __fastcall CheckResultStatus(int status);
TDataSource* __fastcall GetDataSource();
void __fastcall SetDataSource(TDataSource* value);
TADOConnection* __fastcall GetConnection();
void __fastcall SetConnection(TADOConnection* value);
bool __fastcall GetActive();
void __fastcall SetActive(bool value);
bool __fastcall GetBof();
bool __fastcall GetEof();
int __fastcall GetRowsAffected();
TStrings* __fastcall GetSQL();
void __fastcall SetSQL(TStrings* value);
AnsiString __fastcall GetFilterText();
void __fastcall SetFilterText(AnsiString value);
bool __fastcall GetFiltered();
void __fastcall SetFiltered(bool value);
TADOLockType __fastcall GetLockType();
void __fastcall SetLockType(TADOLockType value);
int __fastcall GetCurRecNo();
void __fastcall SetCurRecNo(int value);
int __fastcall GetRecordCount();
AnsiString __fastcall GetSort();
void __fastcall SetSort(AnsiString value);
AnsiString __fastcall GetBookmarkStr();
void __fastcall SetBookmarkStr(AnsiString value);
int __fastcall GetFieldCount();
TFields* __fastcall GetFields();
Variant __fastcall GetFieldValue(AnsiString FieldName);
void __fastcall SetFieldValue(AnsiString FieldName,Variant value);
AnsiString __fastcall GetName();
void __fastcall SetName(AnsiString value);
TDataSetState __fastcall GetState();
public:
__fastcall TKSCRSet(HWND Owner,HWND cchdl);
__fastcall ~TKSCRSet();
void __fastcall Open();
void __fastcall Close();
void __fastcall Refresh(void);
void __fastcall First();
void __fastcall Last();
void __fastcall Prior();
void __fastcall Next();
void __fastcall MoveBy(int Distance);
void __fastcall Append(void);
void __fastcall Insert(void);
void __fastcall Edit(void);
void __fastcall Post(void);
void __fastcall UpdateBatch(TAffectRecords AffectRecords);
void __fastcall Cancel(void);
void __fastcall CancelBatch(TAffectRecords AffectRecords);
void __fastcall Delete(void);
void __fastcall CancelUpdates(void);
bool __fastcall Locate(AnsiString KeyFields,Variant &KeyValues,TLocateOptions Options);
void __fastcall ExecSQL(void);
TField* __fastcall FieldByName(AnsiString FieldName);
TField* __fastcall FindField(const AnsiString FieldName);
void __fastcall LoadFromFile(AnsiString FileName);
void __fastcall SaveToFile(const WideString FileName, TPersistFormat Format);
void __fastcall ExitClientRecordSet();
void __fastcall PollingMessage(HWND hWnd);
public:
__property HWND LocalHandle={read=l_Handle};
__property AnsiString ServerRecordSetHandle={read=l_ServerRecordSetHandle};
__property HWND Parent={read=l_AOwner};
__property TDataSource* DataSource = {read=GetDataSource, write=SetDataSource};
__property bool Active = {read=GetActive, write=SetActive};
__property bool Bof = {read=GetBof};
__property bool Eof = {read=GetEof};
__property int RowsAffected = {read=GetRowsAffected};
__property TStrings* SQL = {read=GetSQL, write=SetSQL};
__property AnsiString Filter = {read=GetFilterText, write=SetFilterText};
__property bool Filtered = {read=GetFiltered, write=SetFiltered};
__property TADOLockType LockType = {read=GetLockType, write=SetLockType};
__property int CurRecNo = {read=GetCurRecNo, write=SetCurRecNo};
__property int RecordCount = {read=GetRecordCount};
__property AnsiString Sort = {read=GetSort, write=SetSort};
__property AnsiString Bookmark = {read=GetBookmarkStr, write=SetBookmarkStr};
__property int FieldCount = {read=GetFieldCount};
__property TFields* Fields = {read=GetFields};
__property Variant FieldValues[AnsiString FieldName] = {read=GetFieldValue, write=SetFieldValue};
__property AnsiString Name = {read=GetName, write=SetName};
__property TDataSetState State = {read=GetState};
};
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -