如何使用CRecordset类进行添加记录操作? 我用的是Access数据库,如何进行数据的添加、修改、删除操作啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AddNew(); //在表的末尾增加新记录Edit(); //修改Delete(); //删除 pRS1->AddNew(); if(dlg.m_Name.IsEmpty()) { AfxMessageBox("请嵌入姓名");return ; } pRS1->m_Address = dlg.m_Address; pRS1->m_EmailAddress = dlg.m_Email; pRS1->m_HomePhone = dlg.m_hPhone; pRS1->m_MobilePhone = dlg.m_mPhone; pRS1->m_Notes = dlg.m_note; pRS1->m_WorkPhone = dlg.m_oPhone; pRS1->m_Name = dlg.m_Name; pRS1->Update(); // refresh pRS1->Edit(); pRS1->Update(); 怎么样连接数据库呢?我用的是odbc 下面 的代码包括代码自动注册ocx 和用代码自动配置数据源还有怎样连接数据库,你自己看看吧不懂的地方可以给我留言.//////////////////////////////////////////////////// //手动注册*.Ocx控件 CString str; ::GetCurrentDirectory(100,str.GetBuffer(100)); str.ReleaseBuffer(); HMODULE hModule; str+="\\Msflxgrd.ocx"; HRESULT ret; hModule=::LoadLibrary(str); HRESULT (*DllRegisterServer)(void); DllRegisterServer=(HRESULT(*)(void))::GetProcAddress(hModule,"DllRegisterServer"); if(DllRegisterServer) { ret=DllRegisterServer(); if(ret!=S_OK) return FALSE; } ::FreeLibrary(hModule); //检查数据源是否注册,调用dll函数 if(!CheckIfDataSourceInstalled("镜头库")) { //注册数据源 CString strPath; GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); strPath.ReleaseBuffer (); int nPos; nPos=strPath.ReverseFind ('\\'); strPath=strPath.Left (nPos); CString strFile = strPath + "\\镜头库.mdb";//(这是你的数据库名吗?) //注册数据库 char* szDesc; int nlen; szDesc=new char[256]; sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","镜头库",strFile,strPath); //去除结尾的回车符 nlen = strlen(szDesc); for (int i=0; i<nlen; i++) { if (szDesc[i] == '?') szDesc[i] = '\0'; } if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc)) AfxMessageBox("SQLConfigDataSource Failed"); } 对话框不知道要创建多少个? 这该如何是好? 关于编译时提示数据库的一些枚举类型重复定义的问题。 看不下去了 如何将编辑框(Edit box)默认的I形光标改箭头光标 试用最简明的语言说明“同步”和“异步”的概念 在2000下就不行了 还请各位高手指点迷津,对未来该学的东西有一点迷惑。 纯ANSI C第三方库如何编译成vs2008版本? 哪儿有<<C++ programming language>>的电子版,100分奉上 vs2010+qt开发,生成的可执行文件运行有错 怎么控制DataGrid的要见与不可见 在listbox中,如何得到选定的项的内容?
Edit(); //修改
Delete(); //删除
if(dlg.m_Name.IsEmpty())
{
AfxMessageBox("请嵌入姓名");return ;
}
pRS1->m_Address = dlg.m_Address;
pRS1->m_EmailAddress = dlg.m_Email;
pRS1->m_HomePhone = dlg.m_hPhone;
pRS1->m_MobilePhone = dlg.m_mPhone;
pRS1->m_Notes = dlg.m_note;
pRS1->m_WorkPhone = dlg.m_oPhone;
pRS1->m_Name = dlg.m_Name; pRS1->Update();
// refresh
pRS1->Edit();
pRS1->Update();
和用代码自动配置数据源还有怎样连接数据库,你自己看看吧
不懂的地方可以给我留言.
////////////////////////////////////////////////////
//手动注册*.Ocx控件
CString str;
::GetCurrentDirectory(100,str.GetBuffer(100));
str.ReleaseBuffer();
HMODULE hModule;
str+="\\Msflxgrd.ocx";
HRESULT ret;
hModule=::LoadLibrary(str);
HRESULT (*DllRegisterServer)(void);
DllRegisterServer=(HRESULT(*)(void))::GetProcAddress(hModule,"DllRegisterServer");
if(DllRegisterServer)
{
ret=DllRegisterServer();
if(ret!=S_OK)
return FALSE;
}
::FreeLibrary(hModule); //检查数据源是否注册,调用dll函数
if(!CheckIfDataSourceInstalled("镜头库"))
{
//注册数据源
CString strPath;
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
strPath.ReleaseBuffer ();
int nPos;
nPos=strPath.ReverseFind ('\\');
strPath=strPath.Left (nPos);
CString strFile = strPath + "\\镜头库.mdb";//(这是你的数据库名吗?)
//注册数据库
char* szDesc;
int nlen;
szDesc=new char[256];
sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","镜头库",strFile,strPath);
//去除结尾的回车符
nlen = strlen(szDesc);
for (int i=0; i<nlen; i++)
{
if (szDesc[i] == '?')
szDesc[i] = '\0';
} if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))
AfxMessageBox("SQLConfigDataSource Failed");
}