1,理论上支持任何数据库,以Acess为例,结构如下图body.clientHeight)this.width=body.clientHeight" src="http://www.338888.com/VCShare/images/upfile/2004615211236.jpg" onmousewheel="return yuzi_img(event,this)">
2,相关信息记录在ini或注册表中,其结构为:
[数据源]
DSN=TestODBC
UID=admin
PWD=
3,动态绑定一个类,更改GetDefaultConnect
CString CCharacterSet::GetDefaultConnect()
{
CSetODBC dlg;
CString strConnect = "ODBC;" + dlg.GetConnectStr();
return _T(strConnect);//动态取得ODBC
//return _T("ODBC;DSN=TestODBC");
}
4,使用
void CTestODBCDlg::OnRecordset()
{
CCharacterSet rs;
CSetODBC dlg;
rs.Open(dlg.GetWriteDBStyle());
{//增加记录
rs.AddNew();
rs.m_Name = "典韦";
rs.m_Age = 60;
rs.m_country = "魏";
rs.Update();
}
{//修改记录
rs.MoveFirst();
while(!rs.IsEOF())
{
if("典韦" == rs.m_Name)
{
rs.Edit();
rs.m_Age = 59;
rs.Update();
}
rs.MoveNext();
}
}
{//删除记录
rs.MoveFirst();
while(!rs.IsEOF())
{
if("典韦" == rs.m_Name)
{
rs.Delete();
rs.Requery();
}
rs.MoveNext();
}
}
{//显示所有记录
rs.MoveFirst();
CString strOutPut;
while(!rs.IsEOF())
{
CString strRecord;
rs.m_Name.TrimLeft();
rs.m_Name.TrimRight();
rs.m_country.TrimLeft();
rs.m_country.TrimRight();
strRecord.Format("Name = %s /tCountry = %s /tAge = %d /n",rs.m_Name,rs.m_country,rs.m_Age);
strOutPut += strRecord ;
rs.MoveNext();
}
AfxMessageBox(strOutPut);
}
rs.Close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~