📄 operationdeploy.cpp
字号:
// OperationDeploy.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "OperationDeploy.h"
#include <stdio.h>
#define MAX_SQL 4096
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
//全局对象
CDataManage m_DataManage;
//全局导出函数
extern "C" CDataManage* WINAPI GetDataManage()
{
return &m_DataManage;
}
extern "C" CComStuff* WINAPI CreateStuff()
{
return new CStuff();
}
extern "C" CStuffManage* WINAPI CreateStuffManage()
{
return new CStuffManage();
}
CDataManage::CDataManage()
{
//初始化COM
::CoInitialize(NULL);
//创建ADO对象
m_pConnect.CreateInstance("ADODB.Connection");
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pCommand.CreateInstance("ADODB.Command");
}
CDataManage::~CDataManage()
{
m_pConnect->Close();
::CoUninitialize();
}
BOOL CDataManage::InitDatabase(LPCTSTR strConnect)
{
//连接数据库
m_pConnect->ConnectionString = strConnect;
try
{
m_pConnect->Open("","","",-1);
return TRUE;
}
catch(...)
{
return FALSE;
}
}
//执行查询操作
void CDataManage::ExecSelect(LPCTSTR selSQL, _RecordsetPtr* pRecord)
{
(*pRecord)->Open((_variant_t)selSQL,m_pConnect.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
// m_pConnect->Execute((_bstr_t)selSQL,NULL,0);
}
//执行添加\修改\删除操作
BOOL CDataManage::ExecOpt(LPCTSTR optSQL)
{
try
{
m_pConnect->Execute((_bstr_t)optSQL,NULL,0);
return TRUE;
}
catch(...)
{
return FALSE;
}
}
CStuffManage::CStuffManage()
{
}
CStuffManage::~CStuffManage()
{
}
void __stdcall CStuffManage::FreeSelf()
{
delete this;
}
//合法性检查
BOOL CStuffManage::ValidCheck(CStuff **stuff)
{
if (strlen( (*stuff)->GetKnowledge())==0 || strlen( (*stuff)->GetSex())==0
|| strlen((*stuff)->GetName())==0||(*stuff)->GetWage()<0)
return FALSE;
else
return TRUE;
}
//添加员工信息
BOOL CStuffManage::AddStuff(CStuff **stuff)
{
char* sql = new char[MAX_SQL];
sprintf(sql,"insert into tb_StuffInfo values (%i, '%s','%s','%s',%f)",(*stuff)->GetID(),(*stuff)->GetName(),
(*stuff)->GetSex(),(*stuff)->GetKnowledge(),(*stuff)->GetWage());
try
{
m_DataManage.ExecOpt(sql);
delete []sql;
return TRUE;
}
catch(...)
{
delete []sql;
return FALSE;
}
}
//初始化员工信息
void CStuffManage::IniStuff(CStuff **stuff)
{
(*stuff)->SetID(0);
(*stuff)->SetName("");
(*stuff)->SetKnowledge("");
(*stuff)->SetSex("");
(*stuff)->SetWage(0.0);
}
//修改员工信息
BOOL CStuffManage::UpdateStuff(CStuff **stuff,CStuff **oldstuff)
{
char* sql = new char[MAX_SQL];
sprintf(sql,"update tb_StuffInfo set id = %i, name = '%s',sex = '%s', knowledge = '%s',wage = %f where id = '%s'",(*stuff)->GetID(),(*stuff)->GetName(),
(*stuff)->GetSex(),(*stuff)->GetKnowledge(),(*stuff)->GetWage(),(*stuff)->GetID());
try
{
m_DataManage.ExecOpt(sql);
delete []sql;
return TRUE;
}
catch(...)
{
delete []sql;
return FALSE;
}
}
//删除员工信息
BOOL CStuffManage::DeleteStuff(CStuff** stuff)
{
char* sql = new char[MAX_SQL];
sprintf(sql,"delete tb_StuffInfo where id = '%d' ",(*stuff)->GetID());
try
{
m_DataManage.ExecOpt(sql);
delete [] sql;
return TRUE;
}
catch(...)
{
delete [] sql;
return FALSE ;
}
}
//查询员工信息
void CStuffManage::SelectStuff(_RecordsetPtr** pRecord)
{
m_DataManage.ExecSelect("select * from tb_StuffInfo",(_RecordsetPtr*)*pRecord);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -