📄 datacore.cpp
字号:
sqlstr=sqlstr+(_bstr_t)"values('"+(_bstr_t)InvoiceNO+(_bstr_t)"',#";
sqlstr=sqlstr+InvoiceDate+(_bstr_t)"#,"+(_bstr_t)OrgainID+(_bstr_t)",'";
sqlstr=sqlstr+(_bstr_t)title+(_bstr_t)"','"+(_bstr_t)ShippedPer+(_bstr_t)"',#";
sqlstr=sqlstr+(_bstr_t)DateOfShipment+(_bstr_t)"#,'";
sqlstr=sqlstr+(_bstr_t)PortOfShipment+(_bstr_t)"','"+(_bstr_t)Via;
sqlstr=sqlstr+(_bstr_t)"','"+(_bstr_t)PortOfDestination+(_bstr_t)"','";
sqlstr=sqlstr+(_bstr_t)TermsOfPayment+(_bstr_t)"','"+(bstr_t)OrderNo+(_bstr_t)"','";
sqlstr=sqlstr+(_bstr_t)CommercialTems+"','"+(_bstr_t)settleCurrency+(_bstr_t)"',";
sqlstr=sqlstr+(_bstr_t)bolCommecial+(_bstr_t)",'"+(_bstr_t)MarksAndNos+(_bstr_t)"','";
sqlstr=sqlstr+(_bstr_t)Freight+(_bstr_t)"','"+(_bstr_t)CountryOfOrigin+(_bstr_t)"',";
sqlstr=sqlstr+(_bstr_t)TotalPacking+(_bstr_t)","+(_bstr_t)ChargeManID+",'"+(_bstr_t)address+(_bstr_t)"','"+(_bstr_t)Notes+(_bstr_t)"')";
//AfxMessageBox(sqlstr);
try
{
cmd->ActiveConnection=ConPtr;
ConPtr->BeginTrans();
cmd->CommandText=sqlstr;
cmd->Execute(&vNull,&vNull,adCmdText);
//cmd->CommandText=sqltxt;
//cmd->Execute(&vNull,&vNull,adCmdText);
//AfxMessageBox("11");
//*SUCCEED=VARIANT_TRUE;
//ConPtr->Release();
_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();
*SUCCEED=MaxId.intVal;
}
catch(_com_error e)
{
ConPtr->RollbackTrans();
*SUCCEED=0;
//*SUCCEED=VARIANT_FALSE;
//ConPtr->Release();
}
return S_OK;
}
///////////////////////////////////////////////////
///////delete インボイス///////////////////////////
///////////////////////////////////////////////////
STDMETHODIMP CDataCore::Delete_Invoice(BSTR InvoiceID, VARIANT_BOOL *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*succeed=VARIANT_FALSE;
sqlstr="delete from 僀儞儃僀僗 where 僀儞儃僀僗ID='"+(_bstr_t)InvoiceID+(_bstr_t)"'";
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;
}
/////////////////////////////////////////////
////////////////update インボイス////////////
/////////////////////////////////////////////
STDMETHODIMP CDataCore::Update_Invoice(BSTR InvoiceNO, BSTR InvoiceDate, BSTR OrgainID,
BSTR title, BSTR ShippedPer, BSTR DateOfShipment,
BSTR PortOfShipment, BSTR Via, BSTR PortOfDestination,
BSTR TermsOfPayment, BSTR OrderNo, BSTR CommercialTems,
BSTR settleCurrency, VARIANT_BOOL InCommecial,
BSTR MarksAndNos, BSTR Notes, BSTR Freight, BSTR CountryOfOrigin,
BSTR TotalPacking, BSTR ChargeManID, BSTR address,BSTR InvoiceID,VARIANT_BOOL *SUCCEED)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*SUCCEED=VARIANT_FALSE;
_bstr_t UnCommecial;
if(InCommecial==VARIANT_TRUE)
{
UnCommecial="1";
}
else
{
UnCommecial="0";
}
sqlstr="update 僀儞儃僀僗 set 僀儞儃僀僗NO='"+(_bstr_t)InvoiceNO+(_bstr_t)"',敪峴擔=#";
sqlstr=sqlstr+(_bstr_t)InvoiceDate+(_bstr_t)"#,岦愭ID="+(_bstr_t)OrgainID;
sqlstr=sqlstr+(_bstr_t)",僞僀僩儖='"+(_bstr_t)title+(_bstr_t)"',ShippedPer='"+(_bstr_t)ShippedPer;
sqlstr=sqlstr+(_bstr_t)"',DateOfShipment=#"+(_bstr_t)DateOfShipment+(_bstr_t)"#,PortOfShipment='";
sqlstr=sqlstr+(_bstr_t)PortOfShipment+(_bstr_t)"',Via='"+(_bstr_t)Via+(_bstr_t)"',PortOfDestination='";
sqlstr=sqlstr+(_bstr_t)PortOfDestination+(_bstr_t)"',TermsOfPayment='"+(_bstr_t)TermsOfPayment+(_bstr_t)"',OrderNo='";
sqlstr=sqlstr+(_bstr_t)OrderNo+(_bstr_t)"',僀儞僐僞乕儉僘='"+(_bstr_t)CommercialTems+(_bstr_t)"',寛嵪捠壿='";
sqlstr=sqlstr+(_bstr_t)settleCurrency+(_bstr_t)"',僲乕僐儅乕僔儍儖="+(_bstr_t)UnCommecial+(_bstr_t)",MarksAndNos='";
sqlstr=sqlstr+(_bstr_t)MarksAndNos+(_bstr_t)"',Notes='"+(_bstr_t)Notes+(_bstr_t)"',Freight='"+(_bstr_t)Freight;
sqlstr=sqlstr+(_bstr_t)"',CountryOfOrigin='"+(_bstr_t)CountryOfOrigin+(_bstr_t)"',TotalPacking=";
sqlstr=sqlstr+(_bstr_t)TotalPacking+(_bstr_t)",桝弌扴摉幰ID="+(_bstr_t)ChargeManID+(_bstr_t)",栤崌愭='"+(_bstr_t)address;
sqlstr=sqlstr+(_bstr_t)"' where 僀儞儃僀僗ID="+(_bstr_t)InvoiceID;
//AfxMessageBox(sqlstr);
try
{
cmd->ActiveConnection=ConPtr;
ConPtr->BeginTrans();
cmd->CommandText=sqlstr;
cmd->Execute(&vNull,&vNull,adCmdText);
ConPtr->CommitTrans();
*SUCCEED=VARIANT_TRUE;
}
catch(_com_error e)
{
ConPtr->RollbackTrans();
*SUCCEED=VARIANT_FALSE;
}
return S_OK;
}
////////////////////////////////////
/////////insert into 向先///////////
////////////////////////////////////
STDMETHODIMP CDataCore::Insert_PastOrgian(VARIANT_BOOL Vaild, BSTR name, BSTR Content, BSTR address,
BSTR Link, BSTR TermsOfPayment, BSTR PortOfShipment, BSTR PortOfDestination,
BSTR Incoterms, int *SUCCEED)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*SUCCEED=0;
_bstr_t ENABLE;
if(Vaild==VARIANT_TRUE)
{
ENABLE="1";
}
else
{
ENABLE="0";
}
sqlstr="insert into 岦愭(岦愭桳岠,岦愭捠徧柤,岦愭,廧強,楢棈愭,TermsOfPayment,PortOfShipment,PortOfDestination,僀儞僐僞乕儉僘) values(";
sqlstr=sqlstr+(_bstr_t)ENABLE+(_bstr_t)",'"+(_bstr_t)name+(_bstr_t)"','"+(_bstr_t)Content+(_bstr_t)"','"+(_bstr_t)address;
sqlstr=sqlstr+(_bstr_t)"','"+(_bstr_t)Link+(_bstr_t)"','"+(_bstr_t)TermsOfPayment+(_bstr_t)"','"+(_bstr_t)PortOfShipment+(_bstr_t)"','"+(_bstr_t)PortOfDestination;
sqlstr=sqlstr+(_bstr_t)"','"+(_bstr_t)Incoterms+(_bstr_t)"')";
try
{
cmd->ActiveConnection=ConPtr;
ConPtr->BeginTrans();
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();
*SUCCEED=MaxId.intVal;
}
catch(_com_error e)
{
ConPtr->RollbackTrans();
*SUCCEED=0;
}
return S_OK;
}
////////////////////////////////
/////delete 向先///////////////
//////////////////////////////
STDMETHODIMP CDataCore::Delete_PastOrgian(BSTR ID, VARIANT_BOOL *SUCCEED)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*SUCCEED=VARIANT_FALSE;
sqlstr="delete from 岦愭 where 岦愭ID="+(_bstr_t)ID;
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;
}
////////////////////////////////////////////////////////////////
/////////////////////////////update 向先////////////////////////
////////////////////////////////////////////////////////////////
STDMETHODIMP CDataCore::Update_PastOrgian(VARIANT_BOOL Vaild, BSTR name, BSTR Content, BSTR address, BSTR Link,
BSTR TermsOfPayment, BSTR PortOfShipment, BSTR PortOfDestination,
BSTR Incoterms, BSTR ID, VARIANT_BOOL *SUCCEED)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*SUCCEED=VARIANT_FALSE;
_bstr_t ENABLE;
if(Vaild==VARIANT_TRUE)
{
ENABLE="1";
}
else
{
ENABLE="0";
}
sqlstr="update 岦愭 set 岦愭桳岠="+(_bstr_t)ENABLE+(_bstr_t)",岦愭捠徧柤='"+(_bstr_t)name+(_bstr_t)"',岦愭='";
sqlstr=sqlstr+(_bstr_t)Content+(_bstr_t)"',廧強='"+(_bstr_t)address+(_bstr_t)"',楢棈愭='"+(_bstr_t)Link+(_bstr_t)"',TermsOfPayment='";
sqlstr=sqlstr+(_bstr_t)TermsOfPayment+(_bstr_t)"',PortOfShipment='"+(_bstr_t)PortOfShipment+(_bstr_t)"',PortOfDestination='"+(_bstr_t)PortOfDestination+(_bstr_t)"',僀儞僐僞乕儉僘='";
sqlstr=sqlstr+(_bstr_t)Incoterms+(_bstr_t)"' where 岦愭ID="+(_bstr_t)ID;
//AfxMessageBox(sqlstr);
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;
}
/////Under this line is the code that exucute sql with trans///////////
//////////////////////////////////////////////////
//////exucte two sql command with trans//////////
////////////////////////////////////////////////
STDMETHODIMP CDataCore::ExcuteTwoSqlTran(BSTR sqlstr1, BSTR sqlstr2, VARIANT_BOOL *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_CommandPtr cmd(__uuidof(Command));
*succeed=VARIANT_FALSE;
//AfxMessageBox((_bstr_t)"succeed");
try
{
ConPtr->BeginTrans();
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr1;
cmd->Execute(&vNull,&vNull,adCmdText);
cmd->CommandText=sqlstr2;
cmd->Execute(&vNull,&vNull,adCmdText);
ConPtr->CommitTrans();
*succeed=VARIANT_TRUE;
}
catch(_com_error e)
{
*succeed=VARIANT_FALSE;
ConPtr->RollbackTrans();
}
CoUninitialize();
return S_OK;
}
///////////////////////////////////////////
//////excute three sql command with trans///
///////////////////////////////////////////
STDMETHODIMP CDataCore::ExcuteThreeSqlTran(BSTR sqlstr1, BSTR sqlstr2, BSTR sqlstr3, VARIANT_BOOL *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_CommandPtr cmd(__uuidof(Command));
*succeed=VARIANT_FALSE;
//AfxMessageBox((_bstr_t)"succeed");
try
{
ConPtr->BeginTrans();
cmd->ActiveConnection=ConPtr;
cmd->CommandText=sqlstr1;
cmd->Execute(&vNull,&vNull,adCmdText);
cmd->CommandText=sqlstr2;
cmd->Execute(&vNull,&vNull,adCmdText);
cmd->CommandText=sqlstr3;
cmd->Execute(&vNull,&vNull,adCmdText);
ConPtr->CommitTrans(); ////////////////commit the datachange
*succeed=VARIANT_TRUE;
}
catch(_com_error e)
{
*succeed=VARIANT_FALSE;
ConPtr->RollbackTrans(); /////////when error rollback the data
}
CoUninitialize();
return S_OK;
}
///////////////////////////////////////////
////Read the Max ID from MaxInvoiceID//////
///////////////////////////////////////////
CString CDataCore::RtnMaxInvoiceID()
{
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection=ConPtr;
cmd->CommandText="select * from MaxInvoiceId";
_RecordsetPtr rs(__uuidof(Recordset));
rs->PutRefSource(cmd);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
rs->Open(vNull,vNull,adOpenDynamic,adLockOptimistic,adCmdText);
rs->MoveFirst();
_variant_t MaxId;
MaxId=rs->GetCollect("MaxInvoiceID");
CString maxid;
maxid=(LPCTSTR)(_bstr_t)MaxId;
CoUninitialize();
return maxid;
}
BSTR CDataCore::RtnInvoidID()
{
_bstr_t sqlstr="SELECT max(僀儞儃僀僗ID) as ID FROM 僀儞儃僀僗";
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 MaxId;
MaxId=rs->GetCollect("ID");
BSTR maxid;
maxid=(_bstr_t)MaxId;
CoUninitialize();
return maxid;
}
STDMETHODIMP CDataCore::OutMaxInvoiceID(BSTR *ID)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*ID=RtnInvoidID();
return S_OK;
}
STDMETHODIMP CDataCore::Insert_Users(BSTR usersname, BSTR pwd, BSTR level, int *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*succeed=0;
sqlstr="insert into users(Username,pwd,levels) values('";
sqlstr=sqlstr+(_bstr_t)usersname+(_bstr_t)"','"+(_bstr_t)pwd+(_bstr_t)"','"+(_bstr_t)level+(_bstr_t)"')";
//AfxMessageBox(sqlstr);
try
{
cmd->ActiveConnection=ConPtr;
ConPtr->BeginTrans();
cmd->CommandText=sqlstr;
cmd->Execute(&vNull,&vNull,adCmdText);
_bstr_t sqltxt;
sqltxt="select @@identity as ID from users";
_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();
*succeed=MaxId.intVal;
}
catch(_com_error e)
{
ConPtr->RollbackTrans();
*succeed=0;
}
return S_OK;
}
STDMETHODIMP CDataCore::Update_Users(BSTR username, BSTR pwd, BSTR level, BSTR id, VARIANT_BOOL *succeed)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CoInitialize(NULL);
_CommandPtr cmd(__uuidof(Command));
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_t sqlstr;
*succeed=VARIANT_FALSE;
sqlstr="update users set Username='"+(_bstr_t)username+(_bstr_t)"',pwd='"+(_bstr_t)pwd+(_bstr_t)"',levels='"+(_bstr_t)level;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -