// JP opened flex table

Click to See Complete Forum and Search --> : Problem in Updating the Oracle Database using ADO


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;

}

//JP added flex table