何志丹

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();
}

posted on   闻缺陷则喜何志丹  阅读(5)  评论(0编辑  收藏  举报  
编辑推荐:
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~



点击右上角即可分享
微信分享提示