Page 1 of 1

Resetting the DataSource not working

Posted: Tue Oct 06, 2009 8:48 pm
by 15047219
I am try to change the SQL command at runtime and when I update the DataSource I get nothing. Below is my functions:

PS: If need be I can upload the sample project and a small data file.

//|----------------------------------------------------------------------------
void CTest_TChart_DB_Load_vADlg::OnBnClickedDisconnectbtn()
{
m_Chart.Series(0).SetDataSource((_variant_t)"");
m_Chart.Series(1).SetDataSource((_variant_t)"");
}
//|----------------------------------------------------------------------------
void CTest_TChart_DB_Load_vADlg::OnBnClickedDbgbutton()
{
CString aConnStr = "Provider=SQLOLEDB.1;"
"Integrated Security=SSPI;"
"Initial Catalog=Loaded_5k_4Quad_1Chart;"
"Data Source=(local);"
"Use Procedure for Prepare=1;"
"Auto Translate=True;"
"Packet Size=4096;"
"Workstation ID=BIGRED-64BIT;"
"Use Encryption for Data=False;"
"Tag with column collation when possible=False;";

CString UserStr = _T("");
CString PasswordStr = _T("");

CString SelectTargetSqlStr = _T("SELECT * FROM viewTargetCellData");
CString SelectWasteSqlStr = _T("SELECT * FROM viewWasteCellData" );

//| ADO
ADODB::_ConnectionPtr m_Connection;
ADODB::_RecordsetPtr m_TargetRecordSet;
ADODB::_RecordsetPtr m_WasteRecordSet;

HRESULT hr;
CString ErrStr;
try
{
hr = m_Connection.CreateInstance(__uuidof(ADODB::Connection));
if (FAILED(hr))
{
return;
}

hr = m_TargetRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

hr = m_WasteRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

}
catch(_com_error )
{
//BASIC_TRACEFUNCTION_MSG( static_cast<char *>(e.Description()) );
}
catch(...)
{
//BASIC_TRACEFUNCTION_MSG( "Unhandled Exception" );
}

hr = m_Connection->Open( aConnStr.AllocSysString(),
UserStr.AllocSysString(),
PasswordStr.AllocSysString(),
ADODB::adConnectUnspecified);

if (FAILED(hr))
return;

//| Open the Target RecordSet
hr = m_TargetRecordSet->Open( SelectTargetSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenForwardOnly,
ADODB::adLockReadOnly,
ADODB::adCmdText );
if (FAILED(hr))
return;

//| Open the Waste RecordSet
hr = m_WasteRecordSet->Open( SelectWasteSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenForwardOnly,
ADODB::adLockReadOnly,
ADODB::adCmdText );

if (FAILED(hr))
return;

m_Chart.Series(1).SetDataSource((_variant_t)m_TargetRecordSet);
m_Chart.Series(1).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(1).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(0).SetDataSource((_variant_t)m_WasteRecordSet);
m_Chart.Series(0).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(0).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(1).CheckDataSource();
m_Chart.Series(0).CheckDataSource();

//DisplaySourceStr();


return;
}
//|----------------------------------------------------------------------------

Re: Resetting the DataSource not working

Posted: Wed Oct 07, 2009 8:58 am
by yeray
Hi John Francis,

Yes, it would be helpful if you could send us a simple but complete example we can run as-is here.

Thanks in advance.

Re: Resetting the DataSource not working

Posted: Thu Oct 08, 2009 4:13 pm
by 15047219
I got it fixed here are the functions:

Also, I try to attach files but extension h is not allowed ... what is allowed and how would you like me to transfer the project to you?

//|----------------------------------------------------------------------------
void CTest_TChart_DB_Load_vADlg::DisplaySourceStr(void)
{
VARIANT vrDataSrc = m_Chart.Series(0).GetDataSource();
ADODB::_RecordsetPtr aRecordSet = (_variant_t)vrDataSrc;
_variant_t var;
var = aRecordSet->GetSource();
CString strSource = (_bstr_t(var.bstrVal));
// Source String
CString sourcestr;
sourcestr.Format("Source: %s", strSource );
m_Source.SetWindowText( sourcestr );

_variant_t varConnect;
varConnect = aRecordSet->GetActiveConnection();
ADODB::_ConnectionPtr aConnection = (_variant_t)varConnect;

CString strConn = aConnection->GetConnectionString();

CString connstr;
connstr.Format("Connection String:\n %s", strConn);
int count = connstr.Replace( _T(";"), _T(";\r\n") );



m_ConnEditCtrl.SetWindowText( connstr );
}
//|----------------------------------------------------------------------------
void CTest_TChart_DB_Load_vADlg::OnBnClickedDisconnectbtn()
{
m_Chart.Series(0).SetDataSource((_variant_t)"");
m_Chart.Series(1).SetDataSource((_variant_t)"");
}
//|----------------------------------------------------------------------------
void CTest_TChart_DB_Load_vADlg::OnBnClickedDbgbutton()
{
CString aConnStr = "Provider=SQLOLEDB.1;"
"Integrated Security=SSPI;"
"Initial Catalog=LoadTesting_5K_1Chart;"
"Data Source=(local);"
"Use Procedure for Prepare=1;"
"Auto Translate=True;"
"Packet Size=4096;"
"Workstation ID=BIGRED-64BIT;"
"Use Encryption for Data=False;"
"Tag with column collation when possible=False;";

CString UserStr = _T("");
CString PasswordStr = _T("");

CString SelectTargetSqlStr = _T("SELECT * FROM viewTargetCellData");
CString SelectWasteSqlStr = _T("SELECT * FROM viewWasteCellData" );

//| ADO
ADODB::_ConnectionPtr m_Connection;
ADODB::_RecordsetPtr m_TargetRecordSet;
ADODB::_RecordsetPtr m_WasteRecordSet;

HRESULT hr;
CString ErrStr;
try
{
hr = m_Connection.CreateInstance(__uuidof(ADODB::Connection));
if (FAILED(hr))
{
return;
}

hr = m_TargetRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

hr = m_WasteRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

}
catch(_com_error )
{
//BASIC_TRACEFUNCTION_MSG( static_cast<char *>(e.Description()) );
}
catch(...)
{
//BASIC_TRACEFUNCTION_MSG( "Unhandled Exception" );
}

hr = m_Connection->Open( aConnStr.AllocSysString(),
UserStr.AllocSysString(),
PasswordStr.AllocSysString(),
ADODB::adConnectUnspecified);

if (FAILED(hr))
return;

//| Open the Target RecordSet
hr = m_TargetRecordSet->Open( SelectTargetSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenKeyset,
ADODB::adLockReadOnly,
ADODB::adCmdText );
if (FAILED(hr))
return;

//| Open the Waste RecordSet
hr = m_WasteRecordSet->Open( SelectWasteSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenKeyset,
ADODB::adLockReadOnly,
ADODB::adCmdText );

if (FAILED(hr))
return;


m_Chart.Series(1).SetDataSource((_variant_t)m_TargetRecordSet.GetInterfacePtr());
m_Chart.Series(1).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(1).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(0).SetDataSource((_variant_t)m_WasteRecordSet.GetInterfacePtr());
m_Chart.Series(0).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(0).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(1).CheckDataSource();
m_Chart.Series(0).CheckDataSource();

DisplaySourceStr();


return;
}
//|----------------------------------------------------------------------------


void CTest_TChart_DB_Load_vADlg::OnBnClickedDbgbutton2()
{
CString aConnStr = "Provider=SQLOLEDB.1;"
"Integrated Security=SSPI;"
"Initial Catalog=LoadTesting_400K_4Chart;"
"Data Source=(local);"
"Use Procedure for Prepare=1;"
"Auto Translate=True;"
"Packet Size=4096;"
"Workstation ID=BIGRED-64BIT;"
"Use Encryption for Data=False;"
"Tag with column collation when possible=False;";

CString UserStr = _T("");
CString PasswordStr = _T("");

CString SelectTargetSqlStr = _T("SELECT * FROM viewTargetCellData");
CString SelectWasteSqlStr = _T("SELECT * FROM viewWasteCellData" );

//| ADO
ADODB::_ConnectionPtr m_Connection;
ADODB::_RecordsetPtr m_TargetRecordSet;
ADODB::_RecordsetPtr m_WasteRecordSet;

HRESULT hr;
CString ErrStr;
try
{
hr = m_Connection.CreateInstance(__uuidof(ADODB::Connection));
if (FAILED(hr))
{
return;
}

hr = m_TargetRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

hr = m_WasteRecordSet.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
throw _com_error(hr);
}

}
catch(_com_error )
{
//BASIC_TRACEFUNCTION_MSG( static_cast<char *>(e.Description()) );
}
catch(...)
{
//BASIC_TRACEFUNCTION_MSG( "Unhandled Exception" );
}

hr = m_Connection->Open( aConnStr.AllocSysString(),
UserStr.AllocSysString(),
PasswordStr.AllocSysString(),
ADODB::adConnectUnspecified);

if (FAILED(hr))
return;

//| Open the Target RecordSet
hr = m_TargetRecordSet->Open( SelectTargetSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenKeyset,
ADODB::adLockReadOnly,
ADODB::adCmdText );
if (FAILED(hr))
return;

//| Open the Waste RecordSet
hr = m_WasteRecordSet->Open( SelectWasteSqlStr.AllocSysString(),
m_Connection.GetInterfacePtr(),
ADODB::adOpenKeyset,
ADODB::adLockReadOnly,
ADODB::adCmdText );

if (FAILED(hr))
return;


m_Chart.Series(1).SetDataSource((_variant_t)m_TargetRecordSet.GetInterfacePtr());
m_Chart.Series(1).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(1).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(0).SetDataSource((_variant_t)m_WasteRecordSet.GetInterfacePtr());
m_Chart.Series(0).GetXValues().SetValueSource( "FwdSc_Peak" );
m_Chart.Series(0).GetYValues().SetValueSource( "Pmt_0_Peak" );

m_Chart.Series(1).CheckDataSource();
m_Chart.Series(0).CheckDataSource();

DisplaySourceStr();


return;
}

Re: Resetting the DataSource not working

Posted: Tue Oct 13, 2009 11:34 am
by yeray
Hi John Francis,
jfrancis wrote:Also, I try to attach files but extension h is not allowed ... what is allowed and how would you like me to transfer the project to you?
Have you tried attaching the files into a zip file? Also you can provably change the extension to attach the files and tell us the changes made.
Finally, if you find problems on the size limit for the attachment in this forums, you can either post your files at news://www.steema.net/steema.public.attachments newsgroup or at our upload page.