опубликован 18-04-2001 17:43 MSK
А именно, кто работал с БД посредствам классов CGXDynamicRecordset и CGXRecordWnd? Интересует следующее:
1. Надо редактить несколько БД. Есть диалог, в ней список эти БД и грид, т.е. выбираешь в списке какую-то – она выводится в грид, можно редактить. Есть следующее:
class CMyRecordset : public CGXDynamicRecordset
class CMyODBCWnd : public CGXRecordWnd
{…
void DoRecodrset(CString m_strQuery);
CMyRecordset m_gxquerySet;
…}
void CMyODBCWnd::DoRecodrset(CString m_strQuery)
{ CString strQuery = _T("SELECT * FROM ");
strQuery += m_strQuery;
m_gxquerySet.SetSqlQuery(strQuery);
SetRecordset(&m_gxquerySet);}В классе диалога есть CMyODBCWnd m_wndGrid;
По выбору из списка я делаю следующее:
void CRefDlg::OnDblclkList1()
{…
if(m_wndGrid.m_gxquerySet.IsOpen()) //m_wndGrid связан с гридом
m_wndGrid.m_gxquerySet.Close();
^^^^ - этим я пытаюсь обновить рез. набор
m_wndGrid.DoRecodrset(strSrc); //strSrc – генерится при выборе в списке
m_wndGrid.OnInitialUpdate();
m_wndGrid.Redraw();
…}
Далее картина такая: в инитдиалог я сразу открываю таблицу, потом выбираю другую – она открывается, а при выборе следующей – мессага “To few parametres. Expected 1” и вылетает.
Я так понимаю, что я криво обновляю рез. набор в ф-ции OnDblclkList1(). Но как это делать с CGXDynamicRecordset иначе. Куда рыть? Кто иначе это реализовывал?
2. Когда открывается таблица с меньшим кол-вом строк, остаются пустые строки. Redraw и Update’ы не помогают, но обновляется после сортировки. Как иначе обновлять таблицу?
PS. Хотелось бы услышать не простые рекомендации, а конкретные варианты или даже примеры.
PSS. Если кто наработал опыт с OG7.0 хотелось бы ним пообщаться, а то мне видимо еще предстоят мучения. Пишите на dimand99@mail.ru
Заранее благодарен.