📄 datacore.cpp
字号:
catch(_com_error e)
{
*Succeed=VARIANT_FALSE;
}
CoUninitialize();
return S_OK;
}
STDMETHODIMP CDataCore::DocDateValid(BSTR DateID, int Delay, VARIANT_BOOL *succeecd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
_bstr_t sqlstr="SELECT DocDate FROM Delay";
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr;
_RecordsetPtr rs(__uuidof(Recordset));
rs->PutRefSource(cmd);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
rs->Open(vNull,vNull,adOpenDynamic,adLockOptimistic,adCmdText);
//AfxMessageBox("ss");
rs->MoveFirst();
_variant_t DocDate; //
//COleDateTime DateDoc;
//_variant_t PublishDate;
DocDate=rs->GetCollect("DocDate");
rs->Close();
//COleVariant vtime((char*)theRequestDate);
//vtime.ChangeType(VT_DATE);
COleDateTime DateDoc=RtnPublishDate(DateID);
//COleDateTime DateDoc(PublishDate);
//AfxMessageBox((_bstr_t)RtnPublishDate(DateID));
COleDateTime Now;
Now=COleDateTime::GetCurrentTime();
//AfxMessageBox((_bstr_t)Now.Format("%d,%M,%Y"));//= vtime;
COleDateTimeSpan span=Now-DateDoc;
//span.Format
long spanDays,Dayspans;
spanDays=span.GetDays();
int nowyear,docyear;
nowyear=Now.GetYear();
docyear=DateDoc.GetYear();
int Nowmonth,DocMonth;
long DaysofNow,DaysOfDoc;
Nowmonth=Now.GetMonth();
DocMonth=DateDoc.GetMonth();
// AfxMessageBox((_bstr_t)Nowmonth);
//AfxMessageBox((_bstr_t)"1");
//_bstr_t temp;
//itoa(nowyear,temp,10);
DaysofNow=GetDaysOfMonth(Nowmonth,nowyear);
DaysOfDoc=GetDaysOfMonth(DocMonth,docyear);
Dayspans=DaysofNow+DaysOfDoc;
//AfxMessageBox((_bstr_t)DocDate);
int cnt;
//cnt=DocDate.intVal;
cnt=Delay;
int j=1;
int pyear;
pyear=docyear;
int JMonth;
bool NeworOld=false;
int XMonth;
int k=0;
for(j=1;j<=cnt-2;j=j+1)
{
if(NeworOld==false)
{
JMonth=DocMonth+j;
}
else
{
JMonth=0;
JMonth=XMonth+k;
}
pyear=GetTheYear(pyear,JMonth);
if(JMonth>12)
{
XMonth=JMonth-12*(JMonth%12);
JMonth=XMonth;
NeworOld=true;
k=k+1;
}
else
{
XMonth=JMonth;
}
Dayspans=Dayspans+GetDaysOfMonth(XMonth,pyear);
}
//AfxMessageBox((_bstr_t)DaysofNow);
//AfxMessageBox((_bstr_t)DaysOfDoc);
//AfxMessageBox((_bstr_t)Dayspans);
//AfxMessageBox((_bstr_t)spanDays);
if(spanDays>Dayspans)
{
*succeecd=VARIANT_FALSE;//
}
else
{
*succeecd=VARIANT_TRUE;
}
CoUninitialize();
//return maxid;
return S_OK;
}
long CDataCore::GetDaysOfMonth(int month, int year)
{
long days;
switch(month)
{
case 1:
days=31;
break;
case 2:
if(year%4!=0)
{
days=28;
}
else
{
days=29;
}
break;
case 3:
days=31;
break;
case 4:
days=30;
break;
case 5:
days=31;
break;
case 6:
days=30;
break;
case 7:
days=31;
break;
case 8:
days=31;
break;
case 9:
days=30;
break;
case 10:
days=31;
break;
case 11:
days=30;
break;
case 12:
days=31;
break;
}
return days;
}
COleDateTime CDataCore::RtnPublishDate(BSTR ID)
{
_bstr_t sqlstr="select * from 暥彂 where 暥彂ID="+(_bstr_t)ID;
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr;
_RecordsetPtr rs(__uuidof(Recordset));
rs->PutRefSource(cmd);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_variant_t date;
try
{
//rs->Open(vNull,vNull,,adLockOptimistic,adCmdText);
rs->Open(vNull,vNull,adOpenStatic,adLockOptimistic,adCmdText);
//AfxMessageBox((_bstr_t)sqlstr);
if(rs->RecordCount>0)
{
rs->MoveFirst();
date=rs->GetCollect("発行日");
//AfxMessageBox((_bstr_t)date);
}
}
catch(_com_error e)
{
}
//COleDateTime PublicshDate;
//try
//{
COleDateTime PublicshDate(date);
//}
//catch(_com_error e)
//{
//}
//PublicshDate=(_bstr_t)date;
CoUninitialize();
return PublicshDate;
}
STDMETHODIMP CDataCore::GoodsDateValid(BSTR DateID, int Delay, VARIANT_BOOL *succeecd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
COleDateTime DateDoc=RtnGoodsDate(DateID);
COleDateTime Now;
Now=COleDateTime::GetCurrentTime();
COleDateTimeSpan span=Now-DateDoc;
long spanDays,Dayspans;
spanDays=span.GetDays();
int nowyear,docyear;
nowyear=Now.GetYear();
docyear=DateDoc.GetYear();
int Nowmonth,DocMonth;
long DaysofNow,DaysOfDoc;
Nowmonth=Now.GetMonth();
DocMonth=DateDoc.GetMonth();
DaysofNow=GetDaysOfMonth(Nowmonth,nowyear);
DaysOfDoc=GetDaysOfMonth(DocMonth,docyear);
Dayspans=DaysofNow+DaysOfDoc;
int cnt;
cnt=Delay;
int j=1;
int pyear;
pyear=docyear;
int JMonth;
bool NeworOld=false;
int XMonth;
int k=0;
for(j=1;j<=cnt-2;j=j+1)
{
if(NeworOld==false)
{
JMonth=DocMonth+j;
}
else
{
JMonth=0;
JMonth=XMonth+k;
//AfxMessageBox("test");
}
pyear=GetTheYear(pyear,JMonth);
if(JMonth>12)
{
XMonth=JMonth-12*(JMonth%12);
JMonth=XMonth;
NeworOld=true;
k=k+1;
}
else
{
XMonth=JMonth;
}
Dayspans=Dayspans+GetDaysOfMonth(XMonth,pyear);
}
//AfxMessageBox((_bstr_t)DaysofNow);
//AfxMessageBox((_bstr_t)DaysOfDoc);
//AfxMessageBox((_bstr_t)Dayspans);
//AfxMessageBox((_bstr_t)spanDays);
if(spanDays>Dayspans)
{
*succeecd=VARIANT_FALSE;
}
else
{
*succeecd=VARIANT_TRUE;
}
CoUninitialize();
//return maxid;
return S_OK;
}
COleDateTime CDataCore::RtnGoodsDate(BSTR ID)
{
_bstr_t sqlstr="select * from 暔昳忣曬 where 暔昳忣曬ID="+(_bstr_t)ID;
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr;
_RecordsetPtr rs(__uuidof(Recordset));
rs->PutRefSource(cmd);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_variant_t date;
try
{
rs->Open(vNull,vNull,adOpenStatic,adLockOptimistic,adCmdText);
//AfxMessageBox("ss");
if(rs->RecordCount>0)
{
rs->MoveFirst();
date=rs->GetCollect("判定日");
}
}
catch(_com_error e)
{
}
//try
//{
COleDateTime PublicshDate(date);
//}
//catch(_com_error e)
//{
//}
//PublicshDate=(_bstr_t)date;
CoUninitialize();
return PublicshDate;
}
int CDataCore::GetTheYear(int year, int month)
{
int Result;
int Month=12;
int Dmonth;
Dmonth=12-month;
if(Dmonth<0)
{
Result=year+1;
}
else
{
Result=year;
}
//CString str ;
//str.Format("%d",Result);
//AfxMessageBox(str);
return Result;
}
STDMETHODIMP CDataCore::Insert_into_GoodsInfo(VARIANT_BOOL Vaild, BSTR info, BSTR attribute, BSTR JudgeCode, BSTR DocID, int *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t vaild;
if(Vaild==VARIANT_TRUE)
{
vaild=(_bstr_t)"1";
}
else
{
vaild=(_bstr_t)"0";
}
_bstr_t sqlstr;
sqlstr="insert into 暔昳忣曬(暔昳忣曬桳岠,暔昳忣曬,儊乕僇乕,敾掕Code,暥彂ID) values(";
sqlstr=sqlstr+(_bstr_t)vaild+(_bstr_t)",'"+(_bstr_t)info+(_bstr_t)"','"+(_bstr_t)attribute+(_bstr_t)"',";
sqlstr=sqlstr+(_bstr_t)JudgeCode+(_bstr_t)","+(_bstr_t)DocID+(_bstr_t)")";
//*succeed=VARIANT_FALSE;
try
{
ConPtr->BeginTrans();
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr;
cmd->Execute(&vNull,&vNull,adCmdText);
_bstr_t sqltxt;
sqltxt="select @@identity as ID from 暔昳忣曬";
_CommandPtr command(__uuidof(Command));
command->ActiveConnection=ConPtr;
command->CommandText=sqltxt;
_RecordsetPtr rs(__uuidof(Recordset));
rs->PutRefSource(command);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
rs->Open(vNull,vNull,adOpenDynamic,adLockOptimistic,adCmdText);
//AfxMessageBox("ss");
rs->MoveFirst();
_variant_t MaxId;
MaxId=rs->GetCollect("ID");
//ConPtr->CommitTrans();
ConPtr->CommitTrans();
*succeed=MaxId.intVal;
}
catch(_com_error e)
{
ConPtr->RollbackTrans();
*succeed=0;
}
return S_OK;
}
STDMETHODIMP CDataCore::SortOutPut(BSTR OutPutID, BSTR SortID, VARIANT_BOOL *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
sqlstr="update 桝弌 set DetailID="+(_bstr_t)SortID+(_bstr_t)" where 桝弌ID="+OutPutID;
*succeed=VARIANT_FALSE;
try
{
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr;
cmd->Execute(&vNull,&vNull,adCmdText);
*succeed=VARIANT_TRUE;
}
catch(_com_error e)
{
*succeed=VARIANT_FALSE;
}
return S_OK;
}
STDMETHODIMP CDataCore::RtnMaxOutPutID(BSTR *MaxID)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*MaxID=MaxOutPutID();
return S_OK;
}
BSTR CDataCore::MaxOutPutID()
{
_bstr_t sqlstr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -