Запись в локальную БД Access97 под VisualC++
От: Apach Россия  
Дата: 03.07.03 20:45
Оценка:
Hi!
Подскажите новичку как в среде MS Visual C++ 6.0 наиболее просто добавить запись в уже существующую таблицу локальной базы данных .mdb.Таблица Employee состоит из 3х полей-счетчик,строка, число. В моем варианте происходит зависание системы при попытки сохранения в БД:
///////////////////////////////////
CString sPath("base.mdb");
CDaoDatabase db;
db.Open(sPath);
CDaoRecordset rs(&db);
CString SQLstr;

SQLstr.Format("SELECT * FROM Employee);
rs.Open(dbOpenDynaset,SQLstr);
{
rs.AddNew();
COleVariant vt;

vt.vt = VT_BSTR;
vt.bstrVal = (BSTR)((LPCSTR) myCStringValue);
recSet.SetFieldValue("EmpName",vt);

vt.vt = VT_I4;
vt.intVal = myIntValue;
rc.SetFieldValue("SubID",vt);
rs.Update();
}
rs.Close();
db.Close();
///////////////////////////////////////
Где может быть ошибка? Прав ли я в том,что пытаюсь работать через Dao?
Спасибо.

04.07.03 12:52: Перенесено модератором из 'C/C++' — ПК
Re: Запись в локальную БД Access97 под VisualC++
От: Nata1111 Латвия https://smartprogress.do/user/25453/
Дата: 10.07.03 07:13
Оценка:
Здравствуйте, Apach, Вы писали:

A>Hi!

A>Подскажите новичку как в среде MS Visual C++ 6.0 наиболее просто добавить запись в уже существующую таблицу локальной базы данных .mdb.Таблица Employee состоит из 3х полей-счетчик,строка, число. В моем варианте происходит зависание системы при попытки сохранения в БД:
[ skipped]

Правильный код такой (проверенный)

CString sPath("C:\\\\base.mdb");
CString myCStringValue("Vasja");
int myIntValue=5;

CDaoDatabase db;

db.Open((LPCTSTR)sPath);

CDaoRecordset rs(&db);
CString SQLstr;

SQLstr.Format("SELECT * FROM Employee");
rs.Open(dbOpenDynaset,SQLstr);
{
rs.AddNew();
COleVariant vt;

vt.vt = VT_BSTR;
vt.bstrVal = (BSTR)((LPCSTR) myCStringValue);
rs.SetFieldValue("EmpName",vt);

vt.vt = VT_I4;
vt.intVal = myIntValue;
rs.SetFieldValue("SubID",vt);
rs.Update();
}
rs.Close();
db.Close();


A>Где может быть ошибка? Прав ли я в том,что пытаюсь работать через Dao?

A> Спасибо.

В новых приложениях лучше использовать ADO (так рекомендует Microsoft ). Ну а для старых, где уже часть функциональности реализована на DAO, вполне можно. Надо отметить, что DAO MFC, входящая в состав VC++6 не умеет работать с форматом Access 2000. Может быть это откорректировано в VC++7, но я не проверяла.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.