Проблема при работе с Datagrid

  • Автор темы Alex_Bamuner
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alex_Bamuner

#1
Всем привет!
Второй день бъюсь над одним и тем же. Работаю в Visual C++ 6.0. Подключаю базу .mdb. Для отображения данных использую Microsoft DataDrid Control и Microsoft ADO Data Control. Код для отображения базы вполне прост и работоспособен:

CAdodc ca;
m_ca.Create(_T("STATIC"), "База данных", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 111);
ca.ShowWindow(SW_HIDE);
сa.SetConnectionString("DSN=REP");
ca.SetRecordSource("SELECT * FROM Report.TRKREP");
ca.Refresh();
cr=m_ca.GetRecordset();
cmg.Create(_T("STATIC"), "База данных", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 1111);
cmg.CDataGrid::SetCaption("База данных");
cmg.SetRefDataSource(cr);
cmg.SetRowHeight(17);
cmg.UpdateData();

В итоге на формочке появляется красивый DataGrid с данными из базы.
Но встал вопрос о редактировании данных и занесении изменений обратно в базу. Вот это-то и не соображу как сделать! Если просто отредактировать ячейки и закрыть формочку, то вылезает сообщение "Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения".
Расскажите, а лучше - покажите :D , как мне делать обновление данных. Очень нужно! ОТЗОВИТЕСЬ!!!
Спасибо!

Да, и вот что еще забыл сказать. Для обновления я вызываю CDataDrid::SetDataChanged(true);
С базой dbf все работает четко. Но стоит заменить её на mdb, как начинает вылетать это сообщение о строке обновления. Вот. ;)
 
A

Alex_Bamuner

#3
Да я, собственно, и нашел на firststeps этот способ просматривать данные из базы. И с dbf всё работает шикарно. Но при попытке сделать тоже самое с mdb - ошибка, о которой я написал.
Если знаете, как надо сделать,что дописать для случая с mdb - подскажите!!!!
 
A

Alex_Bamuner

#4
Ну, господа программисты! нужели никто не работал с такими вещами? Задача-то кажется очень распространенной - заносить изменения в базу из DataGrid Control. Очень рассчитываю на вашу помощь, так как у меня идеи закончились... :blink:
 
Статус
Закрыто для дальнейших ответов.