📄 dboperate.cpp
字号:
// DBOperate.cpp: implementation of the CDBOperate class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "car.h"
#include "DBOperate.h"
#include <fstream.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CCarApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDBOperate::CDBOperate()
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
}
CDBOperate::~CDBOperate()
{
}
void CDBOperate::InsertNewToUserCallInfo(CString strTeleNum,CTime OffHooktime,int TimeOnLine,int LineNum)
{
CString sql;
CString strTime;
strTime=OffHooktime.Format("%m,%d,%Y %H:%M:%S");
sql.Format("insert into usercall_info values ('%s','%s',%d,%d)",strTeleNum,strTime,TimeOnLine,LineNum);
theApp.m_pConnection->Execute(_bstr_t(sql),NULL,adCmdText);
}
void CDBOperate::InsertNewToCarIn(CString CarID,int ntype,int LineNum)
{
CString sql;
sql.Format("insert into Car_in values ('%s',%d,%d,'0')",CarID,ntype,LineNum);
theApp.m_pConnection->Execute(_bstr_t(sql),NULL,adCmdText);
}
std::vector<CString> CDBOperate::QueryCarID(std::vector<CString> CarID)
{
std::vector <CString> QueriedCarID;
CString sql,strCarID,temp;
int i,pos;
for(i=0;i<CarID.size();i++)
{
CarID[i].Replace('*','_');
temp=strCarID;
strCarID.Format("%s CarID like '%s' ",temp.GetBuffer(temp.GetLength()),CarID[i].GetBuffer(CarID[i].GetLength()));
pos=-1;
while(-1!=(pos=CarID[i].Find('_',pos+1)))
{
temp=strCarID;
strCarID.Format(" %s And substring(CarID,%d,1)>'9'",temp.GetBuffer(temp.GetLength()),pos);
}
if(i<CarID.size()-1)
strCarID+=" OR ";
}
/* CarID[CarID.size()-1].Replace('*','_');
temp=strCarID;
strCarID.Format("%s CarID like '%s'",temp.GetBuffer(temp.GetLength()),CarID[CarID.size()-1].GetBuffer(CarID[CarID.size()-1].GetLength()));*/
sql.Format("select distinct CarId from Car_ID where %s",strCarID);
//AfxMessageBox(sql);
try
{
m_pRecordset->Open(_bstr_t(sql),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox("QueryCarID打开记录集失败!");
}
while(!m_pRecordset->adoEOF)
{
QueriedCarID.push_back((LPCTSTR)(_bstr_t)(m_pRecordset->GetCollect("CarId")));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
return QueriedCarID;
}
bool CDBOperate::CarOutHaveRecorder(int LineNum)
{
CString sql;
int RecordNum;
sql.Format("select count(*) from Car_Out where LineNum=%d",LineNum);
m_pRecordset->Open(_bstr_t(sql),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
RecordNum=(m_pRecordset->GetCollect(long(0))).iVal;
m_pRecordset->Close();
if(0!=RecordNum)
return true;
else
return false;
}
CString CDBOperate::GetInfoFromCarOut(int LineNum,char &ReturnType)
{
CString sql,strReturn,temp;
/////////返回查询结果///////////////////////////
sql.Format("select CarInfo,Type from Car_Out where LineNum=%d",LineNum);
m_pRecordset->Open(_bstr_t(sql),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
strReturn=(LPCTSTR)(_bstr_t)(m_pRecordset->GetCollect("CarInfo"));
temp=(LPCTSTR)(_bstr_t)(m_pRecordset->GetCollect("Type"));
ReturnType=temp.GetAt(0);
m_pRecordset->Close();
////删除记录////////
sql.Format("delete from Car_Out where LineNum=%d",LineNum);
theApp.m_pConnection->Execute(_bstr_t(sql),NULL,adCmdText);
/////////////////////////////////////
return strReturn;
}
CString CDBOperate::GetLetterFromZip(CString zipcode)
{
CString sql;
sql.Format("select * from Zip_info where zipcode=%s",zipcode);
m_pRecordset->Open(_bstr_t(sql),theApp.m_pConnection.GetInterfacePtr(),adOpenStatic,adLockPessimistic,adCmdText);
if(0==m_pRecordset->GetRecordCount())
return "";
else
return (LPCTSTR)(_bstr_t)(m_pRecordset->GetCollect("Letter"));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -