📄 servercppdm.cpp
字号:
// Direct Oracle Access - Server
// Allround Automations
// support@allroundautomations.nl
// http://www.allroundautomations.nl
//
// This application demonstrates:
// - The Server part of a 3 Tier application using a TDataSetPovider
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ServerCPPDM.h"
#if !defined(__PRAGMA_SMART_INIT_DEFINED)
#define __PRAGMA_SMART_INIT_DEFINED
#pragma package(smart_init)
#endif
#pragma link "Oracle"
#pragma link "OracleData"
#pragma resource "*.dfm"
/////////////////////////////////////////////////////////////////////////////
// Global instance of TRemoteCPPDMImpl
/////////////////////////////////////////////////////////////////////////////
TRemoteCPPDM *RemoteCPPDM;
AnsiString DefaultUsername = "";
AnsiString DefaultPassword = "";
AnsiString DefaultDatabase = "";
/////////////////////////////////////////////////////////////////////////////
// TRemoteCPPDM::TRemoteCPPDM
/////////////////////////////////////////////////////////////////////////////
__fastcall TRemoteCPPDM::TRemoteCPPDM(TComponent* Owner) : TCRemoteDataModule(Owner)
{
}
void __fastcall TRemoteCPPDM::RemoteCPPDMCreate(TObject *Sender)
{
Log("DM Created");
UpdateStatusLine(+1);
if (!OracleSession->Connected)
{
OracleSession->LogonUsername = DefaultUsername;
OracleSession->LogonPassword = DefaultPassword;
OracleSession->LogonDatabase = DefaultDatabase;
OracleLogon->Execute();
// Remember usename/password so the next one will connect without the dialog
DefaultUsername = OracleSession->LogonUsername;
DefaultPassword = OracleSession->LogonPassword;
DefaultDatabase = OracleSession->LogonDatabase;
if (OracleSession->Connected) Log("Connected as " + DefaultUsername);
}
}
//---------------------------------------------------------------------------
void __fastcall TRemoteCPPDM::RemoteCPPDMDestroy(TObject *Sender)
{
Log("DM Destroyed");
UpdateStatusLine(-1);
}
//---------------------------------------------------------------------------
// Log if a query is executed
void __fastcall TRemoteCPPDM::AfterQuery(TOracleDataSet *Sender)
{
Log(Sender->Name + " Query");
}
//---------------------------------------------------------------------------
// Log if the dataset is posted
void __fastcall TRemoteCPPDM::AfterPost(TDataSet *DataSet)
{
Log(DataSet->Name + " Post");
}
//---------------------------------------------------------------------------
void __fastcall TRemoteCPPDM::TranslateMessage(
TOracleDataSet *Sender, int ErrorCode,
const AnsiString ConstraintName, char Action, AnsiString &Msg)
{
Log(Sender->Name + " " + Msg);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -