Rajarajan99
November 3rd, 2000, 11:17 PM
I tried to update the Oracle table with this following code but Its not working. Its a ATL MTS component.
STDMETHODIMP COrderEntryComp::PutChangeRTN(long *PTFPINid, BSTR bsChangetoRTN)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
HRESULT hr = 0;
HRESULT hr1 = 0;
HRESULT hr2 = 0;
USES_CONVERSION;
char str[250];
char str1[250];
_CommandPtr pCommand(L"ADODB.Command");
_ConnectionPtr pConn(L"ADODB.Connection");
if(!bsChangetoRTN)
return Error(OLESTR("Invalid Argument"), IID_IOrderEntryComp, E_INVALIDARG);
wsprintf(str,"update AMST101_PTFPIN set RTN = '\'%s\' where PTFPINid = %d", OLE2T(bsChangetoRTN), (int)*PTFPINid); //Connection String To Update RTN of AMST101_PTFPIN Table
hr = pConn->Open(_bstr_t("ams4dev"),_bstr_t("ams_app"),_bstr_t("ams4dev"),0);
if(!SUCCEEDED(hr))
{
m_spObjectContext->SetAbort();
return hr;
}
VARIANT v;
v.vt= VT_DISPATCH;
v.pdispVal = (IDispatch *) pConn;
pCommand->put_ActiveConnection(v);
pCommand->put_CommandText(SysAllocString(T2OLE(str)));
VARIANT vAffectedRec;
vAffectedRec.vt = VT_I4;
vAffectedRec.lVal = NULL;
hr1 = pCommand->Execute(NULL,NULL,0);
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
wsprintf(str,"update AMST103_PTFPIN_TH set RTN = '\'%s\' where PTFPINid = %d", OLE2T(bsChangetoRTN), (int)(*PTFPINid)); //Connection String to Update RTN of AMST103_PTFPIN_TH Table
pCommand->put_CommandText(SysAllocString(T2OLE(str1)));
hr2 = pCommand->Execute(NULL,NULL,0);
if(!SUCCEEDED(hr2))
{
return hr2;
m_spObjectContext->SetAbort();
}
m_spObjectContext->SetComplete();
return S_OK;
}
But This code is working, what will be the problem with the previous code?
STDMETHODIMP COrderEntryComp::PutChangeRTN(long PTFPINid, BSTR bsChangetoRTN)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
HRESULT hr = 0;
HRESULT hr1 = 0;
USES_CONVERSION;
_CommandPtr pCommand(L"ADODB.Command");
_ConnectionPtr pConn(L"ADODB.Connection");
if(!bsChangetoRTN)
return Error(OLESTR("Invalid Argument"), IID_IOrderEntryComp, E_INVALIDARG);
hr = pConn->Open(_bstr_t("ams4dev"),_bstr_t("ams_app"),_bstr_t("ams4dev"),0);
if(!SUCCEEDED(hr))
{
m_spObjectContext->SetAbort();
return hr;
}
VARIANT vAffectedRec;
vAffectedRec.vt = VT_I4;
vAffectedRec.lVal = NULL;
_bstr_t bt = L"update AMST101_PTFPIN set RTN = '";
_bstr_t bt1 = _bstr_t(bsChangetoRTN);
_bstr_t bt2 = L"' where PTFPINid = ";
_bstr_t bt3 = _bstr_t(PTFPINid);
bt += bt1+bt2+bt3;
BSTR bs;
bs = bt;
hr1 = pConn->Execute( bs, &vAffectedRec, adCmdText );
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
_bstr_t bt4 = L"update AMST103_PTFPIN_TH set RTN = '";
_bstr_t bt5 = _bstr_t(bsChangetoRTN);
_bstr_t bt6 = L"' where PTFPINid = ";
_bstr_t bt7 = _bstr_t(PTFPINid);
bt4 += bt5+bt6+bt7;
BSTR bs1;
bs1 = bt4;
hr1 = pConn->Execute( bs1, &vAffectedRec, adCmdText );
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
m_spObjectContext->SetComplete();
return S_OK;
}
STDMETHODIMP COrderEntryComp::PutChangeRTN(long *PTFPINid, BSTR bsChangetoRTN)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
HRESULT hr = 0;
HRESULT hr1 = 0;
HRESULT hr2 = 0;
USES_CONVERSION;
char str[250];
char str1[250];
_CommandPtr pCommand(L"ADODB.Command");
_ConnectionPtr pConn(L"ADODB.Connection");
if(!bsChangetoRTN)
return Error(OLESTR("Invalid Argument"), IID_IOrderEntryComp, E_INVALIDARG);
wsprintf(str,"update AMST101_PTFPIN set RTN = '\'%s\' where PTFPINid = %d", OLE2T(bsChangetoRTN), (int)*PTFPINid); //Connection String To Update RTN of AMST101_PTFPIN Table
hr = pConn->Open(_bstr_t("ams4dev"),_bstr_t("ams_app"),_bstr_t("ams4dev"),0);
if(!SUCCEEDED(hr))
{
m_spObjectContext->SetAbort();
return hr;
}
VARIANT v;
v.vt= VT_DISPATCH;
v.pdispVal = (IDispatch *) pConn;
pCommand->put_ActiveConnection(v);
pCommand->put_CommandText(SysAllocString(T2OLE(str)));
VARIANT vAffectedRec;
vAffectedRec.vt = VT_I4;
vAffectedRec.lVal = NULL;
hr1 = pCommand->Execute(NULL,NULL,0);
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
wsprintf(str,"update AMST103_PTFPIN_TH set RTN = '\'%s\' where PTFPINid = %d", OLE2T(bsChangetoRTN), (int)(*PTFPINid)); //Connection String to Update RTN of AMST103_PTFPIN_TH Table
pCommand->put_CommandText(SysAllocString(T2OLE(str1)));
hr2 = pCommand->Execute(NULL,NULL,0);
if(!SUCCEEDED(hr2))
{
return hr2;
m_spObjectContext->SetAbort();
}
m_spObjectContext->SetComplete();
return S_OK;
}
But This code is working, what will be the problem with the previous code?
STDMETHODIMP COrderEntryComp::PutChangeRTN(long PTFPINid, BSTR bsChangetoRTN)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
HRESULT hr = 0;
HRESULT hr1 = 0;
USES_CONVERSION;
_CommandPtr pCommand(L"ADODB.Command");
_ConnectionPtr pConn(L"ADODB.Connection");
if(!bsChangetoRTN)
return Error(OLESTR("Invalid Argument"), IID_IOrderEntryComp, E_INVALIDARG);
hr = pConn->Open(_bstr_t("ams4dev"),_bstr_t("ams_app"),_bstr_t("ams4dev"),0);
if(!SUCCEEDED(hr))
{
m_spObjectContext->SetAbort();
return hr;
}
VARIANT vAffectedRec;
vAffectedRec.vt = VT_I4;
vAffectedRec.lVal = NULL;
_bstr_t bt = L"update AMST101_PTFPIN set RTN = '";
_bstr_t bt1 = _bstr_t(bsChangetoRTN);
_bstr_t bt2 = L"' where PTFPINid = ";
_bstr_t bt3 = _bstr_t(PTFPINid);
bt += bt1+bt2+bt3;
BSTR bs;
bs = bt;
hr1 = pConn->Execute( bs, &vAffectedRec, adCmdText );
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
_bstr_t bt4 = L"update AMST103_PTFPIN_TH set RTN = '";
_bstr_t bt5 = _bstr_t(bsChangetoRTN);
_bstr_t bt6 = L"' where PTFPINid = ";
_bstr_t bt7 = _bstr_t(PTFPINid);
bt4 += bt5+bt6+bt7;
BSTR bs1;
bs1 = bt4;
hr1 = pConn->Execute( bs1, &vAffectedRec, adCmdText );
if(!SUCCEEDED(hr1))
{
return hr1;
m_spObjectContext->SetAbort();
}
m_spObjectContext->SetComplete();
return S_OK;
}