⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servercppdm.cpp

📁 Direct Oracle Access 非常好的Oracle数据库直接访问组件包 支持个版本的Delphi及C++ Builder 有源码
💻 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 + -