IProject;

1. GetProjectList
HRESULT dBCountProjects ([in]long m_lStmtHandle,[out]long* m_lTotalProjects, [out]long* Retval )
{
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	sprintf(cmd,"update tWMproject set projectID= projectID where projectID=projectID");

};


HRESULT dBGetProjectList ([in]long m_lStmthandle,[in]long m_lTotalProjects, [out]VARIANT* m_pvarProjectList, 
 			[out]long* Retval )
{
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	sprintf(cmd,"select projectid,projectname from tWMproject");	
	//output in variant
	//bind two columns
};

2. SaveProjectSummary
HRESULT dBCheckProjectName ([in]long m_lStmthandle,[in]BSTR m_bProjectName,[out]BOOL* m_oExists, [out]long* Retval)
{
//	checks for preexistance of the project's name 
	SQLRETURN retval;
	SQLHSTMT hstmt;
	LPTSTR pProjectName;
	m_oExists=true;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	pProjectName=OLE2A(m_bProjectName);
	sprintf(cmd,"select * from tWMproject where projectname='%s'",pProjectName);
	retval = SQLExecDirect(hstmt,(SQLCHAR*)cmd,SQL_NTS);
	if (retval==SQL_NO_DATA_FOUND)
		{
			*m_oExists=false;
			return S_OK;
		};
};


HRESULT dBSaveProjectDetails ([in]long m_lStmthandle,[in]VARIANT* m_pvarProject, [out]long* Retval)
{
//	save the details of newly entered project or a project edited by project manager
	SQLRETURN retval;
	SQLHSTMT hstmt;
	LPTSTR pProjectName;
	m_oExists=true;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	pProjectName=OLE2A(m_bProjectName);
	sprintf(cmd,"insert into tWMproject values('%s','%s','%s',%d,'%s','%s','%s',%d)",pProjectID,pProjectName,pProjectDesc,m_lprojectmanager,pStatus,pSdate,pEdate,m_lautomatic);
	retval = SQLExecDirect(hstmt,(SQLCHAR*)cmd,SQL_NTS);
		
};

3. GetRoutingInformation
HRESULT dBCountRecords ([in]long  m_lStmtHandle,[out]long* m_lTotalrecords, [out]long* Retval)
{
// 	To count the total no of routing records 
	SQLRETURN retval;
	SQLHSTMT hstmt;
	LPTSTR pProjectName;
	m_oExists=true;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	pProjectName=OLE2A(m_bProjectName);
	//sprintf(cmd,"insert into tWMproject values('%s','%s','%s',%d,'%s','%s','%s',%d)",pProjectID,pProjectName,pProjectDesc,m_lprojectmanager,pStatus,pSdate,pEdate,m_lautomatic);
	retval = SQLExecDirect(hstmt,(SQLCHAR*)cmd,SQL_NTS);		

};

HRESULT dBGetRoutingRecordList ([in]long  m_lStmtHandle,[out]VARIANT* m_pvarRouteRecordList,[out]long* Retval)
{
//	return route record list 
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	sprintf(cmd,"select projectid,senderid,senderroleid,receiverid,receiverroleid,objecttype,componenttype from tWMrouting");	
	//output in variant
	//bind 6 columns
};

4. GetProjectSummary
HRESULT dBGetProjectSummary ([in]long m_lStmtHandle,[in]BSTR m_bProjectID,[out]VARIANT* m_pvarProject, [out]long* Retval)
{
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	LPTSTR pProjectID;
	pProjectName=OLE2A(m_bProjectID);
	sprintf(cmd,"select projectname,projectDesc,ProjectManagerID,status,Startdate,Enddate,Automatic from tWMproject where projectID='%s'",pProjectID);	
	//output in variant
	//bind 7 columns
	
};

5. SaveRoutingInformatoin

HRESULT dBStoreRoutes ([in]long m_lStmtHandle,[in]VARIANT* m_pvarRouteRecord, [out]long* Retval)
{
		//Input in variant
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	
	pProjectName=OLE2A(m_bProjectID);
	sprintf(cmd,"Insert into tWMrouting values('%s',%d,%d,%d,%d,%d,%d)");	

	
};




IObject:

1. SaveBugReport
HRESULT dBSaveBugReport ([in]long m_lStmtHandle,[in] BSTR m_bProjectID, [in] VARIANT* m_varBugReport,[out] long* Retval)
{
		//Input in variant
	SQLRETURN retval;
	SQLHSTMT hstmt;
	hstmt=(void*)m_lStmtHandle;
	char cmd[256]; 
	
	pProjectName=OLE2A(m_bProjectID);
	sprintf(cmd,"Insert into tWMbugreport values('%s',%d,%d,'%s','%s','%s')");	

};

2. GetBugReport
HRESULT dBGetBugReport ([in]long m_lDbHandle,[in] BSTR m_bModuleID, [in] BSTR m_bProjectID, 
[out]VARIANT* m_pvarBugReport, [out]long* Retval)
{

};

3. GetObjectRecipient
HRESULT dBGetObjectRecipient ([in]long m_lStmtHandle,[in] BSTR m_bProjectID, [in,out]VARIANT* m_pvarRouteData, 
[out]long* Retval)
{
//
};


