⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datacore.cpp

📁 an Atl_com use to read or write an mdb file which use ado.Japanese software develop
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	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 + -