VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx

上传人:b****1 文档编号:2418376 上传时间:2022-10-29 格式:DOCX 页数:16 大小:18.97KB
下载 相关 举报
VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx_第1页
第1页 / 共16页
VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx_第2页
第2页 / 共16页
VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx_第3页
第3页 / 共16页
VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx_第4页
第4页 / 共16页
VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx

《VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx》由会员分享,可在线阅读,更多相关《VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx(16页珍藏版)》请在冰豆网上搜索。

VC数据库操作实例解析ADO技术一个辅助类来进行操作.docx

VC数据库操作实例解析ADO技术一个辅助类来进行操作

1、DataManage1.cpp:

//DataManage1.cpp:

implementationoftheCDataManageclass.

//

//////////////////////////////////////////////////////////////////////

#include"stdafx.h"

#include"DataManage1.h"

//#include"ExternDllHeader.h"

#include

#ifdef_DEBUG

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#definenewDEBUG_NEW

#endif

//HINSTANCEhInstance;

//////////////////////////////////////////////////////////////////////

//Construction/Destruction

//////////////////////////////////////////////////////////////////////

CDataManage:

:

CDataManage()

{

//hInstance=LoadLibrary("RxDLL.dll");

DataConn.CreateInstance(_uuidof(Connection));

DataRecord.CreateInstance(_uuidof(Recordset));

Record1.CreateInstance(_uuidof(Recordset));

Record1->CursorLocation=adUseClient;

Record2.CreateInstance(_uuidof(Recordset));

Record2->CursorLocation=adUseClient;

}

CDataManage:

:

~CDataManage()

{

DataConn->Release();

DataRecord->Release();

Record1->Release();

Record2->Release();

}

_ConnectionPtrCDataManage:

:

GetConn()

{

returnDataConn;

}

_RecordsetPtrCDataManage:

:

GetRecordset()

{

return(DataRecord);

}

boolCDataManage:

:

ConnectDatabase(CStringconstr)

{

DataConn->ConnectionString=(_bstr_t)constr;

//try

//{

DataConn->Open("","","",-1);

//}

//catch(...)

//{

//returnfalse;

//}

/*catch(_com_errore)///捕捉异常

{

CStringerrormessage;

errormessage.Format("连接数据库失败!

\r\n错误信息:

%s",e.ErrorMessage());

AfxMessageBox(errormessage);///显示错误信息

returnfalse;

}*/

returntrue;

}

boolCDataManage:

:

ExecSQL(CStringsql)

{

_bstr_tsqltext=sql;

try

{

DataConn->Execute(sqltext,NULL,adCmdText);

}

catch(_com_error&e)

{

AfxMessageBox(e.ErrorMessage(),0,0);

returnfalse;

}

returntrue;

}

//人才id使用日期加序号

CStringCDataManage:

:

AutoNumber(CStringsTable,CStringsFieldName,CStringcategoryName)

{

CStringsTempNewNumber,sNewNumber,sSQL,sMaxNumber,sOldNumber;

sSQL.Format("SELECTMAX(%s)as最大编号FROM%s",sFieldName,sTable);

if(Record1->State==adStateOpen)

Record1->raw_Close();

try{

Record1->Open((_bstr_t)sSQL,GetConn().GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

}

catch(_com_error&e)

{

//GetADOErrors(e);

//AfxMessageBox(e.ErrorMessage(),0,0);

}

intnYear,nMonth,nDay;

CStringsYear,sMonth,sDay;

CTimetTime;

tTime=tTime.GetCurrentTime();

nYear=tTime.GetYear();

nMonth=tTime.GetMonth();

nDay=tTime.GetDay();

sYear.Format("%d",nYear);

sDay.Format("%d",nDay);

sMonth.Format("%d",nMonth);

sYear=sYear.Mid

(2);

sDay=Padl(sDay,2,"0");

sMonth=Padl(sMonth,2,"0");

if(Record1->RecordCount<1)

{

sNewNumber.Format("%s%s%s-000000001",sYear,sMonth,sDay);

}

else

{

_variant_tbh=Record1->GetCollect("最大编号");

if(bh.vt==VT_EMPTY||bh.vt==VT_NULL)

{

sNewNumber.Format("%s%s%s-000000001",sYear,sMonth,sDay);

gotoend;

}

CStringsOldDate,sNewDate;

Record1->MoveFirst();

sOldNumber=(char*)(_bstr_t)Record1->GetCollect("最大编号");

sOldDate=sOldNumber.Mid(0,6);

sNewDate.Format("%s%s%s",sYear,sMonth,sDay);

if(sOldDate==sNewDate)

{

sMaxNumber=sOldNumber.Mid(7);

sTempNewNumber.Format("%d",(atoi(sMaxNumber)+1));

sNewNumber.Format("%s%s%s-%s",sYear,sMonth,sDay,Padl(sTempNewNumber,9,"0"));

}

else

sNewNumber.Format("%s%s%s-000000001",sYear,sMonth,sDay);

}

//}

end:

returnsNewNumber;

}

CStringCDataManage:

:

Padl(CStringn,intin,CStringc)

{

inti;

CStringresult=n;

for(i=in-1;i>=strlen(n);i--){

//result=strcat((LPSTR)(LPCTSTR)c,result);?

0-00-0000-00000000

result=c+result;

}

returnresult;

}

/*

CStringCDataManage:

:

AutoNumber(CStringsTable,CStringsFieldName,CStringfatherID,intcategory)

{

CStringsNewNumber,sSQL,sMaxNumber,sTempNewNumber;

sSQL.Format("SELECT*FROM%swherefatherID='%s'",sTable,fatherID);

if(Record1->State==adStateOpen)

Record1->raw_Close();

try

{

Record1->Open((_bstr_t)sSQL,GetConn().GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

}

catch(_com_error&e)

{

//GetADOErrors(e);

//AfxMessageBox(e.ErrorMessage(),0,0);

}

intcount=Record1->RecordCount;

sSQL.Format("SELECTMAX(%s)as最大编号FROM%swherefatherID='%s'",sFieldName,sTable,fatherID);

if(Record1->State==adStateOpen)

Record1->raw_Close();

try

{

Record1->Open((_bstr_t)sSQL,GetConn().GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

}

catch(_com_error&e)

{

//GetADOErrors(e);

//AfxMessageBox(e.ErrorMessage(),0,0);

}

if(count<1)

{

switch(category)

{

case0:

sNewNumber="A";break;

case1:

sNewNumber="01";break;

default:

sNewNumber="001";break;

}

}

else

{

Record1->MoveFirst();

sMaxNumber=(char*)(_bstr_t)Record1->GetCollect("最大编号");

charx;

intbig;

switch(category)

{

case0:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1