DBSynhro.rar

  • DemoTester
    了解作者
  • Windows_Unix
    开发工具
  • 65KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2010-02-09 17:38
    上传日期
netwaork database synchronizator
DBSynhro.rar
  • Bitmap.bmp
    41.1KB
  • Servers.h
    1.6KB
  • DBSource.h
    206B
  • UMain.cpp
    16.4KB
  • MemTbl.cpp
    941B
  • MemTbl.h
    312B
  • ServProc.mtf
    821B
  • DBSynhro.exe
    67.5KB
  • UProc.cpp
    1.6KB
  • UProc.dfm
    2.3KB
  • UDatBas.cpp
    549B
  • UMain.dfm
    3.4KB
  • UServer.dfm
    2.4KB
  • UServer.cpp
    1.5KB
  • UProc.h
    1.2KB
  • UDatBas.h
    1.1KB
  • DatBas.bmp
    322B
  • DBSource.cpp
    5.1KB
  • DBSynhro.res
    876B
  • ToniCommon.cpp
    43.3KB
  • Servers.cpp
    94.7KB
  • UServer.h
    1.3KB
  • UDatBas.dfm
    2.1KB
  • UMain.h
    2.4KB
  • Servers.mtf
    683B
  • ProcList.mtf
    377B
  • DBSynhro.bpr
    3.5KB
  • DBSynhro.cpp
    1.3KB
内容介绍
// Servers.cpp #include "Servers.h" #include "MemMan.h" #include "KNetCli.h" #include "Protocol.h" extern void UpdateNetEventsTable(int TypeOfChange); //--------------------------------------------------------------------------- #define SIMULATION /* // Network.cpp #include "DiskMan.h" #include "WinDlg.h" #include "StatData.h" #include "Views.h" #include "AcidBase.h" #include "Network.h" #include "Compress.h" #include "Protocol.h" #include "Station.h" */ #define CALL_SERVER_PERIOD (10 * 1000) // MasterPassword = Mitko_2001 // DefaultNetPassword = Acids_2001 // KrusPassword = Acids_2001 // DefaultNetPassword = KrusAdmin //char MasterPassword[MAX_NET_PASSWORD_LEN + 1] = "Ws~uyi<::;"; char MasterPassword[MAX_NET_PASSWORD_LEN + 1] = "Mitko_2001"; //--------------------------------------------------------------------------- // 丑瘩�, 獗螂錨溘憂 頑 頡溝櫻詼獗錙 熱 窟熱 陲夔蒙 #pragma pack(push, 1) struct DEVICE_SERVER_CONNECTION { DWORD Id; WORD Port; char *Address; KNetClient *Client; BOOL Connected; DWORD CallServerTime; }; #pragma pack(pop) MemoryBlock *ConnectionsDataBlock = NULL; DEVICE_SERVER_CONNECTION *ConnectionData = NULL; int ConnectionsCount = 0; /* #pragma pack(push, 1) struct NET_EVENT_DATA { DWORD ServerId; DWORD MessageId; DWORD Size; }; #pragma pack(pop) */ MemoryBlock *NetEventDataBlock = NULL; NET_EVENT_DATA *NetEventData = NULL; int NetEventCount = 0; //--------------------------------------------------------------------------- // 仁菴�� 臻菊錚� � 縉撇懼� BOOL AddNetEvent(NET_EVENT_DATA *Event) { if ( !Event ) return FALSE; if ( !NetEventDataBlock ) { NetEventDataBlock = new MemoryBlock(sizeof(NET_EVENT_DATA), sizeof(NET_EVENT_DATA)); if ( !NetEventDataBlock ) return FALSE; } if ( !NetEventDataBlock->Add(Event, sizeof(NET_EVENT_DATA)) ) return FALSE; NetEventData = (NET_EVENT_DATA *) NetEventDataBlock->GetDataPointer(); NetEventCount = NetEventDataBlock->GetDataSize() / sizeof(NET_EVENT_DATA); return TRUE; } //--------------------------------------------------------------------------- // 仁菴�� 臻菊錚� � 縉撇懼� BOOL AddNetEvent(DWORD EventId, DWORD ServerId, DWORD MessageId, DWORD Size) { NET_EVENT_DATA Event; ZeroMemory(&Event, sizeof(NET_EVENT_DATA)); Event.EventId = EventId; Event.ServerId = ServerId; Event.MessageId = MessageId; Event.Size = Size; SYSTEMTIME Time; GetLocalTime(&Time); Event.Hour = Time.wHour; Event.Min = Time.wMinute; Event.Sec = Time.wSecond; return AddNetEvent(&Event); } //--------------------------------------------------------------------------- int GetNetEvenCount() { return NetEventCount; } //--------------------------------------------------------------------------- BOOL GetNetEven(int Index, NET_EVENT_DATA *Event) { if ( !Event ) return FALSE; if ( NetEventDataBlock && NetEventData && Index >= 0 && Index < NetEventCount ) { *Event = NetEventData[Index]; return TRUE; } return FALSE; } //--------------------------------------------------------------------------- void GetNetEventName(BYTE NetEventId, char *Text) { switch ( NetEventId ) { case NET_EVENT_CONNECT: strcpy(Text, "柯櫻頊痢�"); return; case NET_EVENT_DISCONNECT: strcpy(Text, "俏筧欄熱錶 陲夔蒙"); return; case NET_EVENT_SEND: strcpy(Text, "俏窟琵痢�"); return; case NET_EVENT_RECEIVE: strcpy(Text, "俏徹影獗"); return; } Text[0] = 0; } //--------------------------------------------------------------------------- struct NET_MSG_NAME { DWORD Id; char *Name; }; NET_MSG_NAME NetMsgName[] = { { NET_MSG_IDENTIFICATION, "IDENTIFICATION" }, { NET_MSG_SUCCESS, "SUCCESS" }, { NET_MSG_EVENT, "EVENT" }, { NET_MSG_DIAGNOSTICS, "DIAGNOSTICS" }, { 0, NULL } }; //--------------------------------------------------------------------------- void GetNetMessageName(DWORD MessageId, char *Text) { if ( !Text ) return; if ( !MessageId ) { Text[0] = 0; return; } int Index = 0; while ( NetMsgName[Index].Id ) { if ( MessageId == NetMsgName[Index].Id ) { strcpy(Text, NetMsgName[Index].Name); return; } Index++; } wsprintf(Text, "%d", MessageId); } BOOL CriticalSectionInitialized = FALSE; CRITICAL_SECTION CriticalSection; //--------------------------------------------------------------------------- inline void EnterCriticalSection() { if ( CriticalSectionInitialized ) EnterCriticalSection(&CriticalSection); } //--------------------------------------------------------------------------- inline void LeaveCriticalSection() { if ( CriticalSectionInitialized ) LeaveCriticalSection(&CriticalSection); } //--------------------------------------------------------------------------- DEVICE_SERVER_CONNECTION *GetConnection(const KNetClient *Client) { int Index; for (Index = 0; Index < ConnectionsCount; Index++) if ( Client == ConnectionData[Index].Client ) return ConnectionData + Index; return NULL; } //--------------------------------------------------------------------------- void FreeConnectionResources(DEVICE_SERVER_CONNECTION *Connection) { if ( !Connection ) return; if ( Connection->Client ) { delete Connection->Client; Connection->Client = NULL; } if ( Connection->Address ) { delete Connection->Address; Connection->Address = NULL; } } //--------------------------------------------------------------------------- /* KNetClient *Client = NULL; BOOL Connected = FALSE; int StationId = 0; int OperatorId = 0; MemoryBlock *ServerDataBuffer = NULL; //DWORD ServerDataTableId = 0; int RecordsCount = 0; //int DeviceCount = 0; //int GateCount = 0; //int CardCount = 0; //int WorkingTimeCount = 0; //int ShiftCount = 0; //int EventCount = 0; //MemoryBlock *WorkingTimesBlock = NULL; //MemoryBlock *ShiftsBlock = NULL; //MemoryBlock *Block = NULL; // �蝗 熱 愿頜痞粵摘� 蒙暸� static int CardsSent = 0; static int CurrentCardRecord = 0; */ //--------------------------------------------------------------------------- inline void MakeMessageHeader(void *Buffer, int MessageId, int Param1, int Param2, int DataSize) { NET_MSG_HEADER *Header = (NET_MSG_HEADER *) Buffer; Header->MessageId = MessageId; Header->PCId = 0; //StationId; //ServerConfiguration.PCId; Header->OperatorId = 0; Header->Param1 = Param1; Header->Param2 = Param2; Header->DataSize = DataSize; } //--------------------------------------------------------------------------- // 行頜盜� 滓瘩� 熱 臻撼櫻 void SendToServer(DEVICE_SERVER_CONNECTION *Connection, int MessageId, int Param1, int Param2, char *Data, int DataSize) { if ( !Connection || !Connection->Client || !Connection->Connected ) return; if ( !Data || !DataSize ) { NET_MSG_HEADER Header; ZeroMemory(&Header, sizeof(NET_MSG_HEADER)); Header.MessageId = MessageId; Header.PCId = 0; //StationId; Header.OperatorId = 0; //OperatorId; Header.Param1 = Param1; Header.Param2 = Param2; Header.DataSize = 0; Connection->Client->Send((char *) &Header, sizeof(NET_MSG_HEADER)); return; } char *Buffer = new char[sizeof(NET_MSG_HEADER) + DataSize]; if ( !Buffer ) return; ZeroMemory(Buffer, sizeof(NET_MSG_HEADER)); NET_MSG_HEADER *Header = (NET_MSG_HEADER *) Buffer; Header->MessageId = MessageId; Header->PCId = 0; //StationId; Header->OperatorId = 0; //Operat
评论
    相关推荐
    • 数据库课程设计
      数据库课程设计使用,使用MFC编写的界面,连接ODBC数据源,方便移植。
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...