网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Visual C++中的ODBC编程实例
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
dSet类对象的初始化。缺省数据源由GetDefaultConnect()函数获得。也可以提供所需要的SQL语句,并以它来调用CRecordSet::Open()函数,例如:Super_ESSet.Open(AFX_DATABASE_USE_DEFAULT,strSQL);
  如果没有指定参数,程序则使用缺省的SQL语句,即对在GetDefaultSQL()函数中指定的SQL语句进行操作:
  CString CSuper_ESSet::GetDefaultSQL()
  {return _T(″[BsicData],[MinSize]″);}
  对于GetDefaultSQL()函数返回的表名,对应的缺省操作是SELECT语句,即:
  SELECT * FROM BasicData,MainSize
  在查询过程中,也可以利用CRecordSet的成员变量m_strFilter和m_strSort来执行条件查询和结果排序。m_strFilter为过滤字符串,存放着SQL语句中WHERE后的条件串;m_strSort为排序字符串,存放着SQL语句中ORDER BY后的字符串。如:
  Super_ESSet.m_strFilter=″TYPE=‘电动机’″;
  Super_ESSet.m_strSort=″VOLTAGE″;
  Super_ESSet.Requery();
  对应的SQL语句为:
  SELECT * FROM BasicData,MainSize
  WHERE TYPE=‘电动机’
  ORDER BY VOLTAGE
  除了直接赋值给m_strFilter以外,还可以使用参数化。利用参数化可以更直观、更方便地完成条件查询任务。使用参数化的步骤如下:
  S声明参变量:
  CString p1;
  float p2;
  S在构造函数中初始化参变量:
  p1=_T(″″);
  p2=0.0f;
  m_nParams=2;
  S将参变量与对应列绑定:
  pFX->SetFieldType(CFieldExchange::param)
  RFX_Text(pFX,_T(″P1″),p1);
  RFX_Single(pFX,_T(″P2″),p2);
  完成以上步骤后就可以利用参变量进行条件查询:
  m_pSet->m_strFilter=″TYPE=? AND VOLTAGE=?″;m_pSet->p1=″电动机″;
  m_pSet->p2=60.0;
  m_pSet->Requery();
  参变量的值按绑定的顺序替换查询字串中的“?”通配符。
  如果查询的结果是多条记录,可以用CRecordSet类的函数Move()、MoveNext()、MovePrev()、MoveFirst()和MoveLast()来移动光标。
2.增加记录
  增加记录使用AddNew()函数,要求数据库必须是以允许增加的方式打开:
  m_pSet->AddNew(); //在表的末尾增加新记录
  m_pSet->SetFieldNull(&(m_pSet->m_type), FALSE);
  m_pSet->m_type=″电动机″;
  ……
  //输入新的字段值
  m_pSet->Update();
  //将新记录存入数据库
  m_pSet->Requery();
  //重建记录集
  3.删除记录
  可以直接使用Delete()函数来删除记录,并且在调用Delete()函数之后不需调用Update()函数:
  m_pSet->Delete();
  if (!m_pSet->IsEOF())
  m_pSet->MoveNext();
  else
  m_pSet->MoveLast();
  4.修改记录
  修改记录使用Edit()函数:
  m_pSet->Edit();
  //修改当前记录
  m_pSet->m_type=″发电机″;
  //修改当前记录字段值
   ……
  m_pSet->Update(); //将修改结果存入数据库
  m_pSet->Requery();
  5.撤消操作
  如果用户选择了增加或者修改记录后希望放弃当前操作,可以在调用Update()函数之前调用:
  CRecordSet::Move(AFX_MOVE_REFRESH)来撤消增加或修改模式,并恢复在增加或修改模式之前的当前记录。其中,参数AFX_MOVE_REFRESH的值为零。
  6.数据库连接的复用
  在CRecordSet类中定义了一个成员变量m_pDatabase:
  CDatabase* m_pDatabase;
  它是指向对象数据库类的指针。如果在CRecordSet类对象调用Open()函数之前,将一个已经打开的CDatabase类对象指针传给m_pDatabase,就能共享相同的CDatabase类对象。如:
  CDatabase m_db;
  CRecordSet m_set1,m_set2;
  m_db.Open(_T(″Super_ES″)); //建立ODBC连接
  m_set1.m_pDatabase=&m_d

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号